vdpau: add implementation of VdpDecoderGetParameters

This commit is contained in:
Christian König 2011-07-08 20:53:39 +02:00
parent ea78480029
commit 34145ecdad
2 changed files with 34 additions and 0 deletions

View File

@ -145,6 +145,18 @@ vlVdpDecoderGetParameters(VdpDecoder decoder,
uint32_t *width,
uint32_t *height)
{
vlVdpDecoder *vldecoder;
VDPAU_MSG(VDPAU_TRACE, "[VDPAU] decoder get parameters called\n");
vldecoder = (vlVdpDecoder *)vlGetDataHTAB(decoder);
if (!vldecoder)
return VDP_STATUS_INVALID_HANDLE;
*profile = PipeToProfile(vldecoder->decoder->profile);
*width = vldecoder->decoder->width;
*height = vldecoder->decoder->height;
return VDP_STATUS_OK;
}

View File

@ -171,6 +171,28 @@ ProfileToPipe(VdpDecoderProfile vdpau_profile)
}
}
static inline VdpDecoderProfile
PipeToProfile(enum pipe_video_profile p_profile)
{
switch (p_profile) {
case PIPE_VIDEO_PROFILE_MPEG1:
return VDP_DECODER_PROFILE_MPEG1;
case PIPE_VIDEO_PROFILE_MPEG2_SIMPLE:
return VDP_DECODER_PROFILE_MPEG2_SIMPLE;
case PIPE_VIDEO_PROFILE_MPEG2_MAIN:
return VDP_DECODER_PROFILE_MPEG2_MAIN;
case PIPE_VIDEO_PROFILE_MPEG4_AVC_BASELINE:
return VDP_DECODER_PROFILE_H264_BASELINE;
case PIPE_VIDEO_PROFILE_MPEG4_AVC_MAIN: /* Not defined in p_format.h */
return VDP_DECODER_PROFILE_H264_MAIN;
case PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH:
return VDP_DECODER_PROFILE_H264_HIGH;
default:
assert(0);
return -1;
}
}
typedef struct
{
Display *display;