Mercurial > libavcodec.hg
annotate libpostproc/postprocess.h @ 3198:6b9f0c4fbdbe libavcodec
First part of a series of speed-enchancing patches.
This one sets up a snow.h and makes snow use the dsputil function pointer
framework to access the three functions that will be implemented in asm
in the other parts of the patchset.
Patch by Robert Edele < yartrebo AH earthlink POIS net>
Original thread:
Subject: [Ffmpeg-devel] [PATCH] Snow mmx+sse2 asm optimizations
Date: Sun, 05 Feb 2006 12:47:14 -0500
| author | gpoirier |
|---|---|
| date | Thu, 16 Mar 2006 19:18:18 +0000 |
| parents | 1dc89e24d9c2 |
| children |
| rev | line source |
|---|---|
|
95
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
1 /* |
| 1066 | 2 Copyright (C) 2001-2003 Michael Niedermayer (michaelni@gmx.at) |
|
95
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
3 |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
4 This program is free software; you can redistribute it and/or modify |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
5 it under the terms of the GNU General Public License as published by |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
6 the Free Software Foundation; either version 2 of the License, or |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
7 (at your option) any later version. |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
8 |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
9 This program is distributed in the hope that it will be useful, |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
10 but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
12 GNU General Public License for more details. |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
13 |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
14 You should have received a copy of the GNU General Public License |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
15 along with this program; if not, write to the Free Software |
|
3036
0b546eab515d
Update licensing information: The FSF changed postal address.
diego
parents:
2979
diff
changeset
|
16 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
|
95
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
17 */ |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
18 |
| 103 | 19 #ifndef NEWPOSTPROCESS_H |
| 20 #define NEWPOSTPROCESS_H | |
|
95
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
21 |
| 1066 | 22 /** |
| 23 * @file postprocess.h | |
| 2967 | 24 * @brief |
| 1066 | 25 * external api for the pp stuff |
| 26 */ | |
| 27 | |
| 28 #ifdef __cplusplus | |
| 29 extern "C" { | |
| 30 #endif | |
| 31 | |
| 3047 | 32 #define LIBPOSTPROC_VERSION_INT ((51<<16)+(1<<8)+0) |
| 33 #define LIBPOSTPROC_VERSION 51.1.0 | |
| 34 #define LIBPOSTPROC_BUILD LIBPOSTPROC_VERSION_INT | |
| 35 | |
| 36 #define LIBPOSTPROC_IDENT "postproc" AV_STRINGIFY(LIBPOSTPROC_VERSION) | |
| 37 | |
| 830 | 38 #define PP_QUALITY_MAX 6 |
|
95
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
39 |
| 804 | 40 #define QP_STORE_T int8_t |
|
95
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
41 |
| 820 | 42 typedef void pp_context_t; |
| 829 | 43 typedef void pp_mode_t; |
| 116 | 44 |
| 1109 | 45 extern char *pp_help; ///< a simple help text |
| 116 | 46 |
| 792 | 47 void pp_postprocess(uint8_t * src[3], int srcStride[3], |
| 787 | 48 uint8_t * dst[3], int dstStride[3], |
| 49 int horizontalSize, int verticalSize, | |
| 50 QP_STORE_T *QP_store, int QP_stride, | |
| 2979 | 51 pp_mode_t *mode, pp_context_t *ppContext, int pict_type); |
| 104 | 52 |
| 830 | 53 |
| 54 /** | |
| 55 * returns a pp_mode_t or NULL if an error occured | |
| 56 * name is the string after "-pp" on the command line | |
| 57 * quality is a number from 0 to PP_QUALITY_MAX | |
| 58 */ | |
| 829 | 59 pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality); |
| 60 void pp_free_mode(pp_mode_t *mode); | |
| 787 | 61 |
| 957 | 62 pp_context_t *pp_get_context(int width, int height, int flags); |
| 820 | 63 void pp_free_context(pp_context_t *ppContext); |
| 179 | 64 |
|
800
52ac8213387e
using same numbers for cpuCaps as libmpeg2 & liba52
michael
parents:
799
diff
changeset
|
65 #define PP_CPU_CAPS_MMX 0x80000000 |
|
52ac8213387e
using same numbers for cpuCaps as libmpeg2 & liba52
michael
parents:
799
diff
changeset
|
66 #define PP_CPU_CAPS_MMX2 0x20000000 |
|
52ac8213387e
using same numbers for cpuCaps as libmpeg2 & liba52
michael
parents:
799
diff
changeset
|
67 #define PP_CPU_CAPS_3DNOW 0x40000000 |
|
2036
6a6c678517b3
altivec optimizations and horizontal filter fix by (Romain Dolbeau <dolbeau at irisa dot fr>)
michael
parents:
1196
diff
changeset
|
68 #define PP_CPU_CAPS_ALTIVEC 0x10000000 |
| 799 | 69 |
| 957 | 70 #define PP_FORMAT 0x00000008 |
| 71 #define PP_FORMAT_420 (0x00000011|PP_FORMAT) | |
| 72 #define PP_FORMAT_422 (0x00000001|PP_FORMAT) | |
| 73 #define PP_FORMAT_411 (0x00000002|PP_FORMAT) | |
| 74 #define PP_FORMAT_444 (0x00000000|PP_FORMAT) | |
| 75 | |
| 1196 | 76 #define PP_PICT_TYPE_QP2 0x00000010 ///< MPEG2 style QScale |
| 77 | |
| 1066 | 78 #ifdef __cplusplus |
| 79 } | |
|
95
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
80 #endif |
| 1066 | 81 |
| 82 #endif |
