On 03/04/16 11:23, Tim W. wrote:
> On Sat, Apr 2, 2016 at 10:36 PM, Luca Barbato <[email protected]> wrote:
> 
>> And bump the document version to 4.
>> ---
>>  libavformat/matroskaenc.c | 45
>> +++++++++++++++++++++++++++++++++++++++++++--
>>  1 file changed, 43 insertions(+), 2 deletions(-)
>>
>> diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
>> index c2b1de0..667646d 100644
>> --- a/libavformat/matroskaenc.c
>> +++ b/libavformat/matroskaenc.c
>> @@ -632,6 +632,45 @@ static int mkv_write_codecprivate(AVFormatContext *s,
>> AVIOContext *pb,
>>      return ret;
>>  }
>>
>> +static void mkv_write_field_order(AVIOContext *pb,
>> +                                  enum AVFieldOrder field_order)
>> +{
>> +    switch (field_order) {
>> +    case AV_FIELD_UNKNOWN:
>> +        put_ebml_uint(pb, MATROSKA_ID_VIDEOFLAGINTERLACED,
>> +                      MATROSKA_VIDEO_INTERLACE_FLAG_UNDETERMINED);
>> +        break;
>> +    case AV_FIELD_PROGRESSIVE:
>> +        put_ebml_uint(pb, MATROSKA_ID_VIDEOFLAGINTERLACED,
>> +                      MATROSKA_VIDEO_INTERLACE_FLAG_PROGRESSIVE);
>> +        break;
>> +    case AV_FIELD_TT:
>> +    case AV_FIELD_BB:
>> +    case AV_FIELD_TB:
>> +    case AV_FIELD_BT:
>> +        put_ebml_uint(pb, MATROSKA_ID_VIDEOFLAGINTERLACED,
>> +                      MATROSKA_VIDEO_INTERLACE_FLAG_INTERLACED);
>> +        switch (field_order) {
>> +        case AV_FIELD_TT:
>> +            put_ebml_uint(pb, MATROSKA_ID_VIDEOFIELDORDER,
>> +                          MATROSKA_VIDEO_FIELDORDER_TT);
>> +            break;
>> +        case AV_FIELD_BB:
>> +             put_ebml_uint(pb, MATROSKA_ID_VIDEOFIELDORDER,
>> +                          MATROSKA_VIDEO_FIELDORDER_BB);
>> +            break;
>> +        case AV_FIELD_TB:
>> +            put_ebml_uint(pb, MATROSKA_ID_VIDEOFIELDORDER,
>> +                          MATROSKA_VIDEO_FIELDORDER_TB);
>> +            break;
>> +        case AV_FIELD_BT:
>> +            put_ebml_uint(pb, MATROSKA_ID_VIDEOFIELDORDER,
>> +                          MATROSKA_VIDEO_FIELDORDER_BT);
>> +            break;
>> +        }
>> +    }
>> +}
>> +
>>  static int mkv_write_stereo_mode(AVFormatContext *s, AVIOContext *pb,
>>                                   AVStream *st, int mode)
>>  {
>> @@ -831,10 +870,12 @@ static int mkv_write_track(AVFormatContext *s,
>> MatroskaMuxContext *mkv,
>>          }
>>
>>          subinfo = start_ebml_master(pb, MATROSKA_ID_TRACKVIDEO, 0);
>> -        // XXX: interlace flag?
>> +
>>          put_ebml_uint (pb, MATROSKA_ID_VIDEOPIXELWIDTH , par->width);
>>          put_ebml_uint (pb, MATROSKA_ID_VIDEOPIXELHEIGHT, par->height);
>>
>> +        mkv_write_field_order(pb, par->field_order);
>> +
>>          // check both side data and metadata for stereo information,
>>          // write the result to the bitstream if any is found
>>          ret = mkv_write_stereo_mode(s, pb, st, mkv->mode);
>> @@ -1151,7 +1192,7 @@ static int mkv_write_header(AVFormatContext *s)
>>      put_ebml_uint   (pb, EBML_ID_EBMLMAXIDLENGTH    ,           4);
>>      put_ebml_uint   (pb, EBML_ID_EBMLMAXSIZELENGTH  ,           8);
>>      put_ebml_string (pb, EBML_ID_DOCTYPE            , s->oformat->name);
>> -    put_ebml_uint   (pb, EBML_ID_DOCTYPEVERSION     ,           2);
>> +    put_ebml_uint   (pb, EBML_ID_DOCTYPEVERSION     ,           4);
>>      put_ebml_uint   (pb, EBML_ID_DOCTYPEREADVERSION ,           2);
>>      end_ebml_master(pb, ebml_header);
>>
>> --
>> 2.6.1
>>
> 
> Looks OK.

The fate hashes need to be updated accordingly.

_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to