[VDPAU] Profiles and levels exposed in the nvidia implementation

Philip Langdale philipl at overt.org
Wed Jul 22 13:19:12 PDT 2015


I've been chatting with José about this and he felt it should be
captured here.

Today, the nvidia drivers report pretty conservative profile
and level support numbers - specifically for H.264. Maximum level is
4.1, no claimed support for baseline/constrained baseline/progressive
high and constrained high.

On the profile side, constrained baseline, progressive high, and
constrained high are all subsets of supported profiles, so I can't see
any reasons why these shouldn't be supported.

Baseline is more complicated because the baseline-only features
actually are not supported, and wouldn't work if used. It becomes
tricky when confronted with a baseline-profile file, as a player app
will typically compare the file's profile with the supported profile
list to decide what to do. Obviously the player can apply its own
policy and say something like "Implementation supports main and this
file is almost certainly constrained baseline so I'll tell vdpau I want
a MAIN decoder and things should work" but it's unfortunate to have to
implement that kind of policy at the player level.

On the level side, the officially claimed support is 4.1, but at the
same time, the officially claimed support is also 4k at 60 which
corresponds to level 5.2. Again, if the player compares reported file
level with supported level, it will decide to reject the file. Avoiding
that requires the player to ignore the supported level completely,
which defeats the purpose.

José tells me that the lack of reported support is due to the hardware
not actually supporting the exact definition of those capabilities
even though files play back correctly. So what do we do here? Right now
players have to strategically ignore reported capabilities to play the
largest possible set of files.

--phil


More information about the VDPAU mailing list