Re: [FFmpeg-devel] [PATCH 4/5] lavc/qsvdec: add ChromaFormat support for YUV422/YUV444
> From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf > Of Hendrik Leppkes > Sent: Friday, June 28, 2019 9:09 AM > To: FFmpeg development discussions and patches > > Subject: Re: [FFmpeg-devel] [PATCH 4/5] lavc/qsvdec: add ChromaFormat > support for YUV422/YUV444 > > On Thu, Jun 27, 2019 at 4:31 PM Linjie Fu wrote: > > > > Currently, ChromaFormat passed to libmfx is set to YUV42O by default. > > > > Modify to choose ChromaFormat according to fourCC. > > > > Signed-off-by: Linjie Fu > > --- > > 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 > > > > 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 Good point, shouldn't use any VAAPI definition if without checking Linux platform or CONFIG_VAAPI. ___ 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".
Re: [FFmpeg-devel] [PATCH 4/5] lavc/qsvdec: add ChromaFormat support for YUV422/YUV444
> -Original Message- > From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf > Of Hendrik Leppkes > Sent: Friday, June 28, 2019 09:09 > To: FFmpeg development discussions and patches de...@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [PATCH 4/5] lavc/qsvdec: add ChromaFormat > support for YUV422/YUV444 > > On Thu, Jun 27, 2019 at 4:31 PM Linjie Fu wrote: > > > > Currently, ChromaFormat passed to libmfx is set to YUV42O by default. > > > > Modify to choose ChromaFormat according to fourCC. > > > > Signed-off-by: Linjie Fu > > --- > > 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 > > > > 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. Yes, it should be MFX_FOURCC_. Thanks. ___ 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".
Re: [FFmpeg-devel] [PATCH 4/5] lavc/qsvdec: add ChromaFormat support for YUV422/YUV444
> -Original Message- > From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf > Of Carl Eugen Hoyos > Sent: Friday, June 28, 2019 02:43 > To: FFmpeg development discussions and patches de...@ffmpeg.org> > Subject: Re: [FFmpeg-devel] [PATCH 4/5] lavc/qsvdec: add ChromaFormat > support for YUV422/YUV444 > > Am Do., 27. Juni 2019 um 16:31 Uhr schrieb Linjie Fu : > > > > Currently, ChromaFormat passed to libmfx is set to YUV42O by default. > > > > Modify to choose ChromaFormat according to fourCC. > > Sorry if I misunderstand: > Doesn't 3/5 depend on this patch? The whole patch set enables HEVC Rext decode in QSV, and yes 3/5 won't take effect without 4/5 or 5/5. It seems I'd better adjust the patch sequence in the patch set according to dependency. Thanks. ___ 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".
Re: [FFmpeg-devel] [PATCH 4/5] lavc/qsvdec: add ChromaFormat support for YUV422/YUV444
On Thu, Jun 27, 2019 at 4:31 PM Linjie Fu wrote: > > Currently, ChromaFormat passed to libmfx is set to YUV42O by default. > > Modify to choose ChromaFormat according to fourCC. > > Signed-off-by: Linjie Fu > --- > 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 > > 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".
Re: [FFmpeg-devel] [PATCH 4/5] lavc/qsvdec: add ChromaFormat support for YUV422/YUV444
Am Do., 27. Juni 2019 um 16:31 Uhr schrieb Linjie Fu : > > Currently, ChromaFormat passed to libmfx is set to YUV42O by default. > > Modify to choose ChromaFormat according to fourCC. Sorry if I misunderstand: Doesn't 3/5 depend on this patch? Carl Eugen ___ 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".
[FFmpeg-devel] [PATCH 4/5] lavc/qsvdec: add ChromaFormat support for YUV422/YUV444
Currently, ChromaFormat passed to libmfx is set to YUV42O by default. Modify to choose ChromaFormat according to fourCC. Signed-off-by: Linjie Fu --- 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 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: -- 2.7.4 ___ 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".