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