+static int vdpau_h264_init(AVCodecContext *avctx)
+{
+ VdpDecoderProfile profile;
+ uint32_t level = avctx->level;
+
+ switch (avctx->profile & ~FF_PROFILE_H264_INTRA) {
+ case FF_PROFILE_H264_BASELINE:
+ profile = VDP_DECODER_PROFILE_H264_BASELINE;
+ break;
+ case FF_PROFILE_H264_CONSTRAINED_BASELINE:
+ case FF_PROFILE_H264_MAIN:
+ profile = VDP_DECODER_PROFILE_H264_MAIN;
+ break;
+ case FF_PROFILE_H264_HIGH:
+ profile = VDP_DECODER_PROFILE_H264_HIGH;
+ break;
+ default:
+ return AVERROR(ENOTSUP);
+ }
+
+ if ((avctx->profile & FF_PROFILE_H264_INTRA) && avctx->level == 11)
+ level = VDP_DECODER_LEVEL_H264_1b;
+
+ return ff_vdpau_common_init(avctx, profile, level);
+}
+