On 2022-06-18 12:19 pm, Andreas Rheinhardt wrote:
Gyan Doshi:
Default avctx->frame_size is 0 which leads to init failure for
audio MediaFoundation encoders.
---
  libavcodec/mfenc.c | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/libavcodec/mfenc.c b/libavcodec/mfenc.c
index 13ed7b3e11..ff9ffe4827 100644
--- a/libavcodec/mfenc.c
+++ b/libavcodec/mfenc.c
@@ -1066,6 +1066,9 @@ static int mf_init_encoder(AVCodecContext *avctx)
c->main_subtype = *subtype; + if (c->is_audio && !avctx->frame_size)
+        avctx->frame_size = 1024;
+
      if ((ret = mf_create(avctx, &c->functions, &c->mft, avctx->codec, use_hw)) 
< 0)
          return ret;
1. You forgot to mention the ticket that this is supposed to fix; you
should also add that this a regression and the commit
(827d6fe73d2f5472c1c2128eb14fab6a4db29032) that supposedly introduced
the regression (if this is indeed true).
 I initially became aware due to a user query. Saw ticket later. Will add details.

2. Where does this number come from (apart from the user-provided error
message)? How did it work before said commit?
(It seems that frame_size was unset before this commit, but did it
somehow just not matter?)

The MF encoders accept any number of samples per frame. They reframe as necessary for DSP.
I choose 1024 as its the most common frame size emitted (PCM/AAC decoders).

Regards,
Gyan
_______________________________________________
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