[FFmpeg-devel,1/2] avcodec/v210dec: move DSP function setting into dedicated function

Submitted by James Darnley on March 6, 2019, 8:20 p.m.

Details

Message ID 20190306202007.24760-1-jdarnley@obe.tv
State New
Headers show

Commit Message

James Darnley March 6, 2019, 8:20 p.m.
Prepare for checkasm test.
---
 libavcodec/v210dec.c | 16 ++++++++++------
 libavcodec/v210dec.h |  1 +
 2 files changed, 11 insertions(+), 6 deletions(-)

Patch hide | download patch | download mbox

diff --git a/libavcodec/v210dec.c b/libavcodec/v210dec.c
index ddc5dbe8be..fd8a6b0d78 100644
--- a/libavcodec/v210dec.c
+++ b/libavcodec/v210dec.c
@@ -50,6 +50,13 @@  static void v210_planar_unpack_c(const uint32_t *src, uint16_t *y, uint16_t *u,
     }
 }
 
+av_cold void ff_v210dec_init(V210DecContext *s)
+{
+    s->unpack_frame = v210_planar_unpack_c;
+    if (ARCH_X86)
+        ff_v210_x86_init(s);
+}
+
 static av_cold int decode_init(AVCodecContext *avctx)
 {
     V210DecContext *s = avctx->priv_data;
@@ -57,10 +64,8 @@  static av_cold int decode_init(AVCodecContext *avctx)
     avctx->pix_fmt             = AV_PIX_FMT_YUV422P10;
     avctx->bits_per_raw_sample = 10;
 
-    s->unpack_frame            = v210_planar_unpack_c;
-
-    if (HAVE_MMX)
-        ff_v210_x86_init(s);
+    s->aligned_input = 0;
+    ff_v210dec_init(s);
 
     return 0;
 }
@@ -102,8 +107,7 @@  static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame,
     aligned_input = !((uintptr_t)psrc & 0xf) && !(stride & 0xf);
     if (aligned_input != s->aligned_input) {
         s->aligned_input = aligned_input;
-        if (HAVE_MMX)
-            ff_v210_x86_init(s);
+        ff_v210dec_init(s);
     }
 
     if ((ret = ff_get_buffer(avctx, pic, 0)) < 0)
diff --git a/libavcodec/v210dec.h b/libavcodec/v210dec.h
index 533afc435c..cfdb29da09 100644
--- a/libavcodec/v210dec.h
+++ b/libavcodec/v210dec.h
@@ -31,6 +31,7 @@  typedef struct {
     void (*unpack_frame)(const uint32_t *src, uint16_t *y, uint16_t *u, uint16_t *v, int width);
 } V210DecContext;
 
+void ff_v210dec_init(V210DecContext *s);
 void ff_v210_x86_init(V210DecContext *s);
 
 #endif /* AVCODEC_V210DEC_H */