From c32a691d3a2215fa6b714aa0d73b1c494aa99aed Mon Sep 17 00:00:00 2001
From: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
Date: Mon, 3 Mar 2025 19:28:41 +0100
Subject: [PATCH 29/77] avcodec/wmv2enc: Move wmv2_encode_init() down

Will avoid forward declarations later.
While just at it, forward ff_mpv_encode_init() errors.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
 libavcodec/wmv2enc.c | 44 +++++++++++++++++++++++---------------------
 1 file changed, 23 insertions(+), 21 deletions(-)

diff --git a/libavcodec/wmv2enc.c b/libavcodec/wmv2enc.c
index 33569a6d39..55fcc91484 100644
--- a/libavcodec/wmv2enc.c
+++ b/libavcodec/wmv2enc.c
@@ -73,27 +73,6 @@ static int encode_ext_header(WMV2EncContext *w)
     return 0;
 }
 
-static av_cold int wmv2_encode_init(AVCodecContext *avctx)
-{
-    WMV2EncContext *const w = avctx->priv_data;
-    MpegEncContext *const s = &w->msmpeg4.m.s;
-
-    s->private_ctx = &w->common;
-    if (ff_mpv_encode_init(avctx) < 0)
-        return -1;
-
-    ff_wmv2_common_init(s);
-
-    avctx->extradata_size = WMV2_EXTRADATA_SIZE;
-    avctx->extradata      = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
-    if (!avctx->extradata)
-        return AVERROR(ENOMEM);
-
-    encode_ext_header(w);
-
-    return 0;
-}
-
 int ff_wmv2_encode_picture_header(MpegEncContext *s)
 {
     WMV2EncContext *const w = (WMV2EncContext *) s;
@@ -237,6 +216,29 @@ void ff_wmv2_encode_mb(MpegEncContext *s, int16_t block[6][64],
         s->p_tex_bits += get_bits_diff(s);
 }
 
+static av_cold int wmv2_encode_init(AVCodecContext *avctx)
+{
+    WMV2EncContext *const w = avctx->priv_data;
+    MpegEncContext *const s = &w->msmpeg4.m.s;
+    int ret;
+
+    s->private_ctx = &w->common;
+    ret = ff_mpv_encode_init(avctx);
+    if (ret < 0)
+        return ret;
+
+    ff_wmv2_common_init(s);
+
+    avctx->extradata_size = WMV2_EXTRADATA_SIZE;
+    avctx->extradata      = av_mallocz(avctx->extradata_size + AV_INPUT_BUFFER_PADDING_SIZE);
+    if (!avctx->extradata)
+        return AVERROR(ENOMEM);
+
+    encode_ext_header(w);
+
+    return 0;
+}
+
 const FFCodec ff_wmv2_encoder = {
     .p.name         = "wmv2",
     CODEC_LONG_NAME("Windows Media Video 8"),
-- 
2.45.2