[FFmpeg-devel] [PATCH] mov.c: Use dimensions from tkhd

Baptiste Coudurier baptiste.coudurier
Sun Jan 11 13:15:04 CET 2009


David Conrad wrote:
> On Jan 11, 2009, at 2:54 AM, Baptiste Coudurier wrote:
> 
>> David Conrad wrote:
>>> Hi,
>>>
>>> This sets the codec dimensions to what's set in in the tkhd. This is
>>> useful for timed text because their dimensions are independent of video
>>> tracks and this is the only place they're stored. This shouldn't affect
>>> video since it'll later be overridden when reading the stsd.
>>>
>>> --- a/libavformat/mov.c
>>> +++ b/libavformat/mov.c
>>> @@ -1510,6 +1510,9 @@ static int mov_read_tkhd(MOVContext *c,
>>> ByteIOContext *pb, MOVAtom atom)
>>>     width = get_be32(pb);       // 16.16 fixed point track width
>>>     height = get_be32(pb);      // 16.16 fixed point track height
>>>
>>> +    st->codec->width = width >> 16;
>>> +    st->codec->height = height >> 16;
>>> +
>>>     //transform the display width/height according to the matrix
>>>     // skip this if the display matrix is the default identity matrix
>>>     // to keep the same scale, use [width height 1<<16]
>>>
>>
>> Humm, code will be lost here IMHO, I'd rather put fields in
>> MOVStreamContext and set them only for subs in read_stsd to avoid side
>> effects, future misbehaviour.
> 
> How's this?
> 
> 
> ------------------------------------------------------------------------
> 
> commit f3770486557a56b39cbabc274e864be8f5e21a72
> Author: David Conrad <davedc at Kozue.local>
> Date:   Sun Jan 11 01:45:15 2009 -0500
> 
>     Use the dimensions in tkhd for timed text tracks
> 
> diff --git a/libavformat/mov.c b/libavformat/mov.c
> index ed027db..c488bf8 100644
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -134,6 +134,8 @@ typedef struct MOVStreamContext {
>      MOVDref *drefs;
>      int dref_id;
>      int wrong_dts; ///< dts are wrong due to negative ctts
> +    int width;
> +    int height;
>  } MOVStreamContext;

///< tkhd width/height

Except this I think the patch is ok.

[...]

-- 
Baptiste COUDURIER                              GnuPG Key Id: 0x5C1ABAAA
Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
checking for life_signs in -lkenny... no




More information about the ffmpeg-devel mailing list