diff --git a/libavfilter/internal.h b/libavfilter/internal.h index a1adb8a8fe..742e8e27cb 100644 --- a/libavfilter/internal.h +++ b/libavfilter/internal.h @@ -341,22 +341,6 @@ void ff_filter_graph_remove_filter(AVFilterGraph *graph, AVFilterContext *filter */ int ff_filter_graph_run_once(AVFilterGraph *graph); -/** - * Normalize the qscale factor - * FIXME the H264 qscale is a log based scale, mpeg1/2 is not, the code below - * cannot be optimal - */ -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; -} - /** * Get number of threads for current filter instance. * This number is always same or less than graph->nb_threads. diff --git a/libavfilter/qp_table.h b/libavfilter/qp_table.h index a552fe2e64..4758ee8538 100644 --- a/libavfilter/qp_table.h +++ b/libavfilter/qp_table.h @@ -22,6 +22,7 @@ #include #include "libavutil/frame.h" +#include "libavcodec/internal.h" /** * Extract a libpostproc-compatible QP table - an 8-bit QP value per 16x16 @@ -30,4 +31,20 @@ int ff_qp_table_extract(AVFrame *frame, int8_t **table, int *table_w, int *table_h, int *qscale_type); +/** + * Normalize the qscale factor + * FIXME the H264 qscale is a log based scale, mpeg1/2 is not, the code below + * cannot be optimal + */ +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_QP_TABLE_H