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 21 module ffmpeg.libpostproc.postprocess; 22 23 extern (C): 24 import ffmpeg; @nogc nothrow: 25 26 /** 27 * @file 28 * @ingroup lpp 29 * external API header 30 */ 31 32 /** 33 * @defgroup lpp libpostproc 34 * Video postprocessing library. 35 * 36 * @{ 37 */ 38 39 /** 40 * Return the LIBPOSTPROC_VERSION_INT constant. 41 */ 42 uint postproc_version (); 43 44 /** 45 * Return the libpostproc build-time configuration. 46 */ 47 const(char)* postproc_configuration (); 48 49 /** 50 * Return the libpostproc license. 51 */ 52 const(char)* postproc_license (); 53 54 enum PP_QUALITY_MAX = 6; 55 56 alias pp_context = void; 57 alias pp_mode = void; 58 59 ///< a simple help text 60 61 extern __gshared const(char)[] pp_help; ///< a simple help text 62 63 void pp_postprocess ( 64 ref const(ubyte)*[3] src, 65 ref const(int)[3] srcStride, 66 ref ubyte*[3] dst, 67 ref const(int)[3] dstStride, 68 int horizontalSize, 69 int verticalSize, 70 const(byte)* QP_store, 71 int QP_stride, 72 pp_mode* mode, 73 pp_context* ppContext, 74 int pict_type); 75 76 /** 77 * Return a pp_mode or NULL if an error occurred. 78 * 79 * @param name the string after "-pp" on the command line 80 * @param quality a number from 0 to PP_QUALITY_MAX 81 */ 82 pp_mode* pp_get_mode_by_name_and_quality (const(char)* name, int quality); 83 void pp_free_mode (pp_mode* mode); 84 85 pp_context* pp_get_context (int width, int height, int flags); 86 void pp_free_context (pp_context* ppContext); 87 88 enum PP_CPU_CAPS_MMX = 0x80000000; 89 enum PP_CPU_CAPS_MMX2 = 0x20000000; 90 enum PP_CPU_CAPS_3DNOW = 0x40000000; 91 enum PP_CPU_CAPS_ALTIVEC = 0x10000000; 92 enum PP_CPU_CAPS_AUTO = 0x00080000; 93 94 enum PP_FORMAT = 0x00000008; 95 enum PP_FORMAT_420 = 0x00000011 | PP_FORMAT; 96 enum PP_FORMAT_422 = 0x00000001 | PP_FORMAT; 97 enum PP_FORMAT_411 = 0x00000002 | PP_FORMAT; 98 enum PP_FORMAT_444 = 0x00000000 | PP_FORMAT; 99 enum PP_FORMAT_440 = 0x00000010 | PP_FORMAT; 100 101 enum PP_PICT_TYPE_QP2 = 0x00000010; ///< MPEG2 style QScale 102 103 /** 104 * @} 105 */ 106 107 /* POSTPROC_POSTPROCESS_H */