On Thu, Jun 27, 2019 at 4:31 PM Linjie Fu <linjie...@intel.com> wrote: > > Currently, ChromaFormat passed to libmfx is set to YUV42O by default. > > Modify to choose ChromaFormat according to fourCC. > > Signed-off-by: Linjie Fu <linjie...@intel.com> > --- > libavcodec/qsvdec.c | 20 +++++++++++++++++++- > 1 file changed, 19 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c > index 46aa2d6..7650325 100644 > --- a/libavcodec/qsvdec.c > +++ b/libavcodec/qsvdec.c > @@ -40,6 +40,7 @@ > #include "qsv.h" > #include "qsv_internal.h" > #include "qsvdec.h" > +#include <va/va.h> > > const AVCodecHWConfigInternal *ff_qsv_hw_configs[] = { > &(const AVCodecHWConfigInternal) { > @@ -211,7 +212,24 @@ static int qsv_decode_init(AVCodecContext *avctx, > QSVContext *q) > param.mfx.FrameInfo.FourCC = q->fourcc; > param.mfx.FrameInfo.Width = frame_width; > param.mfx.FrameInfo.Height = frame_height; > - param.mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420; > + > + switch (q->fourcc) { > + case VA_FOURCC_YUY2: > +#ifdef VA_FOURCC_Y210 > + case VA_FOURCC_Y210: > +#endif > + param.mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV422; > + break; > + case VA_FOURCC_AYUV: > +#ifdef VA_FOURCC_Y410 > + case VA_FOURCC_Y410: > +#endif > + param.mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV444; > + break; > + default: > + param.mfx.FrameInfo.ChromaFormat = MFX_CHROMAFORMAT_YUV420; > + break; > + } > > switch (avctx->field_order) { > case AV_FIELD_PROGRESSIVE:
VA_FOURCC_ sounds like VAAPI, that doesn't seem like it belongs in qsv code which is supposed to work on multiple platforms. - Hendrik _______________________________________________ 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".