On Sat, May 11, 2019 at 10:57:01PM -0700, Jun Li wrote: > On Sat, May 11, 2019 at 10:47 PM Jun Li <[email protected]> wrote: > > > Fix #6945 > > Current implementaion for autorotate works fine for stream > > level rotataion but no support for frame level operation > > and frame flip. This patch is for adding flip support and > > per frame operations. > > --- > > fftools/cmdutils.c | 9 ++--- > > fftools/cmdutils.h | 2 +- > > fftools/ffmpeg.c | 21 +++++++++- > > fftools/ffmpeg.h | 2 + > > fftools/ffmpeg_filter.c | 81 ++++++++++++++++++++++++++++++++++++--- > > fftools/ffplay.c | 28 +++++++++++--- > > libavutil/display.c | 14 +++++++ > > libavutil/display.h | 14 +++++++ > > libavutil/tests/display.c | 8 ++++ > > tests/ref/fate/display | 4 ++ > > 10 files changed, 166 insertions(+), 17 deletions(-) [...]
> > \ No newline at end of file
> > diff --git a/libavutil/display.h b/libavutil/display.h
> > index 515adad795..23d71a0bc5 100644
> > --- a/libavutil/display.h
> > +++ b/libavutil/display.h
> > @@ -106,6 +106,20 @@ void av_display_rotation_set(int32_t matrix[9],
> > double angle);
> > */
> > void av_display_matrix_flip(int32_t matrix[9], int hflip, int vflip);
> >
> > +/**
> > + * Extract the rotation component and hflip status of the transformation
> > matrix.
> > + *
> > + * @param matrix the transformation matrix
> > + * @param hflip wille be set to 1 if the matrix need horizontal flipped
> > + * @return the angle (in degrees) by which the transformation rotates the
> > frame
> > + * counterclockwise. The angle will be in range [-180.0, 180.0],
> > + * or NaN if the matrix is singular.
> > + *
> > + * @note floating point numbers are inherently inexact, so callers are
> > + * recommended to round the return value to nearest integer before
> > use.
> > + */
> > +double av_display_rotation_hflip_get(const int32_t matrix[9], int* hflip);
> > +
> > /**
> > * @}
> > * @}
> > diff --git a/libavutil/tests/display.c b/libavutil/tests/display.c
> > index 893ebb5543..65a0971e7b 100644
> > --- a/libavutil/tests/display.c
> > +++ b/libavutil/tests/display.c
> > @@ -35,6 +35,8 @@ static void print_matrix(int32_t matrix[9])
> > int main(void)
> > {
> > int32_t matrix[9];
> > + int hflip = 0;
> > + double degree;
> >
> > // Set the matrix to 90 degrees
> > av_display_rotation_set(matrix, 90);
> > @@ -56,6 +58,12 @@ int main(void)
> > print_matrix(matrix);
> > printf("degrees: %f\n", av_display_rotation_get(matrix));
> >
> > + // flip vertical
> > + av_display_matrix_flip(matrix, 0, 1);
> > + print_matrix(matrix);
> > + degree = av_display_rotation_hflip_get(matrix, &hflip);
> > + printf("degrees: %f, hflip: %i\n", degree, hflip);
> > +
> > return 0;
> >
> > }
[...]
> This change is to address the feedback of last patch using 1st frame's
> orientation as stream rotation.
> Thanks again for review. I added the support for per frame rotation.
>
> (I know it involves too many file changes and not easy to read. Sorry about
> that I tried to
> separate them but failed since due to some dependencies).
The libavutil changes should be in a seperate patch and need a version
and APIChanges update
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
If a bugfix only changes things apparently unrelated to the bug with no
further explanation, that is a good sign that the bugfix is wrong.
signature.asc
Description: PGP signature
_______________________________________________ ffmpeg-devel mailing list [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
