[FFmpeg-devel] [PATCH v2 1/3] avformat/vpcc: Calculate VP9 level from Luma's Sample rate and Picture size

Jeyapal, Karthick kjeyapal at akamai.com
Tue Apr 24 09:38:41 EEST 2018

>From: "Ronald S. Bultje" <rsbultje at gmail.com>
>On Mon, Apr 23, 2018 at 2:10 AM, Karthick J <mailto:kjeyapal at akamai.com> wrote:
>>-    int level = par->level == FF_LEVEL_UNKNOWN ? 0 : par->level;
>>+    int level = par->level == FF_LEVEL_UNKNOWN ?
>+        get_vp9_level(par, frame_rate) : par->level;
>After this change, how will I create a file without a level?
For best player side behavior, you shouldn't create a file without a level. Theoretically level is meant to signal the player, a maximum decoder complexity required to play the encoded content. Ideally the player should compare the stream's level with its maximum VP9 level supported by the device to decide if the device is capable of playing the current VP9 stream. 
If we set this to 0, based on the player implementation it will either take it as invalid or will assume the stream has a level lower than the device's maximum supported level. 
Hence setting the level more accurately is always better than setting it as 0, for best player side experience. Also, as James mentioned 0 is not mentioned in the spec as "unknown" or "unspecified".
>This patch blurs the line between "unknown", "unspecified", "non-existent" and "autodetect". Linguistically, each of these mean something fundamentally different. I think it's acceptable to not have too many ways of specifying something which in practice comes down to >"nope", but you're removing the "nope" altogether, which isn't quite right either.


More information about the ffmpeg-devel mailing list