VC1: Export profile/level
Signed-off-by: Mans Rullgard <mans@mansr.com>
This commit is contained in:
committed by
Mans Rullgard
parent
5dbe78bf91
commit
0215006ab7
@@ -2314,6 +2314,11 @@ typedef struct AVCodecContext {
|
|||||||
#define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA)
|
#define FF_PROFILE_H264_HIGH_444_INTRA (244|FF_PROFILE_H264_INTRA)
|
||||||
#define FF_PROFILE_H264_CAVLC_444 44
|
#define FF_PROFILE_H264_CAVLC_444 44
|
||||||
|
|
||||||
|
#define FF_PROFILE_VC1_SIMPLE 0
|
||||||
|
#define FF_PROFILE_VC1_MAIN 1
|
||||||
|
#define FF_PROFILE_VC1_COMPLEX 2
|
||||||
|
#define FF_PROFILE_VC1_ADVANCED 3
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* level
|
* level
|
||||||
* - encoding: Set by user.
|
* - encoding: Set by user.
|
||||||
|
@@ -3098,6 +3098,10 @@ static av_cold int vc1_decode_init(AVCodecContext *avctx)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
avctx->profile = v->profile;
|
||||||
|
if (v->profile == PROFILE_ADVANCED)
|
||||||
|
avctx->level = v->level;
|
||||||
|
|
||||||
avctx->has_b_frames= !!(avctx->max_b_frames);
|
avctx->has_b_frames= !!(avctx->max_b_frames);
|
||||||
s->low_delay = !avctx->has_b_frames;
|
s->low_delay = !avctx->has_b_frames;
|
||||||
|
|
||||||
@@ -3345,6 +3349,13 @@ static av_cold int vc1_decode_end(AVCodecContext *avctx)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const AVProfile profiles[] = {
|
||||||
|
{ FF_PROFILE_VC1_SIMPLE, "Simple" },
|
||||||
|
{ FF_PROFILE_VC1_MAIN, "Main" },
|
||||||
|
{ FF_PROFILE_VC1_COMPLEX, "Complex" },
|
||||||
|
{ FF_PROFILE_VC1_ADVANCED, "Advanced" },
|
||||||
|
{ FF_PROFILE_UNKNOWN },
|
||||||
|
};
|
||||||
|
|
||||||
AVCodec ff_vc1_decoder = {
|
AVCodec ff_vc1_decoder = {
|
||||||
"vc1",
|
"vc1",
|
||||||
@@ -3358,7 +3369,8 @@ AVCodec ff_vc1_decoder = {
|
|||||||
CODEC_CAP_DR1 | CODEC_CAP_DELAY,
|
CODEC_CAP_DR1 | CODEC_CAP_DELAY,
|
||||||
NULL,
|
NULL,
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1"),
|
.long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1"),
|
||||||
.pix_fmts = ff_hwaccel_pixfmt_list_420
|
.pix_fmts = ff_hwaccel_pixfmt_list_420,
|
||||||
|
.profiles = NULL_IF_CONFIG_SMALL(profiles)
|
||||||
};
|
};
|
||||||
|
|
||||||
#if CONFIG_WMV3_DECODER
|
#if CONFIG_WMV3_DECODER
|
||||||
@@ -3374,7 +3386,8 @@ AVCodec ff_wmv3_decoder = {
|
|||||||
CODEC_CAP_DR1 | CODEC_CAP_DELAY,
|
CODEC_CAP_DR1 | CODEC_CAP_DELAY,
|
||||||
NULL,
|
NULL,
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9"),
|
.long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9"),
|
||||||
.pix_fmts = ff_hwaccel_pixfmt_list_420
|
.pix_fmts = ff_hwaccel_pixfmt_list_420,
|
||||||
|
.profiles = NULL_IF_CONFIG_SMALL(profiles)
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -3391,7 +3404,8 @@ AVCodec ff_wmv3_vdpau_decoder = {
|
|||||||
CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
|
CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
|
||||||
NULL,
|
NULL,
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 VDPAU"),
|
.long_name = NULL_IF_CONFIG_SMALL("Windows Media Video 9 VDPAU"),
|
||||||
.pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_WMV3, PIX_FMT_NONE}
|
.pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_WMV3, PIX_FMT_NONE},
|
||||||
|
.profiles = NULL_IF_CONFIG_SMALL(profiles)
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -3408,6 +3422,7 @@ AVCodec ff_vc1_vdpau_decoder = {
|
|||||||
CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
|
CODEC_CAP_DR1 | CODEC_CAP_DELAY | CODEC_CAP_HWACCEL_VDPAU,
|
||||||
NULL,
|
NULL,
|
||||||
.long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1 VDPAU"),
|
.long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1 VDPAU"),
|
||||||
.pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_VC1, PIX_FMT_NONE}
|
.pix_fmts = (const enum PixelFormat[]){PIX_FMT_VDPAU_VC1, PIX_FMT_NONE},
|
||||||
|
.profiles = NULL_IF_CONFIG_SMALL(profiles)
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user