[Mesa-dev] Decode hi10p with mesa uvd vdpau
peter.fruehberger at gmail.com
Sat Oct 26 17:49:20 CEST 2013
Thanks for your answer,
2013/10/26 Grigori Goronzy <greg at chown.ath.cx>:
> On 26.10.2013 16:31, Peter Frühberger wrote:
>> I looked at the openmax decoder posted yesterday and have seen that
>> only two fields are missing to also decode hi10p with the current
>> vdpau uvd infrastructure in place.
>> I mailed two patches to the vdpau mailing list in order to get the API
>> bumped to "ship" those two fields via the h264 structure to later have
>> them available, the rest is already there with .
> Maybe it would be nice to get some further useful API additions into VDPAU
> along the way?
> For instance, 10 bpc video surfaces would be quite useful (for software
> decoding w/ VDPAU presentation), or a video mixer attribute to configure
> chroma sample cositing.
I tought of a minimal way for now to get those things working in the
complete concept. Ommitting all the 10 bpc surfaces and also only
using 8 bit references is a quite a hacky approach. As I don't know of
any hw decoder that really does those things in 10 bits, I thought it
is enough to get the discussion started.
Presentation is a good aspect I did not have in mind.
> Best regards
>> In mesa it is currently handled with the already given profiles, see
>> attached patch. This is - I think - a minimal way of get it decoded.
>> Happy to discuss a more general approach.
>> Input welcome, I will especially update, when I get feedback on the
>> vdpau Mailinglist (bumped versions are only to be seen prototypical).
>> Best regards
>> From 9f9df1a397a7d9a0b6471e16c49e9a330c13172d Mon Sep 17 00:00:00 2001
>> From: fritsch <peter.fruehberger at gmail.com>
>> Date: Sat, 26 Oct 2013 15:52:46 +0200
>> Subject: [PATCH 1/3] hi10p: vdpau state tracker patch
>> src/gallium/state_trackers/vdpau/vdpau_private.h | 4 ++++
>> 1 file changed, 4 insertions(+)
>> diff --git a/src/gallium/state_trackers/vdpau/vdpau_private.h
>> index 60196ac..99bad8f 100644
>> --- a/src/gallium/state_trackers/vdpau/vdpau_private.h
>> +++ b/src/gallium/state_trackers/vdpau/vdpau_private.h
>> @@ -260,6 +260,8 @@ ProfileToPipe(VdpDecoderProfile vdpau_profile)
>> return PIPE_VIDEO_PROFILE_VC1_MAIN;
>> case VDP_DECODER_PROFILE_VC1_ADVANCED:
>> return PIPE_VIDEO_PROFILE_VC1_ADVANCED;
>> + case VDP_DECODER_PROFILE_H264_HI10;
>> + return PIPE_VIDEO_PROFILE_MPEG4_AVC_HI10;
>> return PIPE_VIDEO_PROFILE_UNKNOWN;
>> @@ -281,6 +283,8 @@ PipeToProfile(enum pipe_video_profile p_profile)
>> return VDP_DECODER_PROFILE_H264_MAIN;
>> case PIPE_VIDEO_PROFILE_MPEG4_AVC_HIGH:
>> return VDP_DECODER_PROFILE_H264_HIGH;
>> + case PIPE_VIDEO_PROFILE_MPEG4_AVC_HI10:
>> + return VDP_DECODER_PROFILE_H264_HI10;
>> case PIPE_VIDEO_PROFILE_MPEG4_SIMPLE:
>> return VDP_DECODER_PROFILE_MPEG4_PART2_SP;
>> case PIPE_VIDEO_PROFILE_MPEG4_ADVANCED_SIMPLE:
Fingerprint: 4606 DA19 EC2E 9A0B 0157 C81B DA07 CF63 1A99 5A9B
More information about the mesa-dev