X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-core%2Ftrunk%2Fsrc%2Fmodules%2Fmod_libavcodec%2Flibavcodec%2Flibpostproc%2Fpostprocess.h;fp=synfig-core%2Ftrunk%2Fsrc%2Fmodules%2Fmod_libavcodec%2Flibavcodec%2Flibpostproc%2Fpostprocess.h;h=dae863044b148e4e9c424e7003e48ebe00eec252;hb=16b3beced25134bef064705568ecb893a6be4e79;hp=0000000000000000000000000000000000000000;hpb=5a1d028f56182922addfed8f1f1c28fdde12756c;p=synfig.git diff --git a/synfig-core/trunk/src/modules/mod_libavcodec/libavcodec/libpostproc/postprocess.h b/synfig-core/trunk/src/modules/mod_libavcodec/libavcodec/libpostproc/postprocess.h new file mode 100644 index 0000000..dae8630 --- /dev/null +++ b/synfig-core/trunk/src/modules/mod_libavcodec/libavcodec/libpostproc/postprocess.h @@ -0,0 +1,75 @@ +/* + Copyright (C) 2001-2003 Michael Niedermayer (michaelni@gmx.at) + + This program 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. + + This program 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 this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +#ifndef NEWPOSTPROCESS_H +#define NEWPOSTPROCESS_H + +/** + * @file postprocess.h + * @brief + * external api for the pp stuff + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#define PP_QUALITY_MAX 6 + +#define QP_STORE_T int8_t + +typedef void pp_context_t; +typedef void pp_mode_t; + +extern char *pp_help; ///< a simple help text + +void pp_postprocess(uint8_t * src[3], int srcStride[3], + uint8_t * dst[3], int dstStride[3], + int horizontalSize, int verticalSize, + QP_STORE_T *QP_store, int QP_stride, + pp_mode_t *mode, pp_context_t *ppContext, int pict_type); + + +/** + * returns a pp_mode_t or NULL if an error occured + * name is the string after "-pp" on the command line + * quality is a number from 0 to PP_QUALITY_MAX + */ +pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality); +void pp_free_mode(pp_mode_t *mode); + +pp_context_t *pp_get_context(int width, int height, int flags); +void pp_free_context(pp_context_t *ppContext); + +#define PP_CPU_CAPS_MMX 0x80000000 +#define PP_CPU_CAPS_MMX2 0x20000000 +#define PP_CPU_CAPS_3DNOW 0x40000000 + +#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 + +#ifdef __cplusplus +} +#endif + +#endif