Re: [FFmpeg-devel] [PATCH 2/6] vaapi: Remove H.264 baseline profile

2017-10-09 Thread Carl Eugen Hoyos
2017-10-09 13:21 GMT+02:00 wm4 :

> Shouldn't trying to decode baseline video just fall back to sw decoding?

Given that software doesn't support the specific features of baseline either,
I don't think this helps.
I was under the impression the only sane thing to do when reading
baseline H.264 is printing a warning and continue as if constraint
baseline was detected.

Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/6] vaapi: Remove H.264 baseline profile

2017-10-09 Thread wm4
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


Re: [FFmpeg-devel] [PATCH 2/6] vaapi: Remove H.264 baseline profile

2017-10-09 Thread Moritz Barsnick
On Sun, Oct 08, 2017 at 16:49:58 +0100, Mark Thompson wrote:
>  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:

I recall a discussion that linting/analysis tools such as Coverty
require a fall-through to be marked as such.

> /* fall-through */
> case FF_PROFILE_H264_CONSTRAINED_BASELINE:

Cheers,
Moritz
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/6] vaapi: Remove H.264 baseline profile

2017-10-08 Thread Derek Buitenhuis
On 10/8/2017 4:49 PM, Mark Thompson wrote:
> 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(-)

Looks OK to me. I assume we don't care about the old lib
versions and hardware wanting to use the profile.

- Derek
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 2/6] vaapi: Remove H.264 baseline profile

2017-10-08 Thread Mark Thompson
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;
-- 
2.11.0
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/6] vaapi: Remove H.264 baseline profile

2017-10-08 Thread Derek Buitenhuis
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.

- Derek
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH 2/6] vaapi: Remove H.264 baseline profile

2017-10-08 Thread Mark Thompson
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.
---
 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..728c871d72 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:
+// Baseline profile is not supported, assume the user meant
+// constrained baseline instead.
+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;
-- 
2.11.0

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel