[FFmpeg-trac] #9432(avfilter:new): [regression] jpeg autorotate breaks vaapi 422 jpeg decode
FFmpeg
trac at avcodec.org
Tue Sep 21 06:58:20 EEST 2021
#9432: [regression] jpeg autorotate breaks vaapi 422 jpeg decode
-------------------------------------+-------------------------------------
Reporter: U. Artie | Owner: (none)
Eoff |
Type: defect | Status: new
Priority: normal | Component: avfilter
Version: git-master | Resolution:
Keywords: vaapi | Blocked By:
Blocking: | Reproduced by developer: 0
Analyzed by developer: 0 |
-------------------------------------+-------------------------------------
Comment (by James):
Replying to [comment:2 U. Artie Eoff]:
> hmm... 420 jpeg might be broken, too, with vaapi if file has exif
orientation.
Yes, pretty much any jpeg sample with orientation exif and any h264 stream
with Display Orientation SEI will be affected. What i did was make ffmpeg
look at codec exported display matrix instead of only container exported.
Does the following fix it for you?
{{{
diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c
index da0d4faf54..cf52cc03ba 100644
--- a/fftools/ffmpeg_filter.c
+++ b/fftools/ffmpeg_filter.c
@@ -699,6 +699,7 @@ static int configure_input_video_filter(FilterGraph
*fg, InputFilter *ifilter,
{
AVFilterContext *last_filter;
const AVFilter *buffer_filt = avfilter_get_by_name("buffer");
+ const AVPixFmtDescriptor *desc;
InputStream *ist = ifilter->ist;
InputFile *f = input_files[ist->file_index];
AVRational tb = ist->framerate.num ? av_inv_q(ist->framerate) :
@@ -756,7 +757,8 @@ static int configure_input_video_filter(FilterGraph
*fg, InputFilter *ifilter,
av_freep(&par);
last_filter = ifilter->filter;
- if (ist->autorotate) {
+ desc = av_pix_fmt_desc_get(ifilter->format);
+ if (ist->autorotate && desc && !(desc->flags &
AV_PIX_FMT_FLAG_HWACCEL)) {
int32_t *displaymatrix = ifilter->displaymatrix;
double theta;
}}}
--
Ticket URL: <https://trac.ffmpeg.org/ticket/9432#comment:3>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker
More information about the FFmpeg-trac
mailing list