[FFmpeg-cvslog] svq3: drop the build dependency on the h264 decoder

Anton Khirnov git at videolan.org
Tue May 3 12:00:27 CEST 2016


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Wed Mar 23 13:34:23 2016 +0100| [add1467e5e447b79e8743a0b05c54dcf58c61dfe] | committer: Anton Khirnov

svq3: drop the build dependency on the h264 decoder

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=add1467e5e447b79e8743a0b05c54dcf58c61dfe
---

 configure             |    2 +-
 libavcodec/Makefile   |    2 +-
 libavcodec/h264.h     |    1 -
 libavcodec/h264_ps.c  |   23 +----------------------
 libavcodec/h264data.c |   23 +++++++++++++++++++++++
 libavcodec/h264data.h |    2 ++
 libavcodec/svq3.c     |    1 +
 7 files changed, 29 insertions(+), 25 deletions(-)

diff --git a/configure b/configure
index e5f5046..7b0e5b5 100755
--- a/configure
+++ b/configure
@@ -2047,7 +2047,7 @@ sipr_decoder_select="lsp"
 sp5x_decoder_select="mjpeg_decoder"
 svq1_decoder_select="hpeldsp"
 svq1_encoder_select="aandcttables hpeldsp me_cmp mpegvideoenc"
-svq3_decoder_select="h264_decoder hpeldsp tpeldsp"
+svq3_decoder_select="golomb h264dsp h264pred hpeldsp tpeldsp videodsp"
 svq3_decoder_suggest="zlib"
 tak_decoder_select="audiodsp"
 tdsc_decoder_deps="zlib"
diff --git a/libavcodec/Makefile b/libavcodec/Makefile
index e66ec51..321f8d1 100644
--- a/libavcodec/Makefile
+++ b/libavcodec/Makefile
@@ -418,7 +418,7 @@ OBJS-$(CONFIG_SUNRAST_ENCODER)         += sunrastenc.o
 OBJS-$(CONFIG_SVQ1_DECODER)            += svq1dec.o svq1.o svq13.o h263data.o
 OBJS-$(CONFIG_SVQ1_ENCODER)            += svq1enc.o svq1.o  h263data.o  \
                                           h263.o ituh263enc.o
-OBJS-$(CONFIG_SVQ3_DECODER)            += svq3.o svq13.o mpegutils.o h264_parse.o
+OBJS-$(CONFIG_SVQ3_DECODER)            += svq3.o svq13.o mpegutils.o h264_parse.o h264data.o
 OBJS-$(CONFIG_TAK_DECODER)             += takdec.o tak.o
 OBJS-$(CONFIG_TARGA_DECODER)           += targa.o
 OBJS-$(CONFIG_TARGA_ENCODER)           += targaenc.o rle.o
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index e00ce88..4c0d434 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -743,7 +743,6 @@ typedef struct H264Context {
     qpel_mc_func (*qpel_avg)[16];
 } H264Context;
 
