diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2014-09-18 14:46:40 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2014-09-18 14:46:50 +0200 |
commit | 27f936eca8a1703a5c203f5d2cbc76862c9219fc (patch) | |
tree | 89c9835cecd643ff1efc86682ea3cf55d059090d /libpostproc | |
parent | 77f9a81ccaadb34f309dc8922e8939442e4e81aa (diff) | |
parent | 9e8be462521e1c66c5ae0f3e3fe8ece18a0fb931 (diff) | |
download | ffmpeg-27f936eca8a1703a5c203f5d2cbc76862c9219fc.tar.gz |
Merge branch 'postprocwork'
* postprocwork:
postproc/postprocess: use av_strtok()
postprocess: make some variables in pp_get_mode_by_name_and_quality() const
postproc: simplify forwarding return codes
libpostproc/postprocess: avoid some if()
fate: add fate-filter-pp1
This is merged instead of just fast forward pushed due to a bug in the git hook
which does not allow commits to change filter-video.mak except merge commits.
filter-video.mak contains a few tabs, which are needed due to Makefile syntax
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libpostproc')
-rw-r--r-- | libpostproc/postprocess.c | 53 |
1 files changed, 24 insertions, 29 deletions
diff --git a/libpostproc/postprocess.c b/libpostproc/postprocess.c index 01ec0f9867..6dee0417e5 100644 --- a/libpostproc/postprocess.c +++ b/libpostproc/postprocess.c @@ -209,13 +209,13 @@ static inline int isHorizDC_C(const uint8_t src[], int stride, const PPContext * const int dcThreshold= dcOffset*2 + 1; for(y=0; y<BLOCK_SIZE; y++){ - if(((unsigned)(src[0] - src[1] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[1] - src[2] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[2] - src[3] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[3] - src[4] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[4] - src[5] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[5] - src[6] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[6] - src[7] + dcOffset)) < dcThreshold) numEq++; + numEq += ((unsigned)(src[0] - src[1] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[1] - src[2] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[2] - src[3] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[3] - src[4] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[4] - src[5] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[5] - src[6] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[6] - src[7] + dcOffset)) < dcThreshold; src+= stride; } return numEq > c->ppMode.flatnessThreshold; @@ -233,14 +233,14 @@ static inline int isVertDC_C(const uint8_t src[], int stride, const PPContext *c src+= stride*4; // src points to begin of the 8x8 Block for(y=0; y<BLOCK_SIZE-1; y++){ - if(((unsigned)(src[0] - src[0+stride] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[1] - src[1+stride] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[2] - src[2+stride] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[3] - src[3+stride] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[4] - src[4+stride] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[5] - src[5+stride] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[6] - src[6+stride] + dcOffset)) < dcThreshold) numEq++; - if(((unsigned)(src[7] - src[7+stride] + dcOffset)) < dcThreshold) numEq++; + numEq += ((unsigned)(src[0] - src[0+stride] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[1] - src[1+stride] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[2] - src[2+stride] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[3] - src[3+stride] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[4] - src[4+stride] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[5] - src[5+stride] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[6] - src[6+stride] + dcOffset)) < dcThreshold; + numEq += ((unsigned)(src[7] - src[7+stride] + dcOffset)) < dcThreshold; src+= stride; } return numEq > c->ppMode.flatnessThreshold; @@ -278,10 +278,7 @@ static inline int isVertMinMaxOk_C(const uint8_t src[], int stride, int QP) static inline int horizClassify_C(const uint8_t src[], int stride, const PPContext *c) { if( isHorizDC_C(src, stride, c) ){ - if( isHorizMinMaxOk_C(src, stride, c->QP) ) - return 1; - else - return 0; + return isHorizMinMaxOk_C(src, stride, c->QP); }else{ return 2; } @@ -290,10 +287,7 @@ static inline int horizClassify_C(const uint8_t src[], int stride, const PPConte static inline int vertClassify_C(const uint8_t src[], int stride, const PPContext *c) { if( isVertDC_C(src, stride, c) ){ - if( isVertMinMaxOk_C(src, stride, c->QP) ) - return 1; - else - return 0; + return isVertMinMaxOk_C(src, stride, c->QP); }else{ return 2; } @@ -704,21 +698,22 @@ pp_mode *pp_get_mode_by_name_and_quality(const char *name, int quality) av_log(NULL, AV_LOG_DEBUG, "pp: %s\n", name); for(;;){ - char *filterName; + const char *filterName; int q= 1000000; //PP_QUALITY_MAX; int chrom=-1; int luma=-1; - char *option; - char *options[OPTIONS_ARRAY_SIZE]; + const char *option; + const char *options[OPTIONS_ARRAY_SIZE]; int i; int filterNameOk=0; int numOfUnknownOptions=0; int enable=1; //does the user want us to enabled or disabled the filter + char *tokstate; - filterToken= strtok(p, filterDelimiters); + filterToken= av_strtok(p, filterDelimiters, &tokstate); if(!filterToken) break; p+= strlen(filterToken) + 1; // p points to next filterToken - filterName= strtok(filterToken, optionDelimiters); + filterName= av_strtok(filterToken, optionDelimiters, &tokstate); if (!filterName) { ppMode->error++; break; @@ -731,7 +726,7 @@ pp_mode *pp_get_mode_by_name_and_quality(const char *name, int quality) } for(;;){ //for all options - option= strtok(NULL, optionDelimiters); + option= av_strtok(NULL, optionDelimiters, &tokstate); if(!option) break; av_log(NULL, AV_LOG_DEBUG, "pp: option: %s\n", option); |