#include "config.h"
#include "libavutil/avutil.h"
#include "libavutil/avassert.h"
#include <inttypes.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "postprocess.h"
#include "postprocess_internal.h"
#include "libavutil/avstring.h"
#include "postprocess_template.c"
Go to the source code of this file.
| Defines | |
| #define | LICENSE_PREFIX "libpostproc license: " | 
| #define | GET_MODE_BUFFER_SIZE 500 | 
| #define | OPTIONS_ARRAY_SIZE 10 | 
| #define | BLOCK_SIZE 8 | 
| #define | TEMP_STRIDE 8 | 
| #define | COMPILE_C | 
| #define | HAVE_MMX_INLINE 0 | 
| #define | HAVE_MMXEXT_INLINE 0 | 
| #define | HAVE_AMD3DNOW_INLINE 0 | 
| #define | HAVE_ALTIVEC 0 | 
| #define | RENAME(a) a ## _C | 
| Functions | |
| unsigned | postproc_version (void) | 
| Return the LIBPOSTPROC_VERSION_INT constant. | |
| const char * | postproc_configuration (void) | 
| Return the libpostproc build-time configuration. | |
| const char * | postproc_license (void) | 
| Return the libpostproc license. | |
| DECLARE_ASM_CONST (8, int, deringThreshold) | |
| static int | isHorizDC_C (uint8_t src[], int stride, PPContext *c) | 
| Check if the given 8x8 Block is mostly "flat". | |
| static int | isVertDC_C (uint8_t src[], int stride, PPContext *c) | 
| Check if the middle 8x8 Block in the given 8x16 block is flat. | |
| static int | isHorizMinMaxOk_C (uint8_t src[], int stride, int QP) | 
| static int | isVertMinMaxOk_C (uint8_t src[], int stride, int QP) | 
| static int | horizClassify_C (uint8_t src[], int stride, PPContext *c) | 
| static int | vertClassify_C (uint8_t src[], int stride, PPContext *c) | 
| static void | doHorizDefFilter_C (uint8_t dst[], int stride, PPContext *c) | 
| static void | doHorizLowPass_C (uint8_t dst[], int stride, PPContext *c) | 
| Do a horizontal low pass filter on the 10x8 block (dst points to middle 8x8 Block) using the 9-Tap Filter (1,1,2,2,4,2,2,1,1)/16 (C version). | |
| static void | horizX1Filter (uint8_t *src, int stride, int QP) | 
| Experimental Filter 1 (Horizontal) will not damage linear gradients Flat blocks should look like they were passed through the (1,1,2,2,4,2,2,1,1) 9-Tap filter can only smooth blocks at the expected locations (it cannot smooth them if they did move) MMX2 version does correct clipping C version does not not identical with the vertical one. | |
| static av_always_inline void | do_a_deblock_C (uint8_t *src, int step, int stride, PPContext *c) | 
| accurate deblock filter | |
| static void | postProcess (const uint8_t src[], int srcStride, uint8_t dst[], int dstStride, int width, int height, const QP_STORE_T QPs[], int QPStride, int isColor, pp_mode *vm, pp_context *vc) | 
| pp_mode * | pp_get_mode_by_name_and_quality (const char *name, int quality) | 
| Return a pp_mode or NULL if an error occurred. | |
| void | pp_free_mode (pp_mode *mode) | 
| static void | reallocAlign (void **p, int alignment, int size) | 
| static void | reallocBuffers (PPContext *c, int width, int height, int stride, int qpStride) | 
| static const char * | context_to_name (void *ptr) | 
| pp_context * | pp_get_context (int width, int height, int cpuCaps) | 
| void | pp_free_context (void *vc) | 
| void | pp_postprocess (const uint8_t *src[3], const int srcStride[3], uint8_t *dst[3], const int dstStride[3], int width, int height, const QP_STORE_T *QP_store, int QPStride, pp_mode *vm, void *vc, int pict_type) | 
| Variables | |
| static struct PPFilter | filters [] | 
| static const char * | replaceTable [] | 
| const char | pp_help [] | 
| a simple help text | |
| static const AVClass | av_codec_context_class = { "Postproc", context_to_name, NULL } | 
Definition in file postprocess.c.
| #define BLOCK_SIZE 8 | 
Definition at line 115 of file postprocess.c.
| #define COMPILE_C | 
Definition at line 541 of file postprocess.c.
| #define GET_MODE_BUFFER_SIZE 500 | 
| #define HAVE_ALTIVEC 0 | 
Definition at line 569 of file postprocess.c.
Referenced by ff_fft_init(), ff_fmt_convert_init(), ff_get_unscaled_swscale(), ff_getSwsFunc(), ff_h264dsp_init(), ff_mpadsp_init(), ff_vc1dsp_init(), ff_vp8dsp_init(), ff_yuv2rgb_get_func_ptr(), initFilter(), sws_init_context(), and sws_setColorspaceDetails().
| #define HAVE_AMD3DNOW_INLINE 0 | 
Definition at line 567 of file postprocess.c.
| #define HAVE_MMX_INLINE 0 | 
Definition at line 563 of file postprocess.c.
| #define HAVE_MMXEXT_INLINE 0 | 
Definition at line 565 of file postprocess.c.
| #define LICENSE_PREFIX "libpostproc license: " | 
| #define OPTIONS_ARRAY_SIZE 10 | 
| #define RENAME | ( | a | ) | a ## _C | 
Definition at line 572 of file postprocess.c.
| #define TEMP_STRIDE 8 | 
Definition at line 116 of file postprocess.c.
| static const char* context_to_name | ( | void * | ptr | ) |  [static] | 
Definition at line 947 of file postprocess.c.
| DECLARE_ASM_CONST | ( | 8 | , | |
| int | , | |||
| deringThreshold | ||||
| ) | 
Definition at line 302 of file postprocess.c.
Do a horizontal low pass filter on the 10x8 block (dst points to middle 8x8 Block) using the 9-Tap Filter (1,1,2,2,4,2,2,1,1)/16 (C version).
Definition at line 341 of file postprocess.c.
Definition at line 278 of file postprocess.c.
Experimental Filter 1 (Horizontal) will not damage linear gradients Flat blocks should look like they were passed through the (1,1,2,2,4,2,2,1,1) 9-Tap filter can only smooth blocks at the expected locations (it cannot smooth them if they did move) MMX2 version does correct clipping C version does not not identical with the vertical one.
Definition at line 381 of file postprocess.c.
Referenced by postProcess_TMPL().
Check if the given 8x8 Block is mostly "flat".
Definition at line 204 of file postprocess.c.
Referenced by horizClassify_C().
Check if the middle 8x8 Block in the given 8x16 block is flat.
Definition at line 227 of file postprocess.c.
Referenced by vertClassify_C().
| const char* postproc_configuration | ( | void | ) | 
| const char* postproc_license | ( | void | ) | 
| unsigned postproc_version | ( | void | ) | 
| void pp_free_context | ( | void * | vc | ) | 
| void pp_free_mode | ( | pp_mode * | mode | ) | 
| pp_context* pp_get_context | ( | int | width, | |
| int | height, | |||
| int | cpuCaps | |||
| ) | 
Return a pp_mode or NULL if an error occurred.
| name | the string after "-pp" on the command line | |
| quality | a number from 0 to PP_QUALITY_MAX | 
Definition at line 722 of file postprocess.c.
Referenced by vf_open().
Definition at line 290 of file postprocess.c.
| const AVClass av_codec_context_class = { "Postproc", context_to_name, NULL }  [static] | 
Definition at line 951 of file postprocess.c.
Initial value:
{
    {"hb", "hdeblock",              1, 1, 3, H_DEBLOCK},
    {"vb", "vdeblock",              1, 2, 4, V_DEBLOCK},
    {"h1", "x1hdeblock",            1, 1, 3, H_X1_FILTER},
    {"v1", "x1vdeblock",            1, 2, 4, V_X1_FILTER},
    {"ha", "ahdeblock",             1, 1, 3, H_A_DEBLOCK},
    {"va", "avdeblock",             1, 2, 4, V_A_DEBLOCK},
    {"dr", "dering",                1, 5, 6, DERING},
    {"al", "autolevels",            0, 1, 2, LEVEL_FIX},
    {"lb", "linblenddeint",         1, 1, 4, LINEAR_BLEND_DEINT_FILTER},
    {"li", "linipoldeint",          1, 1, 4, LINEAR_IPOL_DEINT_FILTER},
    {"ci", "cubicipoldeint",        1, 1, 4, CUBIC_IPOL_DEINT_FILTER},
    {"md", "mediandeint",           1, 1, 4, MEDIAN_DEINT_FILTER},
    {"fd", "ffmpegdeint",           1, 1, 4, FFMPEG_DEINT_FILTER},
    {"l5", "lowpass5",              1, 1, 4, LOWPASS5_DEINT_FILTER},
    {"tn", "tmpnoise",              1, 7, 8, TEMP_NOISE_FILTER},
    {"fq", "forcequant",            1, 0, 0, FORCE_QUANT},
    {"be", "bitexact",              1, 0, 0, BITEXACT},
    {NULL, NULL,0,0,0,0} 
}
Definition at line 133 of file postprocess.c.
| const char pp_help[] | 
a simple help text
Definition at line 677 of file postprocess.c.
Referenced by pp_get_mode_by_name_and_quality().
| const char* replaceTable[]  [static] | 
Initial value:
{
    "default",      "hb:a,vb:a,dr:a",
    "de",           "hb:a,vb:a,dr:a",
    "fast",         "h1:a,v1:a,dr:a",
    "fa",           "h1:a,v1:a,dr:a",
    "ac",           "ha:a:128:7,va:a,dr:a",
    NULL 
}
Definition at line 157 of file postprocess.c.
Referenced by pp_get_mode_by_name_and_quality().
 1.5.8
 1.5.8