Zhao Zhili <quinkbl...@foxmail.com> 于2022年9月6日周二 14:38写道: > > On Mon, 2022-09-05 at 18:40 +0800, 1035567...@qq.com wrote: > > From: Wang Yaqiang <wangyaqian...@kuaishou.com> > > > > For example, if the jpeg contains exif information > > and the rotation direction is included in the exif, > > the displaymatrix will be set on the side_data of the frame when > > decoding. > > However, when ffplay is used to play the image, > > only the side data in the stream will be determined. > > It does not check whether the frame also contains rotation > > information, > > causing it to play in the wrong direction > > > > Signed-off-by: Wang Yaqiang <wangyaqian...@kuaishou.com> > > --- > > fftools/ffplay.c | 10 ++++++++-- > > 1 file changed, 8 insertions(+), 2 deletions(-) > > > > diff --git a/fftools/ffplay.c b/fftools/ffplay.c > > index 9242047f5c..bcc00afe31 100644 > > --- a/fftools/ffplay.c > > +++ b/fftools/ffplay.c > > @@ -1915,8 +1915,14 @@ static int > > configure_video_filters(AVFilterGraph *graph, VideoState *is, const c > > } while (0) > > > > if (autorotate) { > > - int32_t *displaymatrix = (int32_t > > *)av_stream_get_side_data(is->video_st, AV_PKT_DATA_DISPLAYMATRIX, > > NULL); > > - double theta = get_rotation(displaymatrix); > > + double theta = 0.0; > > + int32_t *displaymatrix = NULL; > > + AVFrameSideData *sd = av_frame_get_side_data(frame, > > AV_FRAME_DATA_DISPLAYMATRIX); > > + if (sd) > > + displaymatrix = (int32_t *)sd->data; > > + if (!displaymatrix) > > + displaymatrix = (int32_t *)av_stream_get_side_data(is- > > >video_st, AV_PKT_DATA_DISPLAYMATRIX, NULL); > > + theta = get_rotation(displaymatrix); > > > > if (fabs(theta - 90) < 1.0) { > > INSERT_FILT("transpose", "clock"); > > LGTM.
Applied! Thanks Steven _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".