You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	Remove libpostproc.
This library does not fit into Libav as a whole and its code is just a maintenance burden. Furthermore it is now available as an external project, which completely obviates any reason to keep it around. URL: http://git.videolan.org/?p=libpostproc.git
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -24,7 +24,6 @@ libavfilter/libavfilter* | ||||
| libavformat/libavformat* | ||||
| libavutil/avconfig.h | ||||
| libavutil/libavutil* | ||||
| libpostproc/libpostproc* | ||||
| libswscale/libswscale* | ||||
| tests/audiogen | ||||
| tests/base64 | ||||
|   | ||||
| @@ -9,6 +9,7 @@ version <next>: | ||||
| - CDXL demuxer and decoder | ||||
| - Apple ProRes encoder | ||||
| - Sun Rasterfile Encoder | ||||
| - remove libpostproc | ||||
|  | ||||
|  | ||||
| version 0.8: | ||||
|   | ||||
							
								
								
									
										1
									
								
								LICENSE
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								LICENSE
									
									
									
									
									
								
							| @@ -13,7 +13,6 @@ configure to activate them. In this case, Libav's license changes to GPL v2+. | ||||
|  | ||||
| Specifically, the GPL parts of Libav are | ||||
|  | ||||
| - libpostproc | ||||
| - optional x86 optimizations in the files | ||||
|   libavcodec/x86/idct_mmx.c | ||||
| - the X11 grabber in libavdevice/x11grab.c | ||||
|   | ||||
							
								
								
									
										3
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										3
									
								
								Makefile
									
									
									
									
									
								
							| @@ -20,7 +20,7 @@ $(foreach VAR,$(SILENT),$(eval override $(VAR) = @$($(VAR)))) | ||||
| $(eval INSTALL = @$(call ECHO,INSTALL,$$(^:$(SRC_PATH)/%=%)); $(INSTALL)) | ||||
| endif | ||||
|  | ||||
| ALLFFLIBS = avcodec avdevice avfilter avformat avutil postproc swscale | ||||
| ALLFFLIBS = avcodec avdevice avfilter avformat avutil swscale | ||||
|  | ||||
| IFLAGS     := -I. -I$(SRC_PATH) | ||||
| CPPFLAGS   := $(IFLAGS) $(CPPFLAGS) | ||||
| @@ -72,7 +72,6 @@ FFLIBS-$(CONFIG_AVDEVICE) += avdevice | ||||
| FFLIBS-$(CONFIG_AVFILTER) += avfilter | ||||
| FFLIBS-$(CONFIG_AVFORMAT) += avformat | ||||
| FFLIBS-$(CONFIG_AVCODEC)  += avcodec | ||||
| FFLIBS-$(CONFIG_POSTPROC) += postproc | ||||
| FFLIBS-$(CONFIG_SWSCALE)  += swscale | ||||
|  | ||||
| FFLIBS := avutil | ||||
|   | ||||
| @@ -33,9 +33,6 @@ | ||||
| #include "libavfilter/avfilter.h" | ||||
| #include "libavdevice/avdevice.h" | ||||
| #include "libswscale/swscale.h" | ||||
| #if CONFIG_POSTPROC | ||||
| #include "libpostproc/postprocess.h" | ||||
| #endif | ||||
| #include "libavutil/avstring.h" | ||||
| #include "libavutil/mathematics.h" | ||||
| #include "libavutil/parseutils.h" | ||||
| @@ -496,9 +493,6 @@ static void print_all_libs_info(int flags, int level) | ||||
|     PRINT_LIB_INFO(avdevice, AVDEVICE, flags, level); | ||||
|     PRINT_LIB_INFO(avfilter, AVFILTER, flags, level); | ||||
|     PRINT_LIB_INFO(swscale,  SWSCALE,  flags, level); | ||||
| #if CONFIG_POSTPROC | ||||
|     PRINT_LIB_INFO(postproc, POSTPROC, flags, level); | ||||
| #endif | ||||
| } | ||||
|  | ||||
| void show_banner(void) | ||||
|   | ||||
							
								
								
									
										8
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								configure
									
									
									
									
										vendored
									
									
								
							| @@ -88,7 +88,6 @@ Configuration options: | ||||
