On 1/9/2024 11:30 PM, Andreas Rheinhardt wrote:
James Almer:
Should fix fate failures in avif tests when no external decoder is
available.

Signed-off-by: James Almer <jamr...@gmail.com>
---
  libavcodec/av1dec.c | 12 +++++++++++-
  1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c
index da05a0f039..43b5aef687 100644
--- a/libavcodec/av1dec.c
+++ b/libavcodec/av1dec.c
@@ -1227,7 +1227,7 @@ static int av1_receive_frame_internal(AVCodecContext 
*avctx, AVFrame *frame)
                      av_log(avctx, AV_LOG_ERROR,
                             "Failed to get pixel format.\n");
                      s->raw_seq = NULL;
-                    goto end;
+                    continue;
                  }
              }
@@ -1248,6 +1248,16 @@ static int av1_receive_frame_internal(AVCodecContext *avctx, AVFrame *frame)
          case AV1_OBU_FRAME:
          case AV1_OBU_FRAME_HEADER:
              if (!s->raw_seq) {
+                // Attempt to set dimensions in all cases
+                if (s->pix_fmt == AV_PIX_FMT_NONE) {
+                    ret = update_context_with_frame_header(avctx, 
&obu->obu.frame.header);
+                    if (ret < 0) {
+                        av_log(avctx, AV_LOG_ERROR, "Failed to update context with 
frame header\n");
+                        return ret;
+                    }
+                    ret = AVERROR(ENOSYS);
+                    goto end;
+                }
                  av_log(avctx, AV_LOG_ERROR, "Missing Sequence Header.\n");
                  ret = AVERROR_INVALIDDATA;
                  goto end;

You should instead implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM for this
decoder so that one does not get a wall of error logs when probing
without proper hardware.

- Andreas

I fixed the problem in a different way already, so this patch can be dropped.
I might look at FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM later.
_______________________________________________
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".

Reply via email to