-extern const uint8_t ff_h264_chroma_qp[3][QP_MAX_NUM + 1]; ///< One chroma qp table for each supported bit depth (8, 9, 10).
 extern const uint16_t ff_h264_mb_sizes[4];
 
 /**
diff --git a/libavcodec/h264_ps.c b/libavcodec/h264_ps.c
index 34a2954..d77fabf 100644
--- a/libavcodec/h264_ps.c
+++ b/libavcodec/h264_ps.c
@@ -32,6 +32,7 @@
 #include "mathops.h"
 #include "avcodec.h"
 #include "h264.h"
+#include "h264data.h"
 #include "golomb.h"
 
 #define MAX_LOG2_MAX_FRAME_NUM    (12 + 4)
@@ -57,28 +58,6 @@ static const AVRational pixel_aspect[17] = {
     {   2,  1 },
 };
 
-#define QP(qP, depth) ((qP) + 6 * ((depth) - 8))
-
-#define CHROMA_QP_TABLE_END(d)                                          \
-    QP(0,  d), QP(1,  d), QP(2,  d), QP(3,  d), QP(4,  d), QP(5,  d),   \
-    QP(6,  d), QP(7,  d), QP(8,  d), QP(9,  d), QP(10, d), QP(11, d),   \
-    QP(12, d), QP(13, d), QP(14, d), QP(15, d), QP(16, d), QP(17, d),   \
-    QP(18, d), QP(19, d), QP(20, d), QP(21, d), QP(22, d), QP(23, d),   \
-    QP(24, d), QP(25, d), QP(26, d), QP(27, d), QP(28, d), QP(29, d),   \
-    QP(29, d), QP(30, d), QP(31, d), QP(32, d), QP(32, d), QP(33, d),   \
-    QP(34, d), QP(34, d), QP(35, d), QP(35, d), QP(36, d), QP(36, d),   \
-    QP(37, d), QP(37, d), QP(37, d), QP(38, d), QP(38, d), QP(38, d),   \
-    QP(39, d), QP(39, d), QP(39, d), QP(39, d)
-
-const uint8_t ff_h264_chroma_qp[3][QP_MAX_NUM + 1] = {
-    { CHROMA_QP_TABLE_END(8) },
-    { 0, 1, 2, 3, 4, 5,
-      CHROMA_QP_TABLE_END(9) },
-    { 0, 1, 2, 3, 4, 5,
-      6, 7, 8, 9, 10, 11,
-      CHROMA_QP_TABLE_END(10) },
-};
-
 static const uint8_t default_scaling4[2][16] = {
     {  6, 13, 20, 28, 13, 20, 28, 32,
       20, 28, 32, 37, 28, 32, 37, 42 },
diff --git a/libavcodec/h264data.c b/libavcodec/h264data.c
index 860cbbc..0729f5d 100644
--- a/libavcodec/h264data.c
+++ b/libavcodec/h264data.c
@@ -31,6 +31,7 @@
 #include "libavutil/avutil.h"
 
 #include "avcodec.h"
+#include "h264.h"
 #include "h264data.h"
 
 const uint8_t ff_h264_golomb_to_pict_type[5] = {
@@ -181,3 +182,25 @@ const uint8_t ff_h264_quant_div6[QP_MAX_NUM + 1] = {
     3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6,  6,  6,
     7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10,
 };
+
+#define QP(qP, depth) ((qP) + 6 * ((depth) - 8))
+
+#define CHROMA_QP_TABLE_END(d)                                          \
+    QP(0,  d), QP(1,  d), QP(2,  d), QP(3,  d), QP(4,  d), QP(5,  d),   \
+    QP(6,  d), QP(7,  d), QP(8,  d), QP(9,  d), QP(10, d), QP(11, d),   \
+    QP(12, d), QP(13, d), QP(14, d), QP(15, d), QP(16, d), QP(17, d),   \
+    QP(18, d), QP(19, d), QP(20, d), QP(21, d), QP(22, d), QP(23, d),   \
+    QP(24, d), QP(25, d), QP(26, d), QP(27, d), QP(28, d), QP(29, d),   \
+    QP(29, d), QP(30, d), QP(31, d), QP(32, d), QP(32, d), QP(33, d),   \
+    QP(34, d), QP(34, d), QP(35, d), QP(35, d), QP(36, d), QP(36, d),   \
+    QP(37, d), QP(37, d), QP(37, d), QP(38, d), QP(38, d), QP(38, d),   \
+    QP(39, d), QP(39, d), QP(39, d), QP(39, d)
+
+const uint8_t ff_h264_chroma_qp[3][QP_MAX_NUM + 1] = {
+    { CHROMA_QP_TABLE_END(8) },
+    { 0, 1, 2, 3, 4, 5,
+      CHROMA_QP_TABLE_END(9) },
+    { 0, 1, 2, 3, 4, 5,
+      6, 7, 8, 9, 10, 11,
+      CHROMA_QP_TABLE_END(10) },
+};
diff --git a/libavcodec/h264data.h b/libavcodec/h264data.h
index ca9b43d..ab96f08 100644
--- a/libavcodec/h264data.h
+++ b/libavcodec/h264data.h
@@ -54,4 +54,6 @@ extern const uint8_t ff_h264_dequant8_coeff_init[6][6];
 extern const uint8_t ff_h264_quant_rem6[QP_MAX_NUM + 1];
 extern const uint8_t ff_h264_quant_div6[QP_MAX_NUM + 1];
 
+extern const uint8_t ff_h264_chroma_qp[3][QP_MAX_NUM + 1];
+
 #endif /* AVCODEC_H264DATA_H */
diff --git a/libavcodec/svq3.c b/libavcodec/svq3.c
index d5079f3..094442b 100644
--- a/libavcodec/svq3.c
+++ b/libavcodec/svq3.c
@@ -47,6 +47,7 @@
 #include "avcodec.h"
 #include "mpegutils.h"
 #include "h264.h"
+#include "h264data.h"
 #include "golomb.h"
 #include "hpeldsp.h"
 #include "mathops.h"



More information about the ffmpeg-cvslog mailing list