shaka-packager/mpd/base/media_info.proto

72 lines
1.8 KiB
Protocol Buffer

// This file defines the protocol between Muxer and classes for generating MPD
// files.
syntax = "proto2";
option optimize_for = LITE_RUNTIME;
package dash_packager;
message Range {
optional uint64 begin = 1;
optional uint64 end = 2;
}
message MediaInfo {
message VideoInfo {
optional string codec = 1;
optional uint32 width = 2;
optional uint32 height = 3;
optional uint32 time_scale = 4;
// Relative to |time_scale|. IOW |time_scale| / |frame_duration| is the
// framerate.
optional uint64 frame_duration = 5;
optional bytes decoder_config = 6;
}
message AudioInfo {
optional string codec = 1;
optional uint32 sampling_frequency = 2;
optional uint32 time_scale = 3;
optional uint32 num_channels = 4;
optional string language = 5;
optional bytes decoder_config = 6;
}
message TextInfo {
optional string format = 1;
optional string language = 2;
}
message ContentProtection {
optional bytes key_id = 1;
optional bytes pssh = 2;
}
optional uint32 bandwidth = 1;
repeated VideoInfo video_info = 2;
repeated AudioInfo audio_info = 3;
repeated TextInfo text_info = 4;
repeated ContentProtection content_protections = 5;
// This is the reference time scale if there are multiple VideoInfo and/or
// AudioInfo.
optional uint32 reference_time_scale = 13;
// VOD only.
optional Range init_range = 6;
optional Range index_range = 7;
optional string media_file_name = 8;
optional float media_duration_seconds = 9;
// END VOD only.
// LIVE only.
optional string init_segment_name = 10;
optional string segment_template = 11;
// This value is the user input “segment duration”.
// This value is not necessarily the same as the value passed to
// MpdNotifier::NotifyNewSegment().
optional float segment_duration_seconds = 12;
// END LIVE only.
}