syntax = "proto3";

package bilibili.broadcast.message.ogv;

option java_multiple_files = true;

// 开播事件
message LiveStartEvent {}

// 直播中止事件
message LiveEndEvent {}

// 在线人数事件
message LiveOnlineEvent {
  //在线人数
  int64 online = 1;
}

// 变更通知
message LiveUpdateEvent {
  // 直播后状态
  // 1:下线 2:转点播
  int32 after_premiere_type = 1;
  // 直播开始绝对时间 单位ms
  int64 start_time = 2;
  // id
  string id = 3;
  // 服务端播放进度，未打散，负数表示距离开播时间，正数表示已开播时间，单位：毫秒
  // 用户实际播放进度：progress - delay_time
  int64 progress = 4;
}

// 直播间事件
message CMDBody {
  //命令类型
  oneof event {
    // 开播事件
    LiveStartEvent start = 1;
    // 直播中止事件
    LiveEndEvent emergency = 2;
    // 在线人数事件
    LiveOnlineEvent online = 3;
    // 变更通知
    LiveUpdateEvent update = 4;
  }
}
