[FFmpeg-cvslog] avfilter: Factorize the use of norm_qscale in pp7

Arwa Arif git at videolan.org
Sat Jan 10 02:23:26 CET 2015


ffmpeg | branch: master | Arwa Arif <arwaarif1994 at gmail.com> | Sat Jan 10 02:01:42 2015 +0530| [4df01d5d44cf65c141e5569c9cb6c57a77c70e39] | committer: Michael Niedermayer

avfilter: Factorize the use of norm_qscale in pp7

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavfilter/internal.h |   15 +++++++++++++++
 libavfilter/vf_pp7.c   |   14 +-------------
 2 files changed, 16 insertions(+), 13 deletions(-)

diff --git a/libavfilter/internal.h b/libavfilter/internal.h
index 308b115..d3a859c 100644
--- a/libavfilter/internal.h
+++ b/libavfilter/internal.h
@@ -31,6 +31,7 @@
 #include "thread.h"
 #include "version.h"
 #include "video.h"
+#include "libavcodec/avcodec.h"
 
 #define POOL_SIZE 32
 typedef struct AVFilterPool {
@@ -374,4 +375,18 @@ AVFilterContext *ff_filter_alloc(const AVFilter *filter, const char *inst_name);
  */
 void ff_filter_graph_remove_filter(AVFilterGraph *graph, AVFilterContext *filter);
 
+/**
+ * Normalize the qscale factor
+ */
+static inline int ff_norm_qscale(int qscale, int type)
+{
+    switch (type) {
+    case FF_QSCALE_TYPE_MPEG1: return qscale;
+    case FF_QSCALE_TYPE_MPEG2: return qscale >> 1;
+    case FF_QSCALE_TYPE_H264:  return qscale >> 2;
+    case FF_QSCALE_TYPE_VP56:  return (63 - qscale + 2) >> 2;
+    }
+    return qscale;
+}
+
 #endif /* AVFILTER_INTERNAL_H */
diff --git a/libavfilter/vf_pp7.c b/libavfilter/vf_pp7.c
index 2f071f2..bb590a2 100644
--- a/libavfilter/vf_pp7.c
+++ b/libavfilter/vf_pp7.c
@@ -33,7 +33,6 @@
 #include "libavutil/pixdesc.h"
 #include "internal.h"
 #include "vf_pp7.h"
-#include "libavcodec/avcodec.h"
 
 enum mode {
     MODE_HARD,
@@ -87,17 +86,6 @@ static const int thres[16] = {
     N / (SN2 * SN0), N / (SN2 * SN2), N / (SN2 * SN0), N / (SN2 * SN2),
 };
 
-static inline int norm_qscale(int qscale, int type)
-{
-    switch (type) {
-    case FF_QSCALE_TYPE_MPEG1: return qscale;
-    case FF_QSCALE_TYPE_MPEG2: return qscale >> 1;
-    case FF_QSCALE_TYPE_H264:  return qscale >> 2;
-    case FF_QSCALE_TYPE_VP56:  return (63 - qscale + 2) >> 2;
-    }
-    return qscale;
-}
-
 static void init_thres2(PP7Context *p)
 {
     int qp, i;
@@ -259,7 +247,7 @@ static void filter(PP7Context *p, uint8_t *dst, uint8_t *src,
                 qp = p->qp;
             else {
                 qp = qp_store[ (FFMIN(x, width - 1) >> qps) + (FFMIN(y, height - 1) >> qps) * qp_stride];
-                qp = norm_qscale(qp, p->qscale_type);
+                qp = ff_norm_qscale(qp, p->qscale_type);
             }
             for (; x < end; x++) {
                 const int index = x + y * stride + (8 - 3) * (1 + stride) + 8; //FIXME silly offset



More information about the ffmpeg-cvslog mailing list