X-Git-Url: https://git.libav.org/?p=libav.git;a=blobdiff_plain;f=libpostproc%2Fpostprocess_internal.h;h=2ab1ed84db2bd1b28c73a151fbb9e8e21cdafeb2;hp=f2d40e1d50b2e17d6398518c43fcfa5eff20573a;hb=386eaeb43fb6b750a9345e1945eb7ffc5df35c15;hpb=ae77c4b0071e0e2f2d98958d52423880fc87429f diff --git a/libpostproc/postprocess_internal.h b/libpostproc/postprocess_internal.h index f2d40e1d50..2ab1ed84db 100644 --- a/libpostproc/postprocess_internal.h +++ b/libpostproc/postprocess_internal.h @@ -19,14 +19,15 @@ */ /** - * @file postprocess_internal.h + * @file libpostproc/postprocess_internal.h * internal api header. */ -#ifndef FFMPEG_POSTPROCESS_INTERNAL_H -#define FFMPEG_POSTPROCESS_INTERNAL_H +#ifndef POSTPROC_POSTPROCESS_INTERNAL_H +#define POSTPROC_POSTPROCESS_INTERNAL_H -#include "avutil.h" +#include +#include "libavutil/avutil.h" #include "postprocess.h" #define V_DEBLOCK 0x01 @@ -55,13 +56,13 @@ #define FULL_Y_RANGE 0x8000 // 32768 //Deinterlacing Filters -#define LINEAR_IPOL_DEINT_FILTER 0x10000 // 65536 -#define LINEAR_BLEND_DEINT_FILTER 0x20000 // 131072 -#define CUBIC_BLEND_DEINT_FILTER 0x8000 // (not implemented yet) -#define CUBIC_IPOL_DEINT_FILTER 0x40000 // 262144 -#define MEDIAN_DEINT_FILTER 0x80000 // 524288 -#define FFMPEG_DEINT_FILTER 0x400000 -#define LOWPASS5_DEINT_FILTER 0x800000 +#define LINEAR_IPOL_DEINT_FILTER 0x10000 // 65536 +#define LINEAR_BLEND_DEINT_FILTER 0x20000 // 131072 +#define CUBIC_BLEND_DEINT_FILTER 0x8000 // (not implemented yet) +#define CUBIC_IPOL_DEINT_FILTER 0x40000 // 262144 +#define MEDIAN_DEINT_FILTER 0x80000 // 524288 +#define FFMPEG_DEINT_FILTER 0x400000 +#define LOWPASS5_DEINT_FILTER 0x800000 #define TEMP_NOISE_FILTER 0x100000 #define FORCE_QUANT 0x200000 @@ -73,106 +74,105 @@ //#define COMPILE_TIME_MODE 0x77 static inline int CLIP(int a){ - if(a&256) return ((a)>>31)^(-1); - else return a; + if(a&256) return ((a)>>31)^(-1); + else return a; } /** * Postprocessng filter. */ struct PPFilter{ - const char *shortName; - const char *longName; - int chromDefault; ///< is chrominance filtering on by default if this filter is manually activated - int minLumQuality; ///< minimum quality to turn luminance filtering on - int minChromQuality; ///< minimum quality to turn chrominance filtering on - int mask; ///< Bitmask to turn this filter on + const char *shortName; + const char *longName; + int chromDefault; ///< is chrominance filtering on by default if this filter is manually activated + int minLumQuality; ///< minimum quality to turn luminance filtering on + int minChromQuality; ///< minimum quality to turn chrominance filtering on + int mask; ///< Bitmask to turn this filter on }; /** * Postprocessng mode. */ typedef struct PPMode{ - int lumMode; ///< acivates filters for luminance - int chromMode; ///< acivates filters for chrominance - int error; ///< non zero on error + int lumMode; ///< acivates filters for luminance + int chromMode; ///< acivates filters for chrominance + int error; ///< non zero on error - int minAllowedY; ///< for brigtness correction - int maxAllowedY; ///< for brihtness correction - float maxClippedThreshold; ///< amount of "black" u r willing to loose to get a brightness corrected picture + int minAllowedY; ///< for brigtness correction + int maxAllowedY; ///< for brihtness correction + float maxClippedThreshold; ///< amount of "black" u r willing to loose to get a brightness corrected picture - int maxTmpNoise[3]; ///< for Temporal Noise Reducing filter (Maximal sum of abs differences) + int maxTmpNoise[3]; ///< for Temporal Noise Reducing filter (Maximal sum of abs differences) - int baseDcDiff; - int flatnessThreshold; + int baseDcDiff; + int flatnessThreshold; - int forcedQuant; ///< quantizer if FORCE_QUANT is used + int forcedQuant; ///< quantizer if FORCE_QUANT is used } PPMode; /** * postprocess context. */ typedef struct PPContext{ - /** - * info on struct for av_log - */ - const AVClass *av_class; + /** + * info on struct for av_log + */ + const AVClass *av_class; - uint8_t *tempBlocks; /// 0) { - memcpy(dest, src, lines*stride); - } else { - memcpy((uint8_t*)dest+(lines-1)*stride, (const uint8_t*)src+(lines-1)*stride, -lines*stride); - } +static inline void linecpy(void *dest, const void *src, int lines, int stride) { + if (stride > 0) { + memcpy(dest, src, lines*stride); + } else { + memcpy((uint8_t*)dest+(lines-1)*stride, (const uint8_t*)src+(lines-1)*stride, -lines*stride); + } } -#endif /* FFMPEG_POSTPROCESS_INTERNAL_H */ +#endif /* POSTPROC_POSTPROCESS_INTERNAL_H */