]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/flacdsp.c
dvbsubdec: check memory allocations and propagate errors
[ffmpeg] / libavcodec / flacdsp.c
index 88d689d3eb9f01bfc557347ee3a2f7b250fbdb12..b9168693218aca5eecfdfe4d9813aa6777a32206 100644 (file)
 #include "libavutil/attributes.h"
 #include "libavutil/samplefmt.h"
 #include "flacdsp.h"
+#include "config.h"
 
 #define SAMPLE_SIZE 16
 #define PLANAR 0
 #include "flacdsp_template.c"
+#include "flacdsp_lpc_template.c"
 
 #undef  PLANAR
 #define PLANAR 1
@@ -35,6 +37,7 @@
 #define SAMPLE_SIZE 32
 #define PLANAR 0
 #include "flacdsp_template.c"
+#include "flacdsp_lpc_template.c"
 
 #undef  PLANAR
 #define PLANAR 1
@@ -85,10 +88,13 @@ static void flac_lpc_32_c(int32_t *decoded, const int coeffs[32],
 av_cold void ff_flacdsp_init(FLACDSPContext *c, enum AVSampleFormat fmt,
                              int bps)
 {
-    if (bps > 16)
+    if (bps > 16) {
         c->lpc            = flac_lpc_32_c;
-    else
+        c->lpc_encode     = flac_lpc_encode_c_32;
+    } else {
         c->lpc            = flac_lpc_16_c;
+        c->lpc_encode     = flac_lpc_encode_c_16;
+    }
 
     switch (fmt) {
     case AV_SAMPLE_FMT_S32:
@@ -119,4 +125,7 @@ av_cold void ff_flacdsp_init(FLACDSPContext *c, enum AVSampleFormat fmt,
         c->decorrelate[3] = flac_decorrelate_ms_c_16p;
         break;
     }
+
+    if (ARCH_ARM)
+        ff_flacdsp_init_arm(c, fmt, bps);
 }