1cabdff1aSopenharmony_ci/* 2cabdff1aSopenharmony_ci * Copyright (C) 2001-2003 Michael Niedermayer (michaelni@gmx.at) 3cabdff1aSopenharmony_ci * 4cabdff1aSopenharmony_ci * This file is part of FFmpeg. 5cabdff1aSopenharmony_ci * 6cabdff1aSopenharmony_ci * FFmpeg is free software; you can redistribute it and/or modify 7cabdff1aSopenharmony_ci * it under the terms of the GNU General Public License as published by 8cabdff1aSopenharmony_ci * the Free Software Foundation; either version 2 of the License, or 9cabdff1aSopenharmony_ci * (at your option) any later version. 10cabdff1aSopenharmony_ci * 11cabdff1aSopenharmony_ci * FFmpeg is distributed in the hope that it will be useful, 12cabdff1aSopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of 13cabdff1aSopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14cabdff1aSopenharmony_ci * GNU General Public License for more details. 15cabdff1aSopenharmony_ci * 16cabdff1aSopenharmony_ci * You should have received a copy of the GNU General Public License 17cabdff1aSopenharmony_ci * along with FFmpeg; if not, write to the Free Software 18cabdff1aSopenharmony_ci * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19cabdff1aSopenharmony_ci */ 20cabdff1aSopenharmony_ci 21cabdff1aSopenharmony_ci#ifndef POSTPROC_POSTPROCESS_H 22cabdff1aSopenharmony_ci#define POSTPROC_POSTPROCESS_H 23cabdff1aSopenharmony_ci 24cabdff1aSopenharmony_ci/** 25cabdff1aSopenharmony_ci * @file 26cabdff1aSopenharmony_ci * @ingroup lpp 27cabdff1aSopenharmony_ci * external API header 28cabdff1aSopenharmony_ci */ 29cabdff1aSopenharmony_ci 30cabdff1aSopenharmony_ci/** 31cabdff1aSopenharmony_ci * @defgroup lpp libpostproc 32cabdff1aSopenharmony_ci * Video postprocessing library. 33cabdff1aSopenharmony_ci * 34cabdff1aSopenharmony_ci * @{ 35cabdff1aSopenharmony_ci */ 36cabdff1aSopenharmony_ci 37cabdff1aSopenharmony_ci#include "libpostproc/version_major.h" 38cabdff1aSopenharmony_ci#ifndef HAVE_AV_CONFIG_H 39cabdff1aSopenharmony_ci/* When included as part of the ffmpeg build, only include the major version 40cabdff1aSopenharmony_ci * to avoid unnecessary rebuilds. When included externally, keep including 41cabdff1aSopenharmony_ci * the full version information. */ 42cabdff1aSopenharmony_ci#include "libpostproc/version.h" 43cabdff1aSopenharmony_ci#endif 44cabdff1aSopenharmony_ci 45cabdff1aSopenharmony_ci/** 46cabdff1aSopenharmony_ci * Return the LIBPOSTPROC_VERSION_INT constant. 47cabdff1aSopenharmony_ci */ 48cabdff1aSopenharmony_ciunsigned postproc_version(void); 49cabdff1aSopenharmony_ci 50cabdff1aSopenharmony_ci/** 51cabdff1aSopenharmony_ci * Return the libpostproc build-time configuration. 52cabdff1aSopenharmony_ci */ 53cabdff1aSopenharmony_ciconst char *postproc_configuration(void); 54cabdff1aSopenharmony_ci 55cabdff1aSopenharmony_ci/** 56cabdff1aSopenharmony_ci * Return the libpostproc license. 57cabdff1aSopenharmony_ci */ 58cabdff1aSopenharmony_ciconst char *postproc_license(void); 59cabdff1aSopenharmony_ci 60cabdff1aSopenharmony_ci#define PP_QUALITY_MAX 6 61cabdff1aSopenharmony_ci 62cabdff1aSopenharmony_ci#include <inttypes.h> 63cabdff1aSopenharmony_ci 64cabdff1aSopenharmony_citypedef void pp_context; 65cabdff1aSopenharmony_citypedef void pp_mode; 66cabdff1aSopenharmony_ci 67cabdff1aSopenharmony_ciextern const char pp_help[]; ///< a simple help text 68cabdff1aSopenharmony_ci 69cabdff1aSopenharmony_civoid pp_postprocess(const uint8_t * src[3], const int srcStride[3], 70cabdff1aSopenharmony_ci uint8_t * dst[3], const int dstStride[3], 71cabdff1aSopenharmony_ci int horizontalSize, int verticalSize, 72cabdff1aSopenharmony_ci const int8_t *QP_store, int QP_stride, 73cabdff1aSopenharmony_ci pp_mode *mode, pp_context *ppContext, int pict_type); 74cabdff1aSopenharmony_ci 75cabdff1aSopenharmony_ci 76cabdff1aSopenharmony_ci/** 77cabdff1aSopenharmony_ci * Return a pp_mode or NULL if an error occurred. 78cabdff1aSopenharmony_ci * 79cabdff1aSopenharmony_ci * @param name the string after "-pp" on the command line 80cabdff1aSopenharmony_ci * @param quality a number from 0 to PP_QUALITY_MAX 81cabdff1aSopenharmony_ci */ 82cabdff1aSopenharmony_cipp_mode *pp_get_mode_by_name_and_quality(const char *name, int quality); 83cabdff1aSopenharmony_civoid pp_free_mode(pp_mode *mode); 84cabdff1aSopenharmony_ci 85cabdff1aSopenharmony_cipp_context *pp_get_context(int width, int height, int flags); 86cabdff1aSopenharmony_civoid pp_free_context(pp_context *ppContext); 87cabdff1aSopenharmony_ci 88cabdff1aSopenharmony_ci#define PP_CPU_CAPS_MMX 0x80000000 89cabdff1aSopenharmony_ci#define PP_CPU_CAPS_MMX2 0x20000000 90cabdff1aSopenharmony_ci#define PP_CPU_CAPS_3DNOW 0x40000000 91cabdff1aSopenharmony_ci#define PP_CPU_CAPS_ALTIVEC 0x10000000 92cabdff1aSopenharmony_ci#define PP_CPU_CAPS_AUTO 0x00080000 93cabdff1aSopenharmony_ci 94cabdff1aSopenharmony_ci#define PP_FORMAT 0x00000008 95cabdff1aSopenharmony_ci#define PP_FORMAT_420 (0x00000011|PP_FORMAT) 96cabdff1aSopenharmony_ci#define PP_FORMAT_422 (0x00000001|PP_FORMAT) 97cabdff1aSopenharmony_ci#define PP_FORMAT_411 (0x00000002|PP_FORMAT) 98cabdff1aSopenharmony_ci#define PP_FORMAT_444 (0x00000000|PP_FORMAT) 99cabdff1aSopenharmony_ci#define PP_FORMAT_440 (0x00000010|PP_FORMAT) 100cabdff1aSopenharmony_ci 101cabdff1aSopenharmony_ci#define PP_PICT_TYPE_QP2 0x00000010 ///< MPEG2 style QScale 102cabdff1aSopenharmony_ci 103cabdff1aSopenharmony_ci/** 104cabdff1aSopenharmony_ci * @} 105cabdff1aSopenharmony_ci */ 106cabdff1aSopenharmony_ci 107cabdff1aSopenharmony_ci#endif /* POSTPROC_POSTPROCESS_H */ 108