[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