vlc | branch: master | Vittorio Giovara <[email protected]> | Tue Feb 26 17:00:32 2019 -0500| [1997cec8abd801bbf4ebcae72db28ab8277f221c] | committer: Vittorio Giovara
demux/avformat: Prioritize side data rotation rather than metadata one The side data API will offer a more accurate representation of the rendering operations in the next commit. > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=1997cec8abd801bbf4ebcae72db28ab8277f221c --- modules/demux/avformat/demux.c | 29 ++++++++++++++--------------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/modules/demux/avformat/demux.c b/modules/demux/avformat/demux.c index ba91e8deb9..b57438afea 100644 --- a/modules/demux/avformat/demux.c +++ b/modules/demux/avformat/demux.c @@ -116,34 +116,33 @@ static void get_rotation(es_format_t *fmt, AVStream *s) AVDictionaryEntry *rotation = av_dict_get(s->metadata, kRotateKey, NULL, 0); long angle = 0; - if( rotation ) - { - angle = strtol(rotation->value, NULL, 10); + int32_t *matrix = (int32_t *)av_stream_get_side_data(s, AV_PKT_DATA_DISPLAYMATRIX, NULL); + if( matrix ) { + angle = lround(av_display_rotation_get(matrix)); if (angle > 45 && angle < 135) - fmt->video.orientation = ORIENT_ROTATED_90; + fmt->video.orientation = ORIENT_ROTATED_270; - else if (angle > 135 && angle < 225) + else if (angle > 135 || angle < -135) fmt->video.orientation = ORIENT_ROTATED_180; - else if (angle > 225 && angle < 315) - fmt->video.orientation = ORIENT_ROTATED_270; + else if (angle < -45 && angle > -135) + fmt->video.orientation = ORIENT_ROTATED_90; else fmt->video.orientation = ORIENT_NORMAL; - } - int32_t *matrix = (int32_t *)av_stream_get_side_data(s, AV_PKT_DATA_DISPLAYMATRIX, NULL); - if( matrix ) { - angle = lround(av_display_rotation_get(matrix)); + + } else if( rotation ) { + angle = strtol(rotation->value, NULL, 10); if (angle > 45 && angle < 135) - fmt->video.orientation = ORIENT_ROTATED_270; + fmt->video.orientation = ORIENT_ROTATED_90; - else if (angle > 135 || angle < -135) + else if (angle > 135 && angle < 225) fmt->video.orientation = ORIENT_ROTATED_180; - else if (angle < -45 && angle > -135) - fmt->video.orientation = ORIENT_ROTATED_90; + else if (angle > 225 && angle < 315) + fmt->video.orientation = ORIENT_ROTATED_270; else fmt->video.orientation = ORIENT_NORMAL; _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
