History

Merge commit '2c6811397bdf13d43ca206e48d6d6da9c2cd47c6'

* commit '2c6811397bdf13d43ca206e48d6d6da9c2cd47c6': lavc: add profiles to AVCodecDescriptor

Hendrik Leppkes committed 10 years ago

Commit 5e8b0532 parents 5f2d12b 2c6811319 files · +228 −118Browse files

Unified · Split

19 files
  1. doc/APIchanges +3 −0
  2. libavcodec/Makefile +1 −0
  3. libavcodec/aacdec.c +3 −2
  4. libavcodec/aacdec_fixed.c +2 −0
  5. libavcodec/aacdec_template.c +0 −12
  6. libavcodec/avcodec.h +18 −1
  7. libavcodec/codec_desc.c +10 −0
  8. libavcodec/dcadec.c +2 −10
  9. libavcodec/h264.c +2 −18
  10. libavcodec/hevc.c +2 −9
  11. libavcodec/jpeg2000dec.c +2 −10
  12. libavcodec/libdcadec.c +2 −11
  13. libavcodec/mpeg12dec.c +2 −13
  14. libavcodec/mpeg4videodec.c +2 −21
  15. libavcodec/profiles.c +124 −0
  16. libavcodec/profiles.h +34 −0
  17. libavcodec/utils.c +15 −0
  18. libavcodec/vc1dec.c +3 −10
  19. libavcodec/version.h +1 −1
