On Sun, 8 Oct 2017 16:49:58 +0100
Mark Thompson wrote:
> This has been deprecated in libva2 because hardware does not and will not
> support it. Therefore never consider it for decode, and for encode assume
> the user meant constrained baseline profile instead.
> ---
> On 08/10/17 16:44, Derek Buitenhuis wrote:
> > On 10/8/2017 4:11 PM, Mark Thompson wrote:
> >> +case FF_PROFILE_H264_BASELINE:
> >> +// Baseline profile is not supported, assume the user meant
> >> +// constrained baseline instead.
> >> +avctx->profile = FF_PROFILE_H264_CONSTRAINED_BASELINE;
> >
> > Trying to automatically (and silently!) guess what the user wanted
> > is never a good idea, IMO. At the very least, print a warning.
>
> Yeah, ok, I agree. Patch changed as enclosing.
>
>
> libavcodec/vaapi_decode.c | 1 -
> libavcodec/vaapi_encode_h264.c | 12
> 2 files changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c
> index cf58aae4c6..4f0ff84e01 100644
> --- a/libavcodec/vaapi_decode.c
> +++ b/libavcodec/vaapi_decode.c
> @@ -246,7 +246,6 @@ static const struct {
> MAP(MPEG4, MPEG4_MAIN, MPEG4Main ),
> MAP(H264,H264_CONSTRAINED_BASELINE,
> H264ConstrainedBaseline),
> -MAP(H264,H264_BASELINE, H264Baseline),
> MAP(H264,H264_MAIN, H264Main),
> MAP(H264,H264_HIGH, H264High),
> #if VA_CHECK_VERSION(0, 37, 0)
> diff --git a/libavcodec/vaapi_encode_h264.c b/libavcodec/vaapi_encode_h264.c
> index 549867ef3f..efde80b08e 100644
> --- a/libavcodec/vaapi_encode_h264.c
> +++ b/libavcodec/vaapi_encode_h264.c
> @@ -1175,6 +1175,10 @@ static av_cold int
> vaapi_encode_h264_init(AVCodecContext *avctx)
> ctx->codec = _encode_type_h264;
>
> switch (avctx->profile) {
> +case FF_PROFILE_H264_BASELINE:
> +av_log(avctx, AV_LOG_WARNING, "H.264 baseline profile is not "
> + "supported, using constrained baseline profile instead.\n");
> +avctx->profile = FF_PROFILE_H264_CONSTRAINED_BASELINE;
> case FF_PROFILE_H264_CONSTRAINED_BASELINE:
> ctx->va_profile = VAProfileH264ConstrainedBaseline;
> if (avctx->max_b_frames != 0) {
> @@ -1183,14 +1187,6 @@ static av_cold int
> vaapi_encode_h264_init(AVCodecContext *avctx)
> "doesn't support encoding with B frames, disabling
> them.\n");
> }
> break;
> -case FF_PROFILE_H264_BASELINE:
> -ctx->va_profile = VAProfileH264Baseline;
> -if (avctx->max_b_frames != 0) {
> -avctx->max_b_frames = 0;
> -av_log(avctx, AV_LOG_WARNING, "H.264 baseline profile "
> - "doesn't support encoding with B frames, disabling
> them.\n");
> -}
> -break;
> case FF_PROFILE_H264_MAIN:
> ctx->va_profile = VAProfileH264Main;
> break;
Shouldn't trying to decode baseline video just fall back to sw decoding?
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel