Mercurial > libavcodec.hg
annotate internal.h @ 11547:aba20ba60384 libavcodec
optimize init_vlc().
Reduce worst case time from O(N^2) to O(N*log(N)).
Speedup average case by a factor of 10 in ffv2 (total decoding speed +4-25%),
factor of 1.3 in ffvhuff (total +0.5%),
factor of 1.8 in indeo5 (total +1%),
factor of 1.1 in mjpeg (total +0.1%).
author | lorenm |
---|---|
date | Mon, 29 Mar 2010 02:50:23 +0000 |
parents | b4a6e414ef00 |
children | 7dd2a45249a9 |
rev | line source |
---|---|
8281
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
1 /* |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
2 * This file is part of FFmpeg. |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
3 * |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
4 * FFmpeg is free software; you can redistribute it and/or |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
5 * modify it under the terms of the GNU Lesser General Public |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
6 * License as published by the Free Software Foundation; either |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
7 * version 2.1 of the License, or (at your option) any later version. |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
8 * |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
9 * FFmpeg is distributed in the hope that it will be useful, |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
12 * Lesser General Public License for more details. |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
13 * |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
14 * You should have received a copy of the GNU Lesser General Public |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
15 * License along with FFmpeg; if not, write to the Free Software |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
17 */ |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
18 |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
19 /** |
8718
e9d9d946f213
Use full internal pathname in doxygen @file directives.
diego
parents:
8603
diff
changeset
|
20 * @file libavcodec/internal.h |
8281
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
21 * common internal api header. |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
22 */ |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
23 |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
24 #ifndef AVCODEC_INTERNAL_H |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
25 #define AVCODEC_INTERNAL_H |
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
26 |
9033 | 27 #include <stdint.h> |
28 #include "avcodec.h" | |
29 | |
8281
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
30 /** |
9822
2887f410011f
Remove '\p', '\c' and '\e' doxygen markup from doxy, as it should
stefano
parents:
9046
diff
changeset
|
31 * Determines whether pix_fmt is a hardware accelerated format. |
9046 | 32 */ |
33 int ff_is_hwaccel_pix_fmt(enum PixelFormat pix_fmt); | |
34 | |
35 /** | |
9822
2887f410011f
Remove '\p', '\c' and '\e' doxygen markup from doxy, as it should
stefano
parents:
9046
diff
changeset
|
36 * Returns the hardware accelerated codec for codec codec_id and |
2887f410011f
Remove '\p', '\c' and '\e' doxygen markup from doxy, as it should
stefano
parents:
9046
diff
changeset
|
37 * pixel format pix_fmt. |
9033 | 38 * |
39 * @param codec_id the codec to match | |
40 * @param pix_fmt the pixel format to match | |
41 * @return the hardware accelerated codec, or NULL if none was found. | |
42 */ | |
43 AVHWAccel *ff_find_hwaccel(enum CodecID codec_id, enum PixelFormat pix_fmt); | |
44 | |
10834 | 45 /** |
46 * Return the index into tab at which {a,b} match elements {[0],[1]} of tab. | |
47 * If there is no such matching pair then size is returned. | |
48 */ | |
10833 | 49 int ff_match_2uint16(const uint16_t (*tab)[2], int size, int a, int b); |
50 | |
8281
f93efc084e41
Make av_log_missing_feature an internal function, and change its name
stefano
parents:
diff
changeset
|
51 #endif /* AVCODEC_INTERNAL_H */ |