doc/APIchanges+3−0
@@ -15,6 +15,9 @@ libavutil: 2015-08-28 · 14 unmodified lines
15 15
16API changes, most recent first:16API changes, most recent first:
17 17
182016-01-01 - xxxxxxx - lavc 57.21.100 / 57.12.0 - avcodec.h
19 Add AVCodecDescriptor.profiles and avcodec_profile_name().
20
182015-12-28 - xxxxxxx - lavf 57.21.100 - avformat.h212015-12-28 - xxxxxxx - lavf 57.21.100 - avformat.h
19 Add automatic bitstream filtering; add av_apply_bitstream_filters()22 Add automatic bitstream filtering; add av_apply_bitstream_filters()
20 23
libavcodec/Makefile+1−0
@@ -33,6 +33,7 @@ OBJS = allcodecs.o \ · 32 unmodified lines
33 mathtables.o \33 mathtables.o \
34 options.o \34 options.o \
35 parser.o \35 parser.o \
36 profiles.o \
36 qsv_api.o \37 qsv_api.o \
37 raw.o \38 raw.o \
38 resample.o \39 resample.o \
libavcodec/aacdec.c+3−2
@@ -55,6 +55,7 @@ · 54 unmodified lines
55#include "aacsbr.h"55#include "aacsbr.h"
56#include "mpeg4audio.h"56#include "mpeg4audio.h"
57#include "aacadtsdec.h"57#include "aacadtsdec.h"
58#include "profiles.h"
58#include "libavutil/intfloat.h"59#include "libavutil/intfloat.h"
59 60
60#include <errno.h>61#include <errno.h>
@@ -555,7 +556,7 @@ AVCodec ff_aac_decoder = { · 494 unmodified lines
555 .channel_layouts = aac_channel_layout,556 .channel_layouts = aac_channel_layout,
556 .flush = flush,557 .flush = flush,
557 .priv_class = &aac_decoder_class,558 .priv_class = &aac_decoder_class,
558 .profiles = profiles,559 .profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
559};560};
560 561
561/*562/*
@@ -579,5 +580,5 @@ AVCodec ff_aac_latm_decoder = { · 17 unmodified lines
579 .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE,580 .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE,
580 .channel_layouts = aac_channel_layout,581 .channel_layouts = aac_channel_layout,
581 .flush = flush,582 .flush = flush,
582 .profiles = profiles,583 .profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
583};584};
libavcodec/aacdec_fixed.c+2−0
@@ -80,6 +80,7 @@ · 79 unmodified lines
80#include "aacsbr.h"80#include "aacsbr.h"
81#include "mpeg4audio.h"81#include "mpeg4audio.h"
82#include "aacadtsdec.h"82#include "aacadtsdec.h"
83#include "profiles.h"
83#include "libavutil/intfloat.h"84#include "libavutil/intfloat.h"
84 85
85#include <math.h>86#include <math.h>
@@ -440,5 +441,6 @@ AVCodec ff_aac_fixed_decoder = { · 354 unmodified lines
440 .capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,441 .capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,
441 .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE,442 .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE,
442 .channel_layouts = aac_channel_layout,443 .channel_layouts = aac_channel_layout,
444 .profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
443 .flush = flush,445 .flush = flush,
444};446};
libavcodec/aacdec_template.c+0−12
@@ -3232,15 +3232,3 @@ static const AVClass aac_decoder_class = { · 3231 unmodified lines
3232 .option = options,3232 .option = options,
3233 .version = LIBAVUTIL_VERSION_INT,3233 .version = LIBAVUTIL_VERSION_INT,
3234};3234};
3235
3236static const AVProfile profiles[] = {
3237 { FF_PROFILE_AAC_MAIN, "Main" },
3238 { FF_PROFILE_AAC_LOW, "LC" },
3239 { FF_PROFILE_AAC_SSR, "SSR" },
3240 { FF_PROFILE_AAC_LTP, "LTP" },
3241 { FF_PROFILE_AAC_HE, "HE-AAC" },
3242 { FF_PROFILE_AAC_HE_V2, "HE-AACv2" },
3243 { FF_PROFILE_AAC_LD, "LD" },
3244 { FF_PROFILE_AAC_ELD, "ELD" },
3245 { FF_PROFILE_UNKNOWN },
3246};
libavcodec/avcodec.h+18−1
@@ -574,13 +574,17 @@ typedef struct AVCodecDescriptor { · 573 unmodified lines
574 * Codec properties, a combination of AV_CODEC_PROP_* flags.574 * Codec properties, a combination of AV_CODEC_PROP_* flags.
575 */575 */
576 int props;576 int props;
577
578 /**577 /**
579 * MIME type(s) associated with the codec.578 * MIME type(s) associated with the codec.
580 * May be NULL; if not, a NULL-terminated array of MIME types.579 * May be NULL; if not, a NULL-terminated array of MIME types.
581 * The first item is always non-NULL and is the preferred MIME type.580 * The first item is always non-NULL and is the preferred MIME type.
582 */581 */
583 const char *const *mime_types;582 const char *const *mime_types;
583 /**
584 * If non-NULL, an array of profiles recognized for this codec.
585 * Terminated with FF_PROFILE_UNKNOWN.
586 */
587 const struct AVProfile *profiles;
584} AVCodecDescriptor;588} AVCodecDescriptor;
585 589
586/**590/**
@@ -5055,6 +5059,19 @@ void avcodec_string(char *buf, int buf_size, AVCodecContext *enc, int encode); · 4468 unmodified lines
5055 */5059 */
5056const char *av_get_profile_name(const AVCodec *codec, int profile);5060const char *av_get_profile_name(const AVCodec *codec, int profile);
5057 5061
5062/**
5063 * Return a name for the specified profile, if available.
5064 *
5065 * @param codec_id the ID of the codec to which the requested profile belongs
5066 * @param profile the profile value for which a name is requested
5067 * @return A name for the profile if found, NULL otherwise.
5068 *
5069 * @note unlike av_get_profile_name(), which searches a list of profiles
5070 * supported by a specific decoder or encoder implementation, this
5071 * function searches the list of profiles from the AVCodecDescriptor
5072 */
5073const char *avcodec_profile_name(enum AVCodecID codec_id, int profile);
5074
5058int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size);5075int avcodec_default_execute(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2),void *arg, int *ret, int count, int size);
5059int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count);5076int avcodec_default_execute2(AVCodecContext *c, int (*func)(AVCodecContext *c2, void *arg2, int, int),void *arg, int *ret, int count);
5060//FIXME func typedef5077//FIXME func typedef
libavcodec/codec_desc.c+10−0
@@ -24,6 +24,7 @@ · 23 unmodified lines
24#include "libavutil/common.h"24#include "libavutil/common.h"
25#include "libavutil/internal.h"25#include "libavutil/internal.h"
26#include "avcodec.h"26#include "avcodec.h"
27#include "profiles.h"
27#include "version.h"28#include "version.h"
28 29
29#define MT(...) (const char *const[]){ __VA_ARGS__, NULL }30#define MT(...) (const char *const[]){ __VA_ARGS__, NULL }
@@ -43,6 +44,7 @@ static const AVCodecDescriptor codec_descriptors[] = { · 13 unmodified lines
43 .name = "mpeg2video",44 .name = "mpeg2video",
44 .long_name = NULL_IF_CONFIG_SMALL("MPEG-2 video"),45 .long_name = NULL_IF_CONFIG_SMALL("MPEG-2 video"),
45 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,46 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
47 .profiles = NULL_IF_CONFIG_SMALL(ff_mpeg2_video_profiles),
46 },48 },
47#if FF_API_XVMC49#if FF_API_XVMC
48 {50 {
@@ -102,6 +104,7 @@ static const AVCodecDescriptor codec_descriptors[] = { · 53 unmodified lines
102 .name = "mpeg4",104 .name = "mpeg4",
103 .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2"),105 .long_name = NULL_IF_CONFIG_SMALL("MPEG-4 part 2"),
104 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,106 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
107 .profiles = NULL_IF_CONFIG_SMALL(ff_mpeg4_video_profiles),
105 },108 },
106 {109 {
107 .id = AV_CODEC_ID_RAWVIDEO,110 .id = AV_CODEC_ID_RAWVIDEO,
@@ -207,6 +210,7 @@ static const AVCodecDescriptor codec_descriptors[] = { · 99 unmodified lines
207 .name = "h264",210 .name = "h264",
208 .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),211 .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
209 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS | AV_CODEC_PROP_REORDER,212 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS | AV_CODEC_PROP_REORDER,
213 .profiles = NULL_IF_CONFIG_SMALL(ff_h264_profiles),
210 },214 },
211 {215 {
212 .id = AV_CODEC_ID_INDEO3,216 .id = AV_CODEC_ID_INDEO3,
@@ -473,6 +477,7 @@ static const AVCodecDescriptor codec_descriptors[] = { · 260 unmodified lines
473 .name = "vc1",477 .name = "vc1",
474 .long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1"),478 .long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1"),
475 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,479 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
480 .profiles = NULL_IF_CONFIG_SMALL(ff_vc1_profiles),
476 },481 },
477 {482 {
478 .id = AV_CODEC_ID_WMV3,483 .id = AV_CODEC_ID_WMV3,
@@ -480,6 +485,7 @@ static const AVCodecDescriptor codec_descriptors[] = { · 1 unmodified line
480 .name = "wmv3",485 .name = "wmv3",
481 .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9"),486 .long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9"),
482 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,487 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
488 .profiles = NULL_IF_CONFIG_SMALL(ff_vc1_profiles),
483 },489 },
484 {490 {
485 .id = AV_CODEC_ID_LOCO,491 .id = AV_CODEC_ID_LOCO,
@@ -602,6 +608,7 @@ static const AVCodecDescriptor codec_descriptors[] = { · 116 unmodified lines
602 .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |608 .props = AV_CODEC_PROP_INTRA_ONLY | AV_CODEC_PROP_LOSSY |
603 AV_CODEC_PROP_LOSSLESS,609 AV_CODEC_PROP_LOSSLESS,
604 .mime_types= MT("image/jp2"),610 .mime_types= MT("image/jp2"),
611 .profiles = NULL_IF_CONFIG_SMALL(ff_jpeg2000_profiles),
605 },612 },
606 {613 {
607 .id = AV_CODEC_ID_VMNC,614 .id = AV_CODEC_ID_VMNC,
@@ -1202,6 +1209,7 @@ static const AVCodecDescriptor codec_descriptors[] = { · 594 unmodified lines
1202 .name = "hevc",1209 .name = "hevc",
1203 .long_name = NULL_IF_CONFIG_SMALL("H.265 / HEVC (High Efficiency Video Coding)"),1210 .long_name = NULL_IF_CONFIG_SMALL("H.265 / HEVC (High Efficiency Video Coding)"),
1204 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,1211 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_REORDER,
1212 .profiles = NULL_IF_CONFIG_SMALL(ff_hevc_profiles),
1205 },1213 },
1206 {1214 {
1207 .id = AV_CODEC_ID_FIC,1215 .id = AV_CODEC_ID_FIC,
@@ -2097,6 +2105,7 @@ static const AVCodecDescriptor codec_descriptors[] = { · 889 unmodified lines
2097 .name = "aac",2105 .name = "aac",
2098 .long_name = NULL_IF_CONFIG_SMALL("AAC (Advanced Audio Coding)"),2106 .long_name = NULL_IF_CONFIG_SMALL("AAC (Advanced Audio Coding)"),
2099 .props = AV_CODEC_PROP_LOSSY,2107 .props = AV_CODEC_PROP_LOSSY,
2108 .profiles = NULL_IF_CONFIG_SMALL(ff_aac_profiles),
2100 },2109 },
2101 {2110 {
2102 .id = AV_CODEC_ID_AC3,2111 .id = AV_CODEC_ID_AC3,
@@ -2111,6 +2120,7 @@ static const AVCodecDescriptor codec_descriptors[] = { · 8 unmodified lines
2111 .name = "dts",2120 .name = "dts",
2112 .long_name = NULL_IF_CONFIG_SMALL("DCA (DTS Coherent Acoustics)"),2121 .long_name = NULL_IF_CONFIG_SMALL("DCA (DTS Coherent Acoustics)"),
2113 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,2122 .props = AV_CODEC_PROP_LOSSY | AV_CODEC_PROP_LOSSLESS,
2123 .profiles = NULL_IF_CONFIG_SMALL(ff_dca_profiles),
2114 },2124 },
2115 {2125 {
2116 .id = AV_CODEC_ID_VORBIS,2126 .id = AV_CODEC_ID_VORBIS,
libavcodec/dcadec.c+2−10
@@ -49,6 +49,7 @@ · 48 unmodified lines
49#include "get_bits.h"49#include "get_bits.h"
50#include "internal.h"50#include "internal.h"
51#include "mathops.h"51#include "mathops.h"
52#include "profiles.h"
52#include "synth_filter.h"53#include "synth_filter.h"
53 54
54#if ARCH_ARM55#if ARCH_ARM
@@ -2030,15 +2031,6 @@ static av_cold int dca_decode_end(AVCodecContext *avctx) · 1975 unmodified lines
2030 return 0;2031 return 0;
2031}2032}
2032 2033
2033static const AVProfile profiles[] = {
2034 { FF_PROFILE_DTS, "DTS" },
2035 { FF_PROFILE_DTS_ES, "DTS-ES" },
2036 { FF_PROFILE_DTS_96_24, "DTS 96/24" },
2037 { FF_PROFILE_DTS_HD_HRA, "DTS-HD HRA" },
2038 { FF_PROFILE_DTS_HD_MA, "DTS-HD MA" },
2039 { FF_PROFILE_UNKNOWN },
2040};
2041
2042static const AVOption options[] = {2034static const AVOption options[] = {
2043 { "disable_xch", "disable decoding of the XCh extension", offsetof(DCAContext, xch_disable), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM },2035 { "disable_xch", "disable decoding of the XCh extension", offsetof(DCAContext, xch_disable), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM },
2044 { "disable_xll", "disable decoding of the XLL extension", offsetof(DCAContext, xll_disable), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM },2036 { "disable_xll", "disable decoding of the XLL extension", offsetof(DCAContext, xll_disable), AV_OPT_TYPE_BOOL, { .i64 = 1 }, 0, 1, AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_AUDIO_PARAM },
@@ -2065,6 +2057,6 @@ AVCodec ff_dca_decoder = { · 20 unmodified lines
2065 .capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,2057 .capabilities = AV_CODEC_CAP_CHANNEL_CONF | AV_CODEC_CAP_DR1,
2066 .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,2058 .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_FLTP,
2067 AV_SAMPLE_FMT_NONE },2059 AV_SAMPLE_FMT_NONE },
2068 .profiles = NULL_IF_CONFIG_SMALL(profiles),2060 .profiles = NULL_IF_CONFIG_SMALL(ff_dca_profiles),
2069 .priv_class = &dca_decoder_class,2061 .priv_class = &dca_decoder_class,
2070};2062};
libavcodec/h264.c+2−18
@@ -46,6 +46,7 @@ · 45 unmodified lines
46#include "mathops.h"46#include "mathops.h"
47#include "me_cmp.h"47#include "me_cmp.h"
48#include "mpegutils.h"48#include "mpegutils.h"
49#include "profiles.h"
49#include "rectangle.h"50#include "rectangle.h"
50#include "svq3.h"51#include "svq3.h"
51#include "thread.h"52#include "thread.h"
@@ -1962,23 +1963,6 @@ static const AVClass h264_class = { · 1910 unmodified lines
1962 .version = LIBAVUTIL_VERSION_INT,1963 .version = LIBAVUTIL_VERSION_INT,
1963};1964};
1964 1965
1965static const AVProfile profiles[] = {
1966 { FF_PROFILE_H264_BASELINE, "Baseline" },
1967 { FF_PROFILE_H264_CONSTRAINED_BASELINE, "Constrained Baseline" },
1968 { FF_PROFILE_H264_MAIN, "Main" },
1969 { FF_PROFILE_H264_EXTENDED, "Extended" },
1970 { FF_PROFILE_H264_HIGH, "High" },
1971 { FF_PROFILE_H264_HIGH_10, "High 10" },
1972 { FF_PROFILE_H264_HIGH_10_INTRA, "High 10 Intra" },
1973 { FF_PROFILE_H264_HIGH_422, "High 4:2:2" },
1974 { FF_PROFILE_H264_HIGH_422_INTRA, "High 4:2:2 Intra" },
1975 { FF_PROFILE_H264_HIGH_444, "High 4:4:4" },
1976 { FF_PROFILE_H264_HIGH_444_PREDICTIVE, "High 4:4:4 Predictive" },
1977 { FF_PROFILE_H264_HIGH_444_INTRA, "High 4:4:4 Intra" },
1978 { FF_PROFILE_H264_CAVLC_444, "CAVLC 4:4:4" },
1979 { FF_PROFILE_UNKNOWN },
1980};
1981
1982AVCodec ff_h264_decoder = {1966AVCodec ff_h264_decoder = {
1983 .name = "h264",1967 .name = "h264",
1984 .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),1968 .long_name = NULL_IF_CONFIG_SMALL("H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10"),
@@ -1995,7 +1979,7 @@ AVCodec ff_h264_decoder = { · 10 unmodified lines
1995 .flush = flush_dpb,1979 .flush = flush_dpb,
1996 .init_thread_copy = ONLY_IF_THREADS_ENABLED(decode_init_thread_copy),1980 .init_thread_copy = ONLY_IF_THREADS_ENABLED(decode_init_thread_copy),
1997 .update_thread_context = ONLY_IF_THREADS_ENABLED(ff_h264_update_thread_context),1981 .update_thread_context = ONLY_IF_THREADS_ENABLED(ff_h264_update_thread_context),
1998 .profiles = NULL_IF_CONFIG_SMALL(profiles),1982 .profiles = NULL_IF_CONFIG_SMALL(ff_h264_profiles),
1999 .priv_class = &h264_class,1983 .priv_class = &h264_class,
2000};1984};
2001 1985
libavcodec/hevc.c+2−9
@@ -38,6 +38,7 @@ · 37 unmodified lines
38#include "cabac_functions.h"38#include "cabac_functions.h"
39#include "golomb.h"39#include "golomb.h"
40#include "hevc.h"40#include "hevc.h"
41#include "profiles.h"
41 42
42const uint8_t ff_hevc_pel_weight[65] = { [2] = 0, [4] = 1, [6] = 2, [8] = 3, [12] = 4, [16] = 5, [24] = 6, [32] = 7, [48] = 8, [64] = 9 };43const uint8_t ff_hevc_pel_weight[65] = { [2] = 0, [4] = 1, [6] = 2, [8] = 3, [12] = 4, [16] = 5, [24] = 6, [32] = 7, [48] = 8, [64] = 9 };
43 44
@@ -3314,14 +3315,6 @@ static void hevc_decode_flush(AVCodecContext *avctx) · 3270 unmodified lines
3314#define OFFSET(x) offsetof(HEVCContext, x)3315#define OFFSET(x) offsetof(HEVCContext, x)
3315#define PAR (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM)3316#define PAR (AV_OPT_FLAG_DECODING_PARAM | AV_OPT_FLAG_VIDEO_PARAM)
3316 3317
3317static const AVProfile profiles[] = {
3318 { FF_PROFILE_HEVC_MAIN, "Main" },
3319 { FF_PROFILE_HEVC_MAIN_10, "Main 10" },
3320 { FF_PROFILE_HEVC_MAIN_STILL_PICTURE, "Main Still Picture" },
3321 { FF_PROFILE_HEVC_REXT, "Rext" },
3322 { FF_PROFILE_UNKNOWN },
3323};
3324
3325static const AVOption options[] = {3318static const AVOption options[] = {
3326 { "apply_defdispwin", "Apply default display window from VUI", OFFSET(apply_defdispwin),3319 { "apply_defdispwin", "Apply default display window from VUI", OFFSET(apply_defdispwin),
3327 AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, PAR },3320 AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, PAR },
@@ -3352,5 +3345,5 @@ AVCodec ff_hevc_decoder = { · 24 unmodified lines
3352 .init_thread_copy = hevc_init_thread_copy,3345 .init_thread_copy = hevc_init_thread_copy,
3353 .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY |3346 .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY |
3354 AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS,3347 AV_CODEC_CAP_SLICE_THREADS | AV_CODEC_CAP_FRAME_THREADS,
3355 .profiles = NULL_IF_CONFIG_SMALL(profiles),3348 .profiles = NULL_IF_CONFIG_SMALL(ff_hevc_profiles),
3356};3349};
libavcodec/jpeg2000dec.c+2−10
@@ -39,6 +39,7 @@ · 38 unmodified lines
39#include "thread.h"39#include "thread.h"
40#include "jpeg2000.h"40#include "jpeg2000.h"
41#include "jpeg2000dsp.h"41#include "jpeg2000dsp.h"
42#include "profiles.h"
42 43
43#define JP2_SIG_TYPE 0x6A50202044#define JP2_SIG_TYPE 0x6A502020
44#define JP2_SIG_VALUE 0x0D0A870A45#define JP2_SIG_VALUE 0x0D0A870A
@@ -2142,15 +2143,6 @@ static const AVOption options[] = { · 2097 unmodified lines
2142 { NULL },2143 { NULL },
2143};2144};
2144 2145
2145static const AVProfile profiles[] = {
2146 { FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0, "JPEG 2000 codestream restriction 0" },
2147 { FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1, "JPEG 2000 codestream restriction 1" },
2148 { FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION, "JPEG 2000 no codestream restrictions" },
2149 { FF_PROFILE_JPEG2000_DCINEMA_2K, "JPEG 2000 digital cinema 2K" },
2150 { FF_PROFILE_JPEG2000_DCINEMA_4K, "JPEG 2000 digital cinema 4K" },
2151 { FF_PROFILE_UNKNOWN },
2152};
2153
2154static const AVClass jpeg2000_class = {2146static const AVClass jpeg2000_class = {
2155 .class_name = "jpeg2000",2147 .class_name = "jpeg2000",
2156 .item_name = av_default_item_name,2148 .item_name = av_default_item_name,
@@ -2170,5 +2162,5 @@ AVCodec ff_jpeg2000_decoder = { · 13 unmodified lines
2170 .decode = jpeg2000_decode_frame,2162 .decode = jpeg2000_decode_frame,
2171 .priv_class = &jpeg2000_class,2163 .priv_class = &jpeg2000_class,
2172 .max_lowres = 5,2164 .max_lowres = 5,
2173 .profiles = NULL_IF_CONFIG_SMALL(profiles)2165 .profiles = NULL_IF_CONFIG_SMALL(ff_jpeg2000_profiles)
2174};2166};
libavcodec/libdcadec.c+2−11
@@ -29,6 +29,7 @@ · 28 unmodified lines
29#include "dca.h"29#include "dca.h"
30#include "dca_syncwords.h"30#include "dca_syncwords.h"
31#include "internal.h"31#include "internal.h"
32#include "profiles.h"
32 33
33typedef struct DCADecContext {34typedef struct DCADecContext {
34 const AVClass *class;35 const AVClass *class;
@@ -292,16 +293,6 @@ static const AVClass dcadec_class = { · 257 unmodified lines
292 .category = AV_CLASS_CATEGORY_DECODER,293 .category = AV_CLASS_CATEGORY_DECODER,
293};294};
294 295
295static const AVProfile profiles[] = {
296 { FF_PROFILE_DTS, "DTS" },
297 { FF_PROFILE_DTS_ES, "DTS-ES" },
298 { FF_PROFILE_DTS_96_24, "DTS 96/24" },
299 { FF_PROFILE_DTS_HD_HRA, "DTS-HD HRA" },
300 { FF_PROFILE_DTS_HD_MA, "DTS-HD MA" },
301 { FF_PROFILE_DTS_EXPRESS, "DTS Express" },
302 { FF_PROFILE_UNKNOWN },
303};
304
305AVCodec ff_libdcadec_decoder = {296AVCodec ff_libdcadec_decoder = {
306 .name = "libdcadec",297 .name = "libdcadec",
307 .long_name = NULL_IF_CONFIG_SMALL("dcadec DCA decoder"),298 .long_name = NULL_IF_CONFIG_SMALL("dcadec DCA decoder"),
@@ -316,5 +307,5 @@ AVCodec ff_libdcadec_decoder = { · 8 unmodified lines
316 .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_S16P,307 .sample_fmts = (const enum AVSampleFormat[]) { AV_SAMPLE_FMT_S32P, AV_SAMPLE_FMT_S16P,
317 AV_SAMPLE_FMT_NONE },308 AV_SAMPLE_FMT_NONE },
318 .priv_class = &dcadec_class,309 .priv_class = &dcadec_class,
319 .profiles = NULL_IF_CONFIG_SMALL(profiles),310 .profiles = NULL_IF_CONFIG_SMALL(ff_dca_profiles),
320};311};
libavcodec/mpeg12dec.c+2−13
@@ -44,6 +44,7 @@ · 43 unmodified lines
44#include "mpegutils.h"44#include "mpegutils.h"
45#include "mpegvideo.h"45#include "mpegvideo.h"
46#include "mpegvideodata.h"46#include "mpegvideodata.h"
47#include "profiles.h"
47#include "thread.h"48#include "thread.h"
48#include "version.h"49#include "version.h"
49#include "vdpau_compat.h"50#include "vdpau_compat.h"
@@ -2855,18 +2856,6 @@ static av_cold int mpeg_decode_end(AVCodecContext *avctx) · 2805 unmodified lines
2855 return 0;2856 return 0;
2856}2857}
2857 2858
2858static const AVProfile mpeg2_video_profiles[] = {
2859 { FF_PROFILE_MPEG2_422, "4:2:2" },
2860 { FF_PROFILE_MPEG2_HIGH, "High" },
2861 { FF_PROFILE_MPEG2_SS, "Spatially Scalable" },
2862 { FF_PROFILE_MPEG2_SNR_SCALABLE, "SNR Scalable" },
2863 { FF_PROFILE_MPEG2_MAIN, "Main" },
2864 { FF_PROFILE_MPEG2_SIMPLE, "Simple" },
2865 { FF_PROFILE_RESERVED, "Reserved" },
2866 { FF_PROFILE_RESERVED, "Reserved" },
2867 { FF_PROFILE_UNKNOWN },
2868};
2869
2870AVCodec ff_mpeg1video_decoder = {2859AVCodec ff_mpeg1video_decoder = {
2871 .name = "mpeg1video",2860 .name = "mpeg1video",
2872 .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video"),2861 .long_name = NULL_IF_CONFIG_SMALL("MPEG-1 video"),
@@ -2898,7 +2887,7 @@ AVCodec ff_mpeg2video_decoder = { · 25 unmodified lines
2898 AV_CODEC_CAP_SLICE_THREADS,2887 AV_CODEC_CAP_SLICE_THREADS,
2899 .flush = flush,2888 .flush = flush,
2900 .max_lowres = 3,2889 .max_lowres = 3,
2901 .profiles = NULL_IF_CONFIG_SMALL(mpeg2_video_profiles),2890 .profiles = NULL_IF_CONFIG_SMALL(ff_mpeg2_video_profiles),
2902};2891};
2903 2892
2904//legacy decoder2893//legacy decoder
libavcodec/mpeg4videodec.c+2−21
@@ -32,6 +32,7 @@ · 31 unmodified lines
32#include "mpegvideodata.h"32#include "mpegvideodata.h"
33#include "mpeg4video.h"33#include "mpeg4video.h"
34#include "h263.h"34#include "h263.h"
35#include "profiles.h"
35#include "thread.h"36#include "thread.h"
36#include "xvididct.h"37#include "xvididct.h"
37 38
@@ -2745,26 +2746,6 @@ static av_cold int decode_init(AVCodecContext *avctx) · 2707 unmodified lines
2745 return 0;2746 return 0;
2746}2747}
2747 2748
2748static const AVProfile mpeg4_video_profiles[] = {
2749 { FF_PROFILE_MPEG4_SIMPLE, "Simple Profile" },
2750 { FF_PROFILE_MPEG4_SIMPLE_SCALABLE, "Simple Scalable Profile" },
2751 { FF_PROFILE_MPEG4_CORE, "Core Profile" },
2752 { FF_PROFILE_MPEG4_MAIN, "Main Profile" },
2753 { FF_PROFILE_MPEG4_N_BIT, "N-bit Profile" },
2754 { FF_PROFILE_MPEG4_SCALABLE_TEXTURE, "Scalable Texture Profile" },
2755 { FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION, "Simple Face Animation Profile" },
2756 { FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE, "Basic Animated Texture Profile" },
2757 { FF_PROFILE_MPEG4_HYBRID, "Hybrid Profile" },
2758 { FF_PROFILE_MPEG4_ADVANCED_REAL_TIME, "Advanced Real Time Simple Profile" },
2759 { FF_PROFILE_MPEG4_CORE_SCALABLE, "Code Scalable Profile" },
2760 { FF_PROFILE_MPEG4_ADVANCED_CODING, "Advanced Coding Profile" },
2761 { FF_PROFILE_MPEG4_ADVANCED_CORE, "Advanced Core Profile" },
2762 { FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE, "Advanced Scalable Texture Profile" },
2763 { FF_PROFILE_MPEG4_SIMPLE_STUDIO, "Simple Studio Profile" },
2764 { FF_PROFILE_MPEG4_ADVANCED_SIMPLE, "Advanced Simple Profile" },
2765 { FF_PROFILE_UNKNOWN },
2766};
2767
2768static const AVOption mpeg4_options[] = {2749static const AVOption mpeg4_options[] = {
2769 {"quarter_sample", "1/4 subpel MC", offsetof(MpegEncContext, quarter_sample), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, 0},2750 {"quarter_sample", "1/4 subpel MC", offsetof(MpegEncContext, quarter_sample), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, 0},
2770 {"divx_packed", "divx style packed b frames", offsetof(MpegEncContext, divx_packed), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, 0},2751 {"divx_packed", "divx style packed b frames", offsetof(MpegEncContext, divx_packed), AV_OPT_TYPE_BOOL, {.i64 = 0}, 0, 1, 0},
@@ -2793,7 +2774,7 @@ AVCodec ff_mpeg4_decoder = { · 22 unmodified lines
2793 .flush = ff_mpeg_flush,2774 .flush = ff_mpeg_flush,
2794 .max_lowres = 3,2775 .max_lowres = 3,
2795 .pix_fmts = ff_h263_hwaccel_pixfmt_list_420,2776 .pix_fmts = ff_h263_hwaccel_pixfmt_list_420,
2796 .profiles = NULL_IF_CONFIG_SMALL(mpeg4_video_profiles),2777 .profiles = NULL_IF_CONFIG_SMALL(ff_mpeg4_video_profiles),
2797 .update_thread_context = ONLY_IF_THREADS_ENABLED(mpeg4_update_thread_context),2778 .update_thread_context = ONLY_IF_THREADS_ENABLED(mpeg4_update_thread_context),
2798 .priv_class = &mpeg4_class,2779 .priv_class = &mpeg4_class,
2799};2780};
libavcodec/profiles.c+124−0
@@ -0,0 +1,124 @@
1/*
2 *
3 * This file is part of FFmpeg.
4 *
5 * FFmpeg is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * FFmpeg is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with FFmpeg; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19
20#include "config.h"
21
22#include "avcodec.h"
23#include "profiles.h"
24
25#if !CONFIG_SMALL
26
27const AVProfile ff_aac_profiles[] = {
28 { FF_PROFILE_AAC_LOW, "LC" },
29 { FF_PROFILE_AAC_HE, "HE-AAC" },
30 { FF_PROFILE_AAC_HE_V2, "HE-AACv2" },
31 { FF_PROFILE_AAC_LD, "LD" },
32 { FF_PROFILE_AAC_ELD, "ELD" },
33 { FF_PROFILE_AAC_MAIN, "Main" },
34 { FF_PROFILE_AAC_LOW, "LC" },
35 { FF_PROFILE_AAC_SSR, "SSR" },
36 { FF_PROFILE_AAC_LTP, "LTP" },
37 { FF_PROFILE_UNKNOWN },
38};
39
40const AVProfile ff_dca_profiles[] = {
41 { FF_PROFILE_DTS, "DTS" },
42 { FF_PROFILE_DTS_ES, "DTS-ES" },
43 { FF_PROFILE_DTS_96_24, "DTS 96/24" },
44 { FF_PROFILE_DTS_HD_HRA, "DTS-HD HRA" },
45 { FF_PROFILE_DTS_HD_MA, "DTS-HD MA" },
46 { FF_PROFILE_DTS_EXPRESS, "DTS Express" },
47 { FF_PROFILE_UNKNOWN },
48};
49
50const AVProfile ff_h264_profiles[] = {
51 { FF_PROFILE_H264_BASELINE, "Baseline" },
52 { FF_PROFILE_H264_CONSTRAINED_BASELINE, "Constrained Baseline" },
53 { FF_PROFILE_H264_MAIN, "Main" },
54 { FF_PROFILE_H264_EXTENDED, "Extended" },
55 { FF_PROFILE_H264_HIGH, "High" },
56 { FF_PROFILE_H264_HIGH_10, "High 10" },
57 { FF_PROFILE_H264_HIGH_10_INTRA, "High 10 Intra" },
58 { FF_PROFILE_H264_HIGH_422, "High 4:2:2" },
59 { FF_PROFILE_H264_HIGH_422_INTRA, "High 4:2:2 Intra" },
60 { FF_PROFILE_H264_HIGH_444, "High 4:4:4" },
61 { FF_PROFILE_H264_HIGH_444_PREDICTIVE, "High 4:4:4 Predictive" },
62 { FF_PROFILE_H264_HIGH_444_INTRA, "High 4:4:4 Intra" },
63 { FF_PROFILE_H264_CAVLC_444, "CAVLC 4:4:4" },
64 { FF_PROFILE_UNKNOWN },
65};
66
67const AVProfile ff_hevc_profiles[] = {
68 { FF_PROFILE_HEVC_MAIN, "Main" },
69 { FF_PROFILE_HEVC_MAIN_10, "Main 10" },
70 { FF_PROFILE_HEVC_MAIN_STILL_PICTURE, "Main Still Picture" },
71 { FF_PROFILE_HEVC_REXT, "Rext" },
72 { FF_PROFILE_UNKNOWN },
73};
74
75const AVProfile ff_jpeg2000_profiles[] = {
76 { FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_0, "JPEG 2000 codestream restriction 0" },
77 { FF_PROFILE_JPEG2000_CSTREAM_RESTRICTION_1, "JPEG 2000 codestream restriction 1" },
78 { FF_PROFILE_JPEG2000_CSTREAM_NO_RESTRICTION, "JPEG 2000 no codestream restrictions" },
79 { FF_PROFILE_JPEG2000_DCINEMA_2K, "JPEG 2000 digital cinema 2K" },
80 { FF_PROFILE_JPEG2000_DCINEMA_4K, "JPEG 2000 digital cinema 4K" },
81 { FF_PROFILE_UNKNOWN },
82};
83
84const AVProfile ff_mpeg2_video_profiles[] = {
85 { FF_PROFILE_MPEG2_422, "4:2:2" },
86 { FF_PROFILE_MPEG2_HIGH, "High" },
87 { FF_PROFILE_MPEG2_SS, "Spatially Scalable" },
88 { FF_PROFILE_MPEG2_SNR_SCALABLE, "SNR Scalable" },
89 { FF_PROFILE_MPEG2_MAIN, "Main" },
90 { FF_PROFILE_MPEG2_SIMPLE, "Simple" },
91 { FF_PROFILE_RESERVED, "Reserved" },
92 { FF_PROFILE_RESERVED, "Reserved" },
93 { FF_PROFILE_UNKNOWN },
94};
95
96const AVProfile ff_mpeg4_video_profiles[] = {
97 { FF_PROFILE_MPEG4_SIMPLE, "Simple Profile" },
98 { FF_PROFILE_MPEG4_SIMPLE_SCALABLE, "Simple Scalable Profile" },
99 { FF_PROFILE_MPEG4_CORE, "Core Profile" },
100 { FF_PROFILE_MPEG4_MAIN, "Main Profile" },
101 { FF_PROFILE_MPEG4_N_BIT, "N-bit Profile" },
102 { FF_PROFILE_MPEG4_SCALABLE_TEXTURE, "Scalable Texture Profile" },
103 { FF_PROFILE_MPEG4_SIMPLE_FACE_ANIMATION, "Simple Face Animation Profile" },
104 { FF_PROFILE_MPEG4_BASIC_ANIMATED_TEXTURE, "Basic Animated Texture Profile" },
105 { FF_PROFILE_MPEG4_HYBRID, "Hybrid Profile" },
106 { FF_PROFILE_MPEG4_ADVANCED_REAL_TIME, "Advanced Real Time Simple Profile" },
107 { FF_PROFILE_MPEG4_CORE_SCALABLE, "Code Scalable Profile" },
108 { FF_PROFILE_MPEG4_ADVANCED_CODING, "Advanced Coding Profile" },
109 { FF_PROFILE_MPEG4_ADVANCED_CORE, "Advanced Core Profile" },
110 { FF_PROFILE_MPEG4_ADVANCED_SCALABLE_TEXTURE, "Advanced Scalable Texture Profile" },
111 { FF_PROFILE_MPEG4_SIMPLE_STUDIO, "Simple Studio Profile" },
112 { FF_PROFILE_MPEG4_ADVANCED_SIMPLE, "Advanced Simple Profile" },
113 { FF_PROFILE_UNKNOWN },
114};
115
116const AVProfile ff_vc1_profiles[] = {
117 { FF_PROFILE_VC1_SIMPLE, "Simple" },
118 { FF_PROFILE_VC1_MAIN, "Main" },
119 { FF_PROFILE_VC1_COMPLEX, "Complex" },
120 { FF_PROFILE_VC1_ADVANCED, "Advanced" },
121 { FF_PROFILE_UNKNOWN },
122};
123
124#endif /* !CONFIG_SMALL */
libavcodec/profiles.h+34−0
@@ -0,0 +1,34 @@
1/*
2 *
3 * This file is part of FFmpeg.
4 *
5 * FFmpeg is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
9 *
10 * FFmpeg is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with FFmpeg; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18 */
19
20#ifndef AVCODEC_PROFILES_H
21#define AVCODEC_PROFILES_H
22
23#include "avcodec.h"
24
25extern const AVProfile ff_aac_profiles[];
26extern const AVProfile ff_dca_profiles[];
27extern const AVProfile ff_h264_profiles[];
28extern const AVProfile ff_hevc_profiles[];
29extern const AVProfile ff_jpeg2000_profiles[];
30extern const AVProfile ff_mpeg2_video_profiles[];
31extern const AVProfile ff_mpeg4_video_profiles[];
32extern const AVProfile ff_vc1_profiles[];
33
34#endif
libavcodec/utils.c+15−0
@@ -2862,6 +2862,21 @@ const char *av_get_profile_name(const AVCodec *codec, int profile) · 2861 unmodified lines
2862 return NULL;2862 return NULL;
2863}2863}
2864 2864
2865const char *avcodec_profile_name(enum AVCodecID codec_id, int profile)
2866{
2867 const AVCodecDescriptor *desc = avcodec_descriptor_get(codec_id);
2868 const AVProfile *p;
2869
2870 if (profile == FF_PROFILE_UNKNOWN || !desc || !desc->profiles)
2871 return NULL;
2872
2873 for (p = desc->profiles; p->profile != FF_PROFILE_UNKNOWN; p++)
2874 if (p->profile == profile)
2875 return p->name;
2876
2877 return NULL;
2878}
2879
2865unsigned avcodec_version(void)2880unsigned avcodec_version(void)
2866{2881{
2867// av_assert0(AV_CODEC_ID_V410==164);2882// av_assert0(AV_CODEC_ID_V410==164);
libavcodec/vc1dec.c+3−10
@@ -34,6 +34,7 @@ · 33 unmodified lines
34#include "mpegvideo.h"34#include "mpegvideo.h"
35#include "msmpeg4.h"35#include "msmpeg4.h"
36#include "msmpeg4data.h"36#include "msmpeg4data.h"
37#include "profiles.h"
37#include "vc1.h"38#include "vc1.h"
38#include "vc1data.h"39#include "vc1data.h"
39#include "vdpau_compat.h"40#include "vdpau_compat.h"
@@ -1103,14 +1104,6 @@ err: · 1063 unmodified lines
1103}1104}
1104 1105
1105 1106
1106static const AVProfile profiles[] = {
1107 { FF_PROFILE_VC1_SIMPLE, "Simple" },
1108 { FF_PROFILE_VC1_MAIN, "Main" },
1109 { FF_PROFILE_VC1_COMPLEX, "Complex" },
1110 { FF_PROFILE_VC1_ADVANCED, "Advanced" },
1111 { FF_PROFILE_UNKNOWN },
1112};
1113
1114static const enum AVPixelFormat vc1_hwaccel_pixfmt_list_420[] = {1107static const enum AVPixelFormat vc1_hwaccel_pixfmt_list_420[] = {
1115#if CONFIG_VC1_DXVA2_HWACCEL1108#if CONFIG_VC1_DXVA2_HWACCEL
1116 AV_PIX_FMT_DXVA2_VLD,1109 AV_PIX_FMT_DXVA2_VLD,
@@ -1140,7 +1133,7 @@ AVCodec ff_vc1_decoder = { · 23 unmodified lines
1140 .flush = ff_mpeg_flush,1133 .flush = ff_mpeg_flush,
1141 .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,1134 .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
1142 .pix_fmts = vc1_hwaccel_pixfmt_list_420,1135 .pix_fmts = vc1_hwaccel_pixfmt_list_420,
1143 .profiles = NULL_IF_CONFIG_SMALL(profiles)1136 .profiles = NULL_IF_CONFIG_SMALL(ff_vc1_profiles)
1144};1137};
1145 1138
1146#if CONFIG_WMV3_DECODER1139#if CONFIG_WMV3_DECODER
@@ -1156,7 +1149,7 @@ AVCodec ff_wmv3_decoder = { · 9 unmodified lines
1156 .flush = ff_mpeg_flush,1149 .flush = ff_mpeg_flush,
1157 .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,1150 .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY,
1158 .pix_fmts = vc1_hwaccel_pixfmt_list_420,1151 .pix_fmts = vc1_hwaccel_pixfmt_list_420,
1159 .profiles = NULL_IF_CONFIG_SMALL(profiles)1152 .profiles = NULL_IF_CONFIG_SMALL(ff_vc1_profiles)
1160};1153};
1161#endif1154#endif
1162 1155
libavcodec/version.h+1−1
@@ -29,7 +29,7 @@ · 28 unmodified lines
29#include "libavutil/version.h"29#include "libavutil/version.h"
30 30
31#define LIBAVCODEC_VERSION_MAJOR 5731#define LIBAVCODEC_VERSION_MAJOR 57
32#define LIBAVCODEC_VERSION_MINOR 2032#define LIBAVCODEC_VERSION_MINOR 21
33#define LIBAVCODEC_VERSION_MICRO 10033#define LIBAVCODEC_VERSION_MICRO 100
34 34
35#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \35#define LIBAVCODEC_VERSION_INT AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t