switch (avctx->sw_pix_fmt) {
case AV_PIX_FMT_YUV420P:
case AV_PIX_FMT_YUVJ420P:
+ case AV_PIX_FMT_YUV420P10:
+ case AV_PIX_FMT_YUV420P12:
t = VDP_CHROMA_TYPE_420;
w = (w + 1) & ~1;
h = (h + 3) & ~3;
break;
case AV_PIX_FMT_YUV444P:
case AV_PIX_FMT_YUVJ444P:
+ case AV_PIX_FMT_YUV444P10:
+ case AV_PIX_FMT_YUV444P12:
t = VDP_CHROMA_TYPE_444;
h = (h + 1) & ~1;
break;
return 0;
}
-#if FF_API_VDPAU_PROFILE
-int av_vdpau_get_profile(AVCodecContext *avctx, VdpDecoderProfile *profile)
-{
-#define PROFILE(prof) \
-do { \
- *profile = VDP_DECODER_PROFILE_##prof; \
- return 0; \
-} while (0)
-
- switch (avctx->codec_id) {
- case AV_CODEC_ID_MPEG1VIDEO: PROFILE(MPEG1);
- case AV_CODEC_ID_MPEG2VIDEO:
- switch (avctx->profile) {
- case FF_PROFILE_MPEG2_MAIN: PROFILE(MPEG2_MAIN);
- case FF_PROFILE_MPEG2_SIMPLE: PROFILE(MPEG2_SIMPLE);
- default: return AVERROR(EINVAL);
- }
- case AV_CODEC_ID_H263: PROFILE(MPEG4_PART2_ASP);
- case AV_CODEC_ID_MPEG4:
- switch (avctx->profile) {
- case FF_PROFILE_MPEG4_SIMPLE: PROFILE(MPEG4_PART2_SP);
- case FF_PROFILE_MPEG4_ADVANCED_SIMPLE: PROFILE(MPEG4_PART2_ASP);
- default: return AVERROR(EINVAL);
- }
- case AV_CODEC_ID_H264:
- switch (avctx->profile & ~FF_PROFILE_H264_INTRA) {
- case FF_PROFILE_H264_BASELINE: PROFILE(H264_BASELINE);
- case FF_PROFILE_H264_CONSTRAINED_BASELINE:
- case FF_PROFILE_H264_MAIN: PROFILE(H264_MAIN);
- case FF_PROFILE_H264_HIGH: PROFILE(H264_HIGH);
-#ifdef VDP_DECODER_PROFILE_H264_EXTENDED
- case FF_PROFILE_H264_EXTENDED: PROFILE(H264_EXTENDED);
-#endif
- default: return AVERROR(EINVAL);
- }
- case AV_CODEC_ID_WMV3:
- case AV_CODEC_ID_VC1:
- switch (avctx->profile) {
- case FF_PROFILE_VC1_SIMPLE: PROFILE(VC1_SIMPLE);
- case FF_PROFILE_VC1_MAIN: PROFILE(VC1_MAIN);
- case FF_PROFILE_VC1_ADVANCED: PROFILE(VC1_ADVANCED);
- default: return AVERROR(EINVAL);
- }
- }
- return AVERROR(EINVAL);
-#undef PROFILE
-}
-#endif /* FF_API_VDPAU_PROFILE */
-
AVVDPAUContext *av_vdpau_alloc_context(void)
{
return av_mallocz(sizeof(VDPAUHWContext));