|   --disable-avcodec        disable libavcodec build | ||||
|   --disable-avformat       disable libavformat build | ||||
|   --disable-swscale        disable libswscale build | ||||
|   --enable-postproc        enable libpostproc build (deprecated) [no] | ||||
|   --disable-avfilter       disable video filter support [no] | ||||
|   --disable-pthreads       disable pthreads [auto] | ||||
|   --disable-w32threads     disable Win32 threads [auto] | ||||
| @@ -974,7 +973,6 @@ CONFIG_LIST=" | ||||
|     nonfree | ||||
|     openssl | ||||
|     pic | ||||
|     postproc | ||||
|     rdft | ||||
|     rtpdec | ||||
|     runtime_cpudetect | ||||
| @@ -1532,7 +1530,6 @@ yadif_filter_deps="gpl" | ||||
| # libraries | ||||
| avdevice_deps="avcodec avformat" | ||||
| avformat_deps="avcodec" | ||||
| postproc_deps="gpl" | ||||
|  | ||||
| # programs | ||||
| avconv_deps="avcodec avformat swscale" | ||||
| @@ -3066,7 +3063,7 @@ enabled extra_warnings && check_cflags -Winline | ||||
|  | ||||
| # add some linker flags | ||||
| check_ldflags -Wl,--warn-common | ||||
| check_ldflags -Wl,-rpath-link=libpostproc:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil | ||||
| check_ldflags -Wl,-rpath-link=libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil | ||||
| test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic | ||||
|  | ||||
| enabled xmm_clobber_test &&                             \ | ||||
| @@ -3222,7 +3219,6 @@ echo "optimize for size         ${small-no}" | ||||
| echo "optimizations             ${optimizations-no}" | ||||
| echo "static                    ${static-no}" | ||||
| echo "shared                    ${shared-no}" | ||||
| echo "postprocessing support    ${postproc-no}" | ||||
| echo "new filter support        ${avfilter-no}" | ||||
| echo "network support           ${network-no}" | ||||
| echo "threading support         ${thread_type-no}" | ||||
| @@ -3374,7 +3370,6 @@ get_version LIBAVDEVICE libavdevice/avdevice.h | ||||
| get_version LIBAVFILTER libavfilter/version.h | ||||
| get_version LIBAVFORMAT libavformat/version.h | ||||
| get_version LIBAVUTIL   libavutil/avutil.h | ||||
| get_version LIBPOSTPROC libpostproc/postprocess.h | ||||
| get_version LIBSWSCALE  libswscale/swscale.h | ||||
|  | ||||
| cat > $TMPH <<EOF | ||||
| @@ -3493,5 +3488,4 @@ pkgconfig_generate libavcodec "Libav codec library" "$LIBAVCODEC_VERSION" "$extr | ||||
| pkgconfig_generate libavformat "Libav container format library" "$LIBAVFORMAT_VERSION" "$extralibs" "libavcodec = $LIBAVCODEC_VERSION" | ||||
| pkgconfig_generate libavdevice "Libav device handling library" "$LIBAVDEVICE_VERSION" "$extralibs" "libavformat = $LIBAVFORMAT_VERSION" | ||||
| pkgconfig_generate libavfilter "Libav video filtering library" "$LIBAVFILTER_VERSION" "$extralibs" | ||||
| pkgconfig_generate libpostproc "Libav postprocessing library" "$LIBPOSTPROC_VERSION" "" "libavutil = $LIBAVUTIL_VERSION" | ||||
| pkgconfig_generate libswscale "Libav image rescaling library" "$LIBSWSCALE_VERSION" "$LIBM" "libavutil = $LIBAVUTIL_VERSION" | ||||
|   | ||||
| @@ -6,7 +6,6 @@ libavcodec:  2012-01-27 | ||||
| libavdevice: 2011-04-18 | ||||
| libavfilter: 2011-04-18 | ||||
| libavformat: 2012-01-27 | ||||
| libpostproc: 2011-04-18 (deprecated, to be removed later) | ||||
| libswscale:  2011-06-20 | ||||
| libavutil:   2011-04-18 | ||||
|  | ||||
|   | ||||
| @@ -39,7 +39,6 @@ | ||||
|  * @li @ref libavf "libavformat" I/O and muxing/demuxing library | ||||
|  * @li @ref lavd "libavdevice" special devices muxing/demuxing library | ||||
|  * @li @ref lavu "libavutil" common utility library | ||||
|  * @li @subpage libpostproc post processing library | ||||
|  * @li @subpage libswscale  color conversion and scaling library | ||||
|  * | ||||
|  */ | ||||
|   | ||||
| @@ -1,6 +0,0 @@ | ||||
| NAME = postproc | ||||
| FFLIBS = avutil | ||||
|  | ||||
| HEADERS = postprocess.h | ||||
|  | ||||
| OBJS = postprocess.o | ||||
| @@ -1,4 +0,0 @@ | ||||
| LIBPOSTPROC_$MAJOR { | ||||
|         global: postproc_*; pp_*; | ||||
|         local: *; | ||||
| }; | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,104 +0,0 @@ | ||||
| /* | ||||
|  * Copyright (C) 2001-2003 Michael Niedermayer (michaelni@gmx.at) | ||||
|  * | ||||
|  * This file is part of Libav. | ||||
|  * | ||||
|  * Libav is free software; you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation; either version 2 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * Libav is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with Libav; if not, write to the Free Software | ||||
|  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||
|  */ | ||||
|  | ||||
| #ifndef POSTPROC_POSTPROCESS_H | ||||
| #define POSTPROC_POSTPROCESS_H | ||||
|  | ||||
| /** | ||||
|  * @file | ||||
|  * @brief | ||||
|  *     external postprocessing API | ||||
|  */ | ||||
|  | ||||
| #include "libavutil/avutil.h" | ||||
|  | ||||
| #define LIBPOSTPROC_VERSION_MAJOR 52 | ||||
| #define LIBPOSTPROC_VERSION_MINOR  0 | ||||
| #define LIBPOSTPROC_VERSION_MICRO  0 | ||||
|  | ||||
| #define LIBPOSTPROC_VERSION_INT AV_VERSION_INT(LIBPOSTPROC_VERSION_MAJOR, \ | ||||
|                                                LIBPOSTPROC_VERSION_MINOR, \ | ||||
|                                                LIBPOSTPROC_VERSION_MICRO) | ||||
| #define LIBPOSTPROC_VERSION     AV_VERSION(LIBPOSTPROC_VERSION_MAJOR, \ | ||||
|                                            LIBPOSTPROC_VERSION_MINOR, \ | ||||
|                                            LIBPOSTPROC_VERSION_MICRO) | ||||
| #define LIBPOSTPROC_BUILD       LIBPOSTPROC_VERSION_INT | ||||
|  | ||||
| #define LIBPOSTPROC_IDENT       "postproc" AV_STRINGIFY(LIBPOSTPROC_VERSION) | ||||
|  | ||||
| /** | ||||
|  * Return the LIBPOSTPROC_VERSION_INT constant. | ||||
|  */ | ||||
| unsigned postproc_version(void); | ||||
|  | ||||
| /** | ||||
|  * Return the libpostproc build-time configuration. | ||||
|  */ | ||||
| const char *postproc_configuration(void); | ||||
|  | ||||
| /** | ||||
|  * Return the libpostproc license. | ||||
|  */ | ||||
| const char *postproc_license(void); | ||||
|  | ||||
| #define PP_QUALITY_MAX 6 | ||||
|  | ||||
| #define QP_STORE_T int8_t | ||||
|  | ||||
| #include <inttypes.h> | ||||
|  | ||||
| typedef void pp_context; | ||||
| typedef void pp_mode; | ||||
|  | ||||
| extern const char pp_help[]; ///< a simple help text | ||||
|  | ||||
| void  pp_postprocess(const uint8_t * src[3], const int srcStride[3], | ||||
|                      uint8_t * dst[3], const int dstStride[3], | ||||
|                      int horizontalSize, int verticalSize, | ||||
|                      const QP_STORE_T *QP_store,  int QP_stride, | ||||
|                      pp_mode *mode, pp_context *ppContext, int pict_type); | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * Return a pp_mode or NULL if an error occurred. | ||||
|  * | ||||
|  * @param name    the string after "-pp" on the command line | ||||
|  * @param quality a number from 0 to PP_QUALITY_MAX | ||||
|  */ | ||||
| pp_mode *pp_get_mode_by_name_and_quality(const char *name, int quality); | ||||
| void pp_free_mode(pp_mode *mode); | ||||
|  | ||||
| pp_context *pp_get_context(int width, int height, int flags); | ||||
| void pp_free_context(pp_context *ppContext); | ||||
|  | ||||
| #define PP_CPU_CAPS_MMX   0x80000000 | ||||
| #define PP_CPU_CAPS_MMX2  0x20000000 | ||||
| #define PP_CPU_CAPS_3DNOW 0x40000000 | ||||
| #define PP_CPU_CAPS_ALTIVEC 0x10000000 | ||||
|  | ||||
| #define PP_FORMAT         0x00000008 | ||||
| #define PP_FORMAT_420    (0x00000011|PP_FORMAT) | ||||
| #define PP_FORMAT_422    (0x00000001|PP_FORMAT) | ||||
| #define PP_FORMAT_411    (0x00000002|PP_FORMAT) | ||||
| #define PP_FORMAT_444    (0x00000000|PP_FORMAT) | ||||
|  | ||||
| #define PP_PICT_TYPE_QP2  0x00000010 ///< MPEG2 style QScale | ||||
|  | ||||
| #endif /* POSTPROC_POSTPROCESS_H */ | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -1,179 +0,0 @@ | ||||
| /* | ||||
|  * Copyright (C) 2001-2002 Michael Niedermayer (michaelni@gmx.at) | ||||
|  * | ||||
|  * This file is part of Libav. | ||||
|  * | ||||
|  * Libav is free software; you can redistribute it and/or modify | ||||
|  * it under the terms of the GNU General Public License as published by | ||||
|  * the Free Software Foundation; either version 2 of the License, or | ||||
|  * (at your option) any later version. | ||||
|  * | ||||
|  * Libav is distributed in the hope that it will be useful, | ||||
|  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
|  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||
|  * GNU General Public License for more details. | ||||
|  * | ||||
|  * You should have received a copy of the GNU General Public License | ||||
|  * along with Libav; if not, write to the Free Software | ||||
|  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | ||||
|  */ | ||||
|  | ||||
| /** | ||||
|  * @file | ||||
|  * internal api header. | ||||
|  */ | ||||
|  | ||||
| #ifndef POSTPROC_POSTPROCESS_INTERNAL_H | ||||
| #define POSTPROC_POSTPROCESS_INTERNAL_H | ||||
|  | ||||
| #include <string.h> | ||||
| #include "libavutil/avutil.h" | ||||
| #include "libavutil/log.h" | ||||
| #include "postprocess.h" | ||||
|  | ||||
| #define V_DEBLOCK       0x01 | ||||
| #define H_DEBLOCK       0x02 | ||||
| #define DERING          0x04 | ||||
| #define LEVEL_FIX       0x08 ///< Brightness & Contrast | ||||
|  | ||||
| #define LUM_V_DEBLOCK   V_DEBLOCK               //   1 | ||||
| #define LUM_H_DEBLOCK   H_DEBLOCK               //   2 | ||||
| #define CHROM_V_DEBLOCK (V_DEBLOCK<<4)          //  16 | ||||
| #define CHROM_H_DEBLOCK (H_DEBLOCK<<4)          //  32 | ||||
| #define LUM_DERING      DERING                  //   4 | ||||
| #define CHROM_DERING    (DERING<<4)             //  64 | ||||
| #define LUM_LEVEL_FIX   LEVEL_FIX               //   8 | ||||
| #define CHROM_LEVEL_FIX (LEVEL_FIX<<4)          // 128 (not implemented yet) | ||||
|  | ||||
| // Experimental vertical filters | ||||
| #define V_X1_FILTER     0x0200                  // 512 | ||||
| #define V_A_DEBLOCK     0x0400 | ||||
|  | ||||
| // Experimental horizontal filters | ||||
| #define H_X1_FILTER     0x2000                  // 8192 | ||||
| #define H_A_DEBLOCK     0x4000 | ||||
|  | ||||
| /// select between full y range (255-0) or standart one (234-16) | ||||
| #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 TEMP_NOISE_FILTER               0x100000 | ||||
| #define FORCE_QUANT                     0x200000 | ||||
|  | ||||
| //use if you want a faster postprocessing code | ||||
| //cannot differentiate between chroma & luma filters (both on or both off) | ||||
| //obviously the -pp option on the command line has no effect except turning the here selected | ||||
| //filters on | ||||
| //#define COMPILE_TIME_MODE 0x77 | ||||
|  | ||||
| static inline int CLIP(int 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 | ||||
| }; | ||||
|  | ||||
| /** | ||||
|  * Postprocessng mode. | ||||
|  */ | ||||
| typedef struct PPMode{ | ||||
|     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" you are willing to lose to get a brightness-corrected picture | ||||
|  | ||||
|     int maxTmpNoise[3];             ///< for Temporal Noise Reducing filter (Maximal sum of abs differences) | ||||
|  | ||||
|     int baseDcDiff; | ||||
|     int flatnessThreshold; | ||||
|  | ||||
|     int forcedQuant;                ///< quantizer if FORCE_QUANT is used | ||||
| } PPMode; | ||||
|  | ||||
| /** | ||||
|  * postprocess context. | ||||
|  */ | ||||
| typedef struct PPContext{ | ||||
|     /** | ||||
|      * info on struct for av_log | ||||
|      */ | ||||
|     const AVClass *av_class; | ||||
|  | ||||
|     uint8_t *tempBlocks; ///<used for the horizontal code | ||||
|  | ||||
|     /** | ||||
|      * luma histogram. | ||||
|      * we need 64bit here otherwise we'll going to have a problem | ||||
|      * after watching a black picture for 5 hours | ||||
|      */ | ||||
|     uint64_t *yHistogram; | ||||
|  | ||||
|     DECLARE_ALIGNED(8, uint64_t, packedYOffset); | ||||
|     DECLARE_ALIGNED(8, uint64_t, packedYScale); | ||||
|  | ||||
|     /** Temporal noise reducing buffers */ | ||||
|     uint8_t *tempBlurred[3]; | ||||
|     int32_t *tempBlurredPast[3]; | ||||
|  | ||||
|     /** Temporary buffers for handling the last row(s) */ | ||||
|     uint8_t *tempDst; | ||||
|     uint8_t *tempSrc; | ||||
|  | ||||
|     uint8_t *deintTemp; | ||||
|  | ||||
|     DECLARE_ALIGNED(8, uint64_t, pQPb); | ||||
|     DECLARE_ALIGNED(8, uint64_t, pQPb2); | ||||
|  | ||||
|     DECLARE_ALIGNED(8, uint64_t, mmxDcOffset)[64]; | ||||
|     DECLARE_ALIGNED(8, uint64_t, mmxDcThreshold)[64]; | ||||
|  | ||||
|     QP_STORE_T *stdQPTable;       ///< used to fix MPEG2 style qscale | ||||
|     QP_STORE_T *nonBQPTable; | ||||
|     QP_STORE_T *forcedQPTable; | ||||
|  | ||||
|     int QP; | ||||
|     int nonBQP; | ||||
|  | ||||
|     int frameNum; | ||||
|  | ||||
|     int cpuCaps; | ||||
|  | ||||
|     int qpStride; ///<size of qp buffers (needed to realloc them if needed) | ||||
|     int stride;   ///<size of some buffers (needed to realloc them if needed) | ||||
|  | ||||
|     int hChromaSubSample; | ||||
|     int vChromaSubSample; | ||||
|  | ||||
|     PPMode ppMode; | ||||
| } PPContext; | ||||
|  | ||||
|  | ||||
| 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 /* POSTPROC_POSTPROCESS_INTERNAL_H */ | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
		Reference in New Issue
	
	Block a user