|
|
|
@ -317,24 +317,30 @@ typedef struct h264_level_info_t
|
|
|
|
|
static pj_status_t init_h264_profile(const pj_str_t *profile,
|
|
|
|
|
pjmedia_vid_codec_h264_fmtp *fmtp)
|
|
|
|
|
{
|
|
|
|
|
// Taken from https://www.itu.int/rec/T-REC-H.264
|
|
|
|
|
// H.264 (08/21) Table A-1 – Level limits
|
|
|
|
|
const h264_level_info_t level_info[] =
|
|
|
|
|
{
|
|
|
|
|
{ 10, 1485, 99, 64 },
|
|
|
|
|
{ 9, 1485, 99, 128 }, /*< level 1b */
|
|
|
|
|
{ 11, 3000, 396, 192 },
|
|
|
|
|
{ 12, 6000, 396, 384 },
|
|
|
|
|
{ 13, 11880, 396, 768 },
|
|
|
|
|
{ 20, 11880, 396, 2000 },
|
|
|
|
|
{ 21, 19800, 792, 4000 },
|
|
|
|
|
{ 22, 20250, 1620, 4000 },
|
|
|
|
|
{ 30, 40500, 1620, 10000 },
|
|
|
|
|
{ 31, 108000, 3600, 14000 },
|
|
|
|
|
{ 32, 216000, 5120, 20000 },
|
|
|
|
|
{ 40, 245760, 8192, 20000 },
|
|
|
|
|
{ 41, 245760, 8192, 50000 },
|
|
|
|
|
{ 42, 522240, 8704, 50000 },
|
|
|
|
|
{ 50, 589824, 22080, 135000 },
|
|
|
|
|
{ 51, 983040, 36864, 240000 },
|
|
|
|
|
{ 10, 1485, 99, 64 },
|
|
|
|
|
{ 9, 1485, 99, 128 }, /*< level 1b */
|
|
|
|
|
{ 11, 3000, 396, 192 },
|
|
|
|
|
{ 12, 6000, 396, 384 },
|
|
|
|
|
{ 13, 11880, 396, 768 },
|
|
|
|
|
{ 20, 11880, 396, 2000 },
|
|
|
|
|
{ 21, 19800, 792, 4000 },
|
|
|
|
|
{ 22, 20250, 1620, 4000 },
|
|
|
|
|
{ 30, 40500, 1620, 10000 },
|
|
|
|
|
{ 31, 108000, 3600, 14000 },
|
|
|
|
|
{ 32, 216000, 5120, 20000 },
|
|
|
|
|
{ 40, 245760, 8192, 20000 },
|
|
|
|
|
{ 41, 245760, 8192, 50000 },
|
|
|
|
|
{ 42, 522240, 8704, 50000 },
|
|
|
|
|
{ 50, 589824, 22080, 135000 },
|
|
|
|
|
{ 51, 983040, 36864, 240000 },
|
|
|
|
|
{ 52, 2073600, 36864, 240000 },
|
|
|
|
|
{ 60, 4177920, 139264, 240000 },
|
|
|
|
|
{ 61, 8355840, 139264, 480000 },
|
|
|
|
|
{ 62, 16711680, 139264, 800000 },
|
|
|
|
|
};
|
|
|
|
|
unsigned i, tmp;
|
|
|
|
|
pj_str_t endst;
|
|
|
|
|