Mercurial > libavcodec.hg
annotate libpostproc/postprocess.h @ 1757:3906ddbaffec libavcodec
optimization & bugfix extracted from the 4k line diff between ffmpeg 0.4.7 and http://www.alicestreet.com/ffh263.html
the other parts of the diff where
1. spelling fixes (rejected as only a small part of it could be applied automatically)
2. cosmetics (reindention, function reordering, var renaming, ...) with bugs (rejected)
3. rtp related stuff (rejetced as it breaks several codecs)
4. some changes to the intra/inter decission & scene change detection (quality tests needed first)
| author | michael |
|---|---|
| date | Sat, 24 Jan 2004 23:47:33 +0000 |
| parents | 2e06398e4647 |
| children | 6a6c678517b3 |
| 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 |
|
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
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 | |
| 24 * @brief | |
| 25 * external api for the pp stuff | |
| 26 */ | |
| 27 | |
| 28 #ifdef __cplusplus | |
| 29 extern "C" { | |
| 30 #endif | |
| 31 | |
| 830 | 32 #define PP_QUALITY_MAX 6 |
|
95
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
33 |
| 804 | 34 #define QP_STORE_T int8_t |
|
95
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
35 |
| 820 | 36 typedef void pp_context_t; |
| 829 | 37 typedef void pp_mode_t; |
| 116 | 38 |
| 1109 | 39 extern char *pp_help; ///< a simple help text |
| 116 | 40 |
| 792 | 41 void pp_postprocess(uint8_t * src[3], int srcStride[3], |
| 787 | 42 uint8_t * dst[3], int dstStride[3], |
| 43 int horizontalSize, int verticalSize, | |
| 44 QP_STORE_T *QP_store, int QP_stride, | |
| 829 | 45 pp_mode_t *mode, pp_context_t *ppContext, int pict_type); |
| 104 | 46 |
| 830 | 47 |
| 48 /** | |
| 49 * returns a pp_mode_t or NULL if an error occured | |
| 50 * name is the string after "-pp" on the command line | |
| 51 * quality is a number from 0 to PP_QUALITY_MAX | |
| 52 */ | |
| 829 | 53 pp_mode_t *pp_get_mode_by_name_and_quality(char *name, int quality); |
| 54 void pp_free_mode(pp_mode_t *mode); | |
| 787 | 55 |
| 957 | 56 pp_context_t *pp_get_context(int width, int height, int flags); |
| 820 | 57 void pp_free_context(pp_context_t *ppContext); |
| 179 | 58 |
|
800
52ac8213387e
using same numbers for cpuCaps as libmpeg2 & liba52
michael
parents:
799
diff
changeset
|
59 #define PP_CPU_CAPS_MMX 0x80000000 |
|
52ac8213387e
using same numbers for cpuCaps as libmpeg2 & liba52
michael
parents:
799
diff
changeset
|
60 #define PP_CPU_CAPS_MMX2 0x20000000 |
|
52ac8213387e
using same numbers for cpuCaps as libmpeg2 & liba52
michael
parents:
799
diff
changeset
|
61 #define PP_CPU_CAPS_3DNOW 0x40000000 |
| 799 | 62 |
| 957 | 63 #define PP_FORMAT 0x00000008 |
| 64 #define PP_FORMAT_420 (0x00000011|PP_FORMAT) | |
| 65 #define PP_FORMAT_422 (0x00000001|PP_FORMAT) | |
| 66 #define PP_FORMAT_411 (0x00000002|PP_FORMAT) | |
| 67 #define PP_FORMAT_444 (0x00000000|PP_FORMAT) | |
| 68 | |
| 1196 | 69 #define PP_PICT_TYPE_QP2 0x00000010 ///< MPEG2 style QScale |
| 70 | |
| 1066 | 71 #ifdef __cplusplus |
| 72 } | |
|
95
8bce253b537c
new postprocess code by Michael Niedermayer (michaelni@gmx.at)
arpi
parents:
diff
changeset
|
73 #endif |
| 1066 | 74 |
| 75 #endif |
