yading@11: /* yading@11: * Copyright (C) 2001-2003 Michael Niedermayer (michaelni@gmx.at) yading@11: * yading@11: * This file is part of FFmpeg. yading@11: * yading@11: * FFmpeg is free software; you can redistribute it and/or modify yading@11: * it under the terms of the GNU General Public License as published by yading@11: * the Free Software Foundation; either version 2 of the License, or yading@11: * (at your option) any later version. yading@11: * yading@11: * FFmpeg is distributed in the hope that it will be useful, yading@11: * but WITHOUT ANY WARRANTY; without even the implied warranty of yading@11: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the yading@11: * GNU General Public License for more details. yading@11: * yading@11: * You should have received a copy of the GNU General Public License yading@11: * along with FFmpeg; if not, write to the Free Software yading@11: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA yading@11: */ yading@11: yading@11: #ifndef POSTPROC_POSTPROCESS_H yading@11: #define POSTPROC_POSTPROCESS_H yading@11: yading@11: /** yading@11: * @file yading@11: * @ingroup lpp yading@11: * external API header yading@11: */ yading@11: yading@11: /** yading@11: * @defgroup lpp Libpostproc yading@11: * @{ yading@11: */ yading@11: yading@11: #include "libpostproc/version.h" yading@11: yading@11: /** yading@11: * Return the LIBPOSTPROC_VERSION_INT constant. yading@11: */ yading@11: unsigned postproc_version(void); yading@11: yading@11: /** yading@11: * Return the libpostproc build-time configuration. yading@11: */ yading@11: const char *postproc_configuration(void); yading@11: yading@11: /** yading@11: * Return the libpostproc license. yading@11: */ yading@11: const char *postproc_license(void); yading@11: yading@11: #define PP_QUALITY_MAX 6 yading@11: yading@11: #define QP_STORE_T int8_t yading@11: yading@11: #include yading@11: yading@11: typedef void pp_context; yading@11: typedef void pp_mode; yading@11: yading@11: #if LIBPOSTPROC_VERSION_INT < (52<<16) yading@11: typedef pp_context pp_context_t; yading@11: typedef pp_mode pp_mode_t; yading@11: extern const char *const pp_help; ///< a simple help text yading@11: #else yading@11: extern const char pp_help[]; ///< a simple help text yading@11: #endif yading@11: yading@11: void pp_postprocess(const uint8_t * src[3], const int srcStride[3], yading@11: uint8_t * dst[3], const int dstStride[3], yading@11: int horizontalSize, int verticalSize, yading@11: const QP_STORE_T *QP_store, int QP_stride, yading@11: pp_mode *mode, pp_context *ppContext, int pict_type); yading@11: yading@11: yading@11: /** yading@11: * Return a pp_mode or NULL if an error occurred. yading@11: * yading@11: * @param name the string after "-pp" on the command line yading@11: * @param quality a number from 0 to PP_QUALITY_MAX yading@11: */ yading@11: pp_mode *pp_get_mode_by_name_and_quality(const char *name, int quality); yading@11: void pp_free_mode(pp_mode *mode); yading@11: yading@11: pp_context *pp_get_context(int width, int height, int flags); yading@11: void pp_free_context(pp_context *ppContext); yading@11: yading@11: #define PP_CPU_CAPS_MMX 0x80000000 yading@11: #define PP_CPU_CAPS_MMX2 0x20000000 yading@11: #define PP_CPU_CAPS_3DNOW 0x40000000 yading@11: #define PP_CPU_CAPS_ALTIVEC 0x10000000 yading@11: #define PP_CPU_CAPS_AUTO 0x00080000 yading@11: yading@11: #define PP_FORMAT 0x00000008 yading@11: #define PP_FORMAT_420 (0x00000011|PP_FORMAT) yading@11: #define PP_FORMAT_422 (0x00000001|PP_FORMAT) yading@11: #define PP_FORMAT_411 (0x00000002|PP_FORMAT) yading@11: #define PP_FORMAT_444 (0x00000000|PP_FORMAT) yading@11: yading@11: #define PP_PICT_TYPE_QP2 0x00000010 ///< MPEG2 style QScale yading@11: yading@11: /** yading@11: * @} yading@11: */ yading@11: yading@11: #endif /* POSTPROC_POSTPROCESS_H */