[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