[FFmpeg-devel] [PATCH] Extract rotation in MOV metadata

Tomas Härdin tomas.hardin at codemill.se
Wed Apr 6 09:12:23 CEST 2011


James Zern skrev 2011-04-06 02:50:
> On Tue, Apr 5, 2011 at 16:53, Baptiste Coudurier
> <baptiste.coudurier at gmail.com>  wrote:
>> Hi Dave,
>>
>> On 04/05/2011 04:49 PM, Dave Badia wrote:
>>> On Wed, Mar 30, 2011 at 11:18 AM, Baptiste Coudurier
>>> <baptiste.coudurier at gmail.com>  wrote:
>>>> Hi Dave,
>>> <snip>
>>>>
>>>> --
>>>> Baptiste COUDURIER
>>>> Key fingerprint                 8D77134D20CC9220201FC5DB0AC9325C5C1ABAAA
>>>> FFmpeg maintainer                                  http://www.ffmpeg.org
>>>> _______________________________________________
>>>> ffmpeg-devel mailing list
>>>> ffmpeg-devel at ffmpeg.org
>>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>>>>
>>>
>>> Thanks for the feedback as I am very new to ffmpeg.
>>> I've revised my patch per you suggestions, hope I understood  properly.
>>>
>>>
>>> Interrogate MOV metadata for orientation of video so that software can
>>> determine if the video needs to be rotated.
>>> ---
>>>   libavformat/mov.c |    4 ++++
>>>   1 files changed, 4 insertions(+), 0 deletions(-)
>>>
>>> diff --git a/libavformat/mov.c b/libavformat/mov.c
>>> index 23ba1d4..b12890f 100644
>>> --- a/libavformat/mov.c
>>> +++ b/libavformat/mov.c
>>> @@ -1907,6 +1907,10 @@ static int mov_read_tkhd(MOVContext *c, AVIOContext *pb,
>>> MOVAtom atom)
>>>       sc->width = width>>  16;
>>>       sc->height = height>>  16;
>>>
>>> +    if (display_matrix[0][0] == -65536&&  display_matrix[1][1] == -65536) {
>>> +         av_metadata_set2(&c->fc->metadata, "rotate", "180", 0);
>>> +    }
>>
>> Set the metadata on AVStream, not AVFormatContext.
>>
>> Are you sure that the check is 100% correct for the rotation ?
>>
> Couldn't this be more generically extracted as the acos of [0][0] then
> verified against [1][1]?

Or even better, also verify [0][1] == -[1][0] and use atan2() of [0][0] 
and [0][1] (or [1][0], depending on how the matrix is stored).

/Tomas


More information about the ffmpeg-devel mailing list