[FFmpeg-devel] [PATCH] ffplay: support rotated video.

Don Moir donmoir at comcast.net
Fri May 23 06:40:52 CEST 2014


On Thu, May 22, 2014 at 09:30:05PM +0200, Clément B?sch wrote:
> On Wed, May 21, 2014 at 05:18:30AM +0200, Michael Niedermayer wrote:
> > On Tue, May 20, 2014 at 07:54:05PM +0200, Clément B?sch wrote:
> > > On Fri, Apr 18, 2014 at 05:43:35PM -0400, Don Moir wrote:
> > > [...]
> > > > >+    if (autorotate) {
> > > > >+        AVDictionaryEntry *rotate_tag = av_dict_get(is->video_st->metadata, "rotate", NULL, 0);
> > > > >+        if (rotate_tag) {
> > > > >+            if (!strcmp(rotate_tag->value, "90")) {
> > > > >+                INSERT_FILT("transpose", "1");
> > > > >+            } else if (!strcmp(rotate_tag->value, "180")) {
> > > > >+                INSERT_FILT("hflip", NULL);
> > > > >+                INSERT_FILT("vflip", NULL);
> > > > >+            } else if (!strcmp(rotate_tag->value, "270")) {
> > > > >+                INSERT_FILT("transpose", "2");
> > > > >+            } else {
> > > > >+                INSERT_FILT("rotate", rotate_tag->value);
> > > > >+            }
> > > > >+        }
> > > > >+    }
> > > >
> > > > you might want to do this instead of stcmp. Catches values greater than 360 as well.
> > > >
> > > > int rotate = atoi(rotate_tag->value) % 360;
> > > >
> > >
> > > No I can't, it can be a floating value.
> >
> > fmod() could be used
> >
>
> Right, but I'm not sure it would be more reliable/simple that what i'm
> currently proposing.

Not sure if it matters if its floating or not.

atoi ("180.0") equates to 180 if that is what you are refering to.

With what you have a filter gets inserted for anything your logic does not understand including zero rotate. doing a mod on it 
catches zero easily and anything >= 360. Probably not a big deal except the inserting of filter for possible zero rotate value. 



More information about the ffmpeg-devel mailing list