avfilter: Factorize the use of norm_qscale in pp7
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
aab74a38b8
commit
4df01d5d44
@ -31,6 +31,7 @@
|
|||||||
#include "thread.h"
|
#include "thread.h"
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
#include "video.h"
|
#include "video.h"
|
||||||
|
#include "libavcodec/avcodec.h"
|
||||||
|
|
||||||
#define POOL_SIZE 32
|
#define POOL_SIZE 32
|
||||||
typedef struct AVFilterPool {
|
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);
|
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 */
|
#endif /* AVFILTER_INTERNAL_H */
|
||||||
|
@ -33,7 +33,6 @@
|
|||||||
#include "libavutil/pixdesc.h"
|
#include "libavutil/pixdesc.h"
|
||||||
#include "internal.h"
|
#include "internal.h"
|
||||||
#include "vf_pp7.h"
|
#include "vf_pp7.h"
|
||||||
#include "libavcodec/avcodec.h"
|
|
||||||
|
|
||||||
enum mode {
|
enum mode {
|
||||||
MODE_HARD,
|
MODE_HARD,
|
||||||
@ -87,17 +86,6 @@ static const int thres[16] = {
|
|||||||
N / (SN2 * SN0), N / (SN2 * SN2), N / (SN2 * SN0), N / (SN2 * SN2),
|
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)
|
static void init_thres2(PP7Context *p)
|
||||||
{
|
{
|
||||||
int qp, i;
|
int qp, i;
|
||||||
@ -259,7 +247,7 @@ static void filter(PP7Context *p, uint8_t *dst, uint8_t *src,
|
|||||||
qp = p->qp;
|
qp = p->qp;
|
||||||
else {
|
else {
|
||||||
qp = qp_store[ (FFMIN(x, width - 1) >> qps) + (FFMIN(y, height - 1) >> qps) * qp_stride];
|
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++) {
|
for (; x < end; x++) {
|
||||||
const int index = x + y * stride + (8 - 3) * (1 + stride) + 8; //FIXME silly offset
|
const int index = x + y * stride + (8 - 3) * (1 + stride) + 8; //FIXME silly offset
|
||||||
|
Loading…
x
Reference in New Issue
Block a user