avcodec/h264_parser: Set AVCodecContext.framerate

Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris>
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
Nicolas Gaullier 2021-09-10 11:34:08 +02:00 committed by James Almer
parent 447cf53774
commit fad459b5a6
3 changed files with 139 additions and 128 deletions

View File

@ -247,6 +247,7 @@ static inline int parse_nal_units(AVCodecParserContext *s,
const uint8_t * const buf, int buf_size)
{
H264ParseContext *p = s->priv_data;
H264Context *h = avctx->priv_data;
H2645RBSP rbsp = { NULL };
H2645NAL nal = { NULL };
int buf_index, next_avc;
@ -264,6 +265,7 @@ static inline int parse_nal_units(AVCodecParserContext *s,
ff_h264_sei_uninit(&p->sei);
p->sei.frame_packing.arrangement_cancel_flag = -1;
p->sei.unregistered.x264_build = -1;
if (!buf_size)
return 0;
@ -551,6 +553,15 @@ static inline int parse_nal_units(AVCodecParserContext *s,
p->last_picture_structure = s->picture_structure;
p->last_frame_num = p->poc.frame_num;
}
if (h && sps->timing_info_present_flag) {
int64_t den = sps->time_scale;
if (p->sei.unregistered.x264_build >= 0)
h->x264_build = p->sei.unregistered.x264_build;
if (h->x264_build < 44U)
den *= 2;
av_reduce(&avctx->framerate.den, &avctx->framerate.num,
sps->num_units_in_tick * avctx->ticks_per_frame, den, 1 << 30);
}
av_freep(&rbsp.rbsp_buffer);
return 0; /* no need to evaluate the rest */

View File

@ -4,12 +4,12 @@
#dimensions 0: 640x480
#sar 0: 0/1
0, 0, 0, 1, 460800, 0x7731dd2f
0, 2, 2, 1, 460800, 0x944b8c64
0, 3, 3, 1, 460800, 0xbe833041
0, 4, 4, 1, 460800, 0xbe95d96a
0, 5, 5, 1, 460800, 0xfe7ea5e6
0, 6, 6, 1, 460800, 0x381743c7
0, 7, 7, 1, 460800, 0x63fcc2e9
0, 8, 8, 1, 460800, 0x79574960
0, 9, 9, 1, 460800, 0xdab9e18a
0, 10, 10, 1, 460800, 0xd88e8fe8
0, 1, 1, 1, 460800, 0x944b8c64
0, 2, 2, 1, 460800, 0xbe833041
0, 3, 3, 1, 460800, 0xbe95d96a
0, 4, 4, 1, 460800, 0xfe7ea5e6
0, 5, 5, 1, 460800, 0x381743c7
0, 6, 6, 1, 460800, 0x63fcc2e9
0, 7, 7, 1, 460800, 0x79574960
0, 8, 8, 1, 460800, 0xdab9e18a
0, 9, 9, 1, 460800, 0xd88e8fe8

View File

@ -6,122 +6,122 @@
#codec_id 0: h264
#dimensions 0: 1280x720
#sar 0: 3/4
0, 0, 0, 48000, 37126, 0xb020184c
0, 48000, 48000, 40040, 6920, 0x8512361a, F=0x0
0, 88040, 88040, 40040, 7550, 0x1bc56ed4, F=0x0
0, 128081, 128081, 40040, 8752, 0xb8c6f0a1, F=0x0
0, 168121, 168121, 40040, 13022, 0xe36b6255, F=0x0
0, 208162, 208162, 40040, 12982, 0x7c993297, F=0x0
0, 248202, 248202, 40040, 13982, 0x24fe5e0f, F=0x0
0, 288242, 288242, 40040, 13958, 0x9a22230d, F=0x0
0, 328283, 328283, 40040, 15346, 0xf0f1a59c, F=0x0
0, 368323, 368323, 40040, 21016, 0x8d061e7f, F=0x0
0, 408364, 408364, 40040, 14786, 0x7b1e889d, F=0x0
0, 448404, 448404, 40040, 11917, 0xf7742a9d, F=0x0
0, 488444, 488444, 40040, 11234, 0x83cbd9fd, F=0x0
0, 528485, 528485, 40040, 17616, 0xfdf95104, F=0x0
0, 568525, 568525, 40040, 10689, 0x9633d32b, F=0x0
0, 608566, 608566, 40040, 45291, 0x543c2cf6
0, 648606, 648606, 40040, 20837, 0x051abfab, F=0x0
0, 688646, 688646, 40040, 21418, 0xe2a59d70, F=0x0
0, 728687, 728687, 40040, 15643, 0x15cf2cec, F=0x0
0, 768727, 768727, 40040, 11956, 0x5aef382e, F=0x0
0, 808768, 808768, 40040, 15393, 0x951dd757, F=0x0
0, 848808, 848808, 40040, 14839, 0x2d33151c, F=0x0
0, 888848, 888848, 40040, 14580, 0x2a895aa6, F=0x0
0, 928889, 928889, 40040, 17571, 0xb3a115f0, F=0x0
0, 968929, 968929, 40040, 15621, 0x2cc6577d, F=0x0
0, 1008970, 1008970, 40040, 13653, 0xb6a3ac6e, F=0x0
0, 1049010, 1049010, 40040, 16274, 0xe8b9b09d, F=0x0
0, 1089050, 1089050, 40040, 13130, 0xcbb6bb8e, F=0x0
0, 1129091, 1129091, 40040, 16180, 0x5d188a7a, F=0x0
0, 1169131, 1169131, 40040, 14961, 0x9ff2f463, F=0x0
0, 1209172, 1209172, 40040, 54296, 0xe6ec30ed
0, 1249212, 1249212, 40040, 11500, 0x8c4852c9, F=0x0
0, 1289252, 1289252, 40040, 12065, 0xfb7954c3, F=0x0
0, 1329293, 1329293, 40040, 12532, 0xf0a935d3, F=0x0
0, 1369333, 1369333, 40040, 16284, 0xc5c18561, F=0x0
0, 1409374, 1409374, 40040, 17657, 0x08ce58cc, F=0x0
0, 1449414, 1449414, 40040, 21336, 0xd0965202, F=0x0
0, 1489454, 1489454, 40040, 18549, 0x9e9a42ef, F=0x0
0, 1529495, 1529495, 40040, 14351, 0xa864d2be, F=0x0
0, 1569535, 1569535, 40040, 15205, 0x5bd7b98e, F=0x0
0, 1609576, 1609576, 40040, 18040, 0x287af301, F=0x0
0, 1649616, 1649616, 40040, 15917, 0x2db52580, F=0x0
0, 1689656, 1689656, 40040, 13250, 0xfed0deb8, F=0x0
0, 1729697, 1729697, 40040, 13360, 0xbf92d476, F=0x0
0, 1769737, 1769737, 40040, 11749, 0x3041eaf1, F=0x0
0, 1809778, 1809778, 40040, 23997, 0xdbe6d5c4
0, 1849818, 1849818, 40040, 16065, 0xe8f715b7, F=0x0
0, 1889858, 1889858, 40040, 16441, 0x0a4e060f, F=0x0
0, 1929899, 1929899, 40040, 17395, 0xa8edecc2, F=0x0
0, 1969939, 1969939, 40040, 22295, 0xd5173c68, F=0x0
0, 2009980, 2009980, 40040, 22778, 0xf5e522ce, F=0x0
0, 2050020, 2050020, 40040, 20590, 0x2fd6b2ca, F=0x0
0, 2090060, 2090060, 40040, 19937, 0xe109dda5, F=0x0
0, 2130101, 2130101, 40040, 23833, 0xd12691cb, F=0x0
0, 2170141, 2170141, 40040, 17969, 0x9baad67a, F=0x0
0, 2210182, 2210182, 40040, 16645, 0x53fb3099, F=0x0
0, 2250222, 2250222, 40040, 15307, 0xbc5bac8d, F=0x0
0, 2290262, 2290262, 40040, 13748, 0xed26aeb4, F=0x0
0, 2330303, 2330303, 40040, 15092, 0x3c983538, F=0x0
0, 2370343, 2370343, 40040, 14636, 0x9b278a6c, F=0x0
0, 2410384, 2410384, 40040, 29134, 0xf784be18
0, 2450424, 2450424, 40040, 10232, 0x5408e15b, F=0x0
0, 2490464, 2490464, 40040, 9769, 0xc93cb7f9, F=0x0
0, 2530505, 2530505, 40040, 14454, 0x45230dbe, F=0x0
0, 2570545, 2570545, 40040, 14481, 0x4e111562, F=0x0
0, 2610586, 2610586, 40040, 13439, 0x0e096eeb, F=0x0
0, 2650626, 2650626, 40040, 13543, 0xc24569d9, F=0x0
0, 2690666, 2690666, 40040, 16012, 0x81543332, F=0x0
0, 2730707, 2730707, 40040, 15769, 0x2ddfa189, F=0x0
0, 2770747, 2770747, 40040, 14208, 0x1379add2, F=0x0
0, 2810788, 2810788, 40040, 11479, 0xdfc14b55, F=0x0
0, 2850828, 2850828, 40040, 11130, 0x0ab5959b, F=0x0
0, 2890868, 2890868, 40040, 14801, 0x40bae016, F=0x0
0, 2930909, 2930909, 40040, 17303, 0x9ce1fd31, F=0x0
0, 2970949, 2970949, 40040, 17678, 0x9bd66141, F=0x0
0, 3010990, 3010990, 40040, 48672, 0x3215ce46
0, 3051030, 3051030, 40040, 11894, 0x12e1fece, F=0x0
0, 3091070, 3091070, 40040, 16514, 0xc57aed05, F=0x0
0, 3131111, 3131111, 40040, 13044, 0x61914fa0, F=0x0
0, 3171151, 3171151, 40040, 16155, 0xb46c958a, F=0x0
0, 3211192, 3211192, 40040, 12950, 0xa676f605, F=0x0
0, 3251232, 3251232, 40040, 17870, 0x7a5aa03a, F=0x0
0, 3291272, 3291272, 40040, 13192, 0x3c9e9d99, F=0x0
0, 3331313, 3331313, 40040, 25559, 0x93e0becb, F=0x0
0, 3371353, 3371353, 40040, 14695, 0x19ace95a, F=0x0
0, 3411394, 3411394, 40040, 15484, 0x6e3bd0d2, F=0x0
0, 3451434, 3451434, 40040, 17096, 0x2fd93b48, F=0x0
0, 3491474, 3491474, 40040, 12208, 0x81a587c0, F=0x0
0, 3531515, 3531515, 40040, 14709, 0x5dffbe04, F=0x0
0, 3571555, 3571555, 40040, 14390, 0xbfd1e041, F=0x0
0, 3611596, 3611596, 40040, 37236, 0xe7f924b1
0, 3651636, 3651636, 40040, 14056, 0x24714c7c, F=0x0
0, 3691676, 3691676, 40040, 19438, 0x0c50dcd5, F=0x0
0, 3731717, 3731717, 40040, 21728, 0x7eea4a11, F=0x0
0, 3771757, 3771757, 40040, 17966, 0xac7ac988, F=0x0
0, 3811798, 3811798, 40040, 14868, 0x0eecb1be, F=0x0
0, 3851838, 3851838, 40040, 15608, 0x1449377e, F=0x0
0, 3891878, 3891878, 40040, 12484, 0xc9881139, F=0x0
0, 3931919, 3931919, 40040, 18226, 0xdcda8dfa, F=0x0
0, 3971959, 3971959, 40040, 19199, 0xe7ea4c92, F=0x0
0, 4012000, 4012000, 40040, 19042, 0xa5ade66f, F=0x0
0, 4052040, 4052040, 40040, 15662, 0x19ac319a, F=0x0
0, 4092080, 4092080, 40040, 16878, 0x98efbae2, F=0x0
0, 4132121, 4132121, 40040, 14685, 0x1bf78d65, F=0x0
0, 4172161, 4172161, 40040, 13127, 0x0b91881d, F=0x0
0, 4212202, 4212202, 40040, 29390, 0xf6a5ed6b
0, 4252242, 4252242, 40040, 12576, 0xe9845ded, F=0x0
0, 4292282, 4292282, 40040, 12599, 0x96a79ab8, F=0x0
0, 4332323, 4332323, 40040, 16134, 0xb4c36d3f, F=0x0
0, 4372363, 4372363, 40040, 15630, 0x33f65a2e, F=0x0
0, 4412404, 4412404, 40040, 13087, 0xb4b3886d, F=0x0
0, 4452444, 4452444, 40040, 10728, 0xbffd10fa, F=0x0
0, 4492484, 4492484, 40040, 10353, 0xccfe3506, F=0x0
0, 4532525, 4532525, 40040, 9534, 0xd42083f5, F=0x0
0, 4572565, 4572565, 40040, 12641, 0x93e8abbd, F=0x0
0, 4612606, 4612606, 40040, 11198, 0x6a9de1fb, F=0x0
0, 4652646, 4652646, 40040, 15572, 0xd6cb6c4b, F=0x0
0, 4692686, 4692686, 40040, 12072, 0x8928b77f, F=0x0
0, 4732727, 4732727, 40040, 19172, 0x549b6b87, F=0x0
0, 0, 0, 40040, 37126, 0xb020184c
0, 40040, 40040, 40040, 6920, 0x8512361a, F=0x0
0, 80081, 80081, 40040, 7550, 0x1bc56ed4, F=0x0
0, 120121, 120121, 40040, 8752, 0xb8c6f0a1, F=0x0
0, 160162, 160162, 40040, 13022, 0xe36b6255, F=0x0
0, 200202, 200202, 40040, 12982, 0x7c993297, F=0x0
0, 240242, 240242, 40040, 13982, 0x24fe5e0f, F=0x0
0, 280283, 280283, 40040, 13958, 0x9a22230d, F=0x0
0, 320323, 320323, 40040, 15346, 0xf0f1a59c, F=0x0
0, 360364, 360364, 40040, 21016, 0x8d061e7f, F=0x0
0, 400404, 400404, 40040, 14786, 0x7b1e889d, F=0x0
0, 440444, 440444, 40040, 11917, 0xf7742a9d, F=0x0
0, 480485, 480485, 40040, 11234, 0x83cbd9fd, F=0x0
0, 520525, 520525, 40040, 17616, 0xfdf95104, F=0x0
0, 560566, 560566, 40040, 10689, 0x9633d32b, F=0x0
0, 600606, 600606, 40040, 45291, 0x543c2cf6
0, 640646, 640646, 40040, 20837, 0x051abfab, F=0x0
0, 680687, 680687, 40040, 21418, 0xe2a59d70, F=0x0
0, 720727, 720727, 40040, 15643, 0x15cf2cec, F=0x0
0, 760768, 760768, 40040, 11956, 0x5aef382e, F=0x0
0, 800808, 800808, 40040, 15393, 0x951dd757, F=0x0
0, 840848, 840848, 40040, 14839, 0x2d33151c, F=0x0
0, 880889, 880889, 40040, 14580, 0x2a895aa6, F=0x0
0, 920929, 920929, 40040, 17571, 0xb3a115f0, F=0x0
0, 960970, 960970, 40040, 15621, 0x2cc6577d, F=0x0
0, 1001010, 1001010, 40040, 13653, 0xb6a3ac6e, F=0x0
0, 1041050, 1041050, 40040, 16274, 0xe8b9b09d, F=0x0
0, 1081091, 1081091, 40040, 13130, 0xcbb6bb8e, F=0x0
0, 1121131, 1121131, 40040, 16180, 0x5d188a7a, F=0x0
0, 1161172, 1161172, 40040, 14961, 0x9ff2f463, F=0x0
0, 1201212, 1201212, 40040, 54296, 0xe6ec30ed
0, 1241252, 1241252, 40040, 11500, 0x8c4852c9, F=0x0
0, 1281293, 1281293, 40040, 12065, 0xfb7954c3, F=0x0
0, 1321333, 1321333, 40040, 12532, 0xf0a935d3, F=0x0
0, 1361374, 1361374, 40040, 16284, 0xc5c18561, F=0x0
0, 1401414, 1401414, 40040, 17657, 0x08ce58cc, F=0x0
0, 1441454, 1441454, 40040, 21336, 0xd0965202, F=0x0
0, 1481495, 1481495, 40040, 18549, 0x9e9a42ef, F=0x0
0, 1521535, 1521535, 40040, 14351, 0xa864d2be, F=0x0
0, 1561576, 1561576, 40040, 15205, 0x5bd7b98e, F=0x0
0, 1601616, 1601616, 40040, 18040, 0x287af301, F=0x0
0, 1641656, 1641656, 40040, 15917, 0x2db52580, F=0x0
0, 1681697, 1681697, 40040, 13250, 0xfed0deb8, F=0x0
0, 1721737, 1721737, 40040, 13360, 0xbf92d476, F=0x0
0, 1761778, 1761778, 40040, 11749, 0x3041eaf1, F=0x0
0, 1801818, 1801818, 40040, 23997, 0xdbe6d5c4
0, 1841858, 1841858, 40040, 16065, 0xe8f715b7, F=0x0
0, 1881899, 1881899, 40040, 16441, 0x0a4e060f, F=0x0
0, 1921939, 1921939, 40040, 17395, 0xa8edecc2, F=0x0
0, 1961980, 1961980, 40040, 22295, 0xd5173c68, F=0x0
0, 2002020, 2002020, 40040, 22778, 0xf5e522ce, F=0x0
0, 2042060, 2042060, 40040, 20590, 0x2fd6b2ca, F=0x0
0, 2082101, 2082101, 40040, 19937, 0xe109dda5, F=0x0
0, 2122141, 2122141, 40040, 23833, 0xd12691cb, F=0x0
0, 2162182, 2162182, 40040, 17969, 0x9baad67a, F=0x0
0, 2202222, 2202222, 40040, 16645, 0x53fb3099, F=0x0
0, 2242262, 2242262, 40040, 15307, 0xbc5bac8d, F=0x0
0, 2282303, 2282303, 40040, 13748, 0xed26aeb4, F=0x0
0, 2322343, 2322343, 40040, 15092, 0x3c983538, F=0x0
0, 2362384, 2362384, 40040, 14636, 0x9b278a6c, F=0x0
0, 2402424, 2402424, 40040, 29134, 0xf784be18
0, 2442464, 2442464, 40040, 10232, 0x5408e15b, F=0x0
0, 2482505, 2482505, 40040, 9769, 0xc93cb7f9, F=0x0
0, 2522545, 2522545, 40040, 14454, 0x45230dbe, F=0x0
0, 2562586, 2562586, 40040, 14481, 0x4e111562, F=0x0
0, 2602626, 2602626, 40040, 13439, 0x0e096eeb, F=0x0
0, 2642666, 2642666, 40040, 13543, 0xc24569d9, F=0x0
0, 2682707, 2682707, 40040, 16012, 0x81543332, F=0x0
0, 2722747, 2722747, 40040, 15769, 0x2ddfa189, F=0x0
0, 2762788, 2762788, 40040, 14208, 0x1379add2, F=0x0
0, 2802828, 2802828, 40040, 11479, 0xdfc14b55, F=0x0
0, 2842868, 2842868, 40040, 11130, 0x0ab5959b, F=0x0
0, 2882909, 2882909, 40040, 14801, 0x40bae016, F=0x0
0, 2922949, 2922949, 40040, 17303, 0x9ce1fd31, F=0x0
0, 2962990, 2962990, 40040, 17678, 0x9bd66141, F=0x0
0, 3003030, 3003030, 40040, 48672, 0x3215ce46
0, 3043070, 3043070, 40040, 11894, 0x12e1fece, F=0x0
0, 3083111, 3083111, 40040, 16514, 0xc57aed05, F=0x0
0, 3123151, 3123151, 40040, 13044, 0x61914fa0, F=0x0
0, 3163192, 3163192, 40040, 16155, 0xb46c958a, F=0x0
0, 3203232, 3203232, 40040, 12950, 0xa676f605, F=0x0
0, 3243272, 3243272, 40040, 17870, 0x7a5aa03a, F=0x0
0, 3283313, 3283313, 40040, 13192, 0x3c9e9d99, F=0x0
0, 3323353, 3323353, 40040, 25559, 0x93e0becb, F=0x0
0, 3363394, 3363394, 40040, 14695, 0x19ace95a, F=0x0
0, 3403434, 3403434, 40040, 15484, 0x6e3bd0d2, F=0x0
0, 3443474, 3443474, 40040, 17096, 0x2fd93b48, F=0x0
0, 3483515, 3483515, 40040, 12208, 0x81a587c0, F=0x0
0, 3523555, 3523555, 40040, 14709, 0x5dffbe04, F=0x0
0, 3563596, 3563596, 40040, 14390, 0xbfd1e041, F=0x0
0, 3603636, 3603636, 40040, 37236, 0xe7f924b1
0, 3643676, 3643676, 40040, 14056, 0x24714c7c, F=0x0
0, 3683717, 3683717, 40040, 19438, 0x0c50dcd5, F=0x0
0, 3723757, 3723757, 40040, 21728, 0x7eea4a11, F=0x0
0, 3763798, 3763798, 40040, 17966, 0xac7ac988, F=0x0
0, 3803838, 3803838, 40040, 14868, 0x0eecb1be, F=0x0
0, 3843878, 3843878, 40040, 15608, 0x1449377e, F=0x0
0, 3883919, 3883919, 40040, 12484, 0xc9881139, F=0x0
0, 3923959, 3923959, 40040, 18226, 0xdcda8dfa, F=0x0
0, 3964000, 3964000, 40040, 19199, 0xe7ea4c92, F=0x0
0, 4004040, 4004040, 40040, 19042, 0xa5ade66f, F=0x0
0, 4044080, 4044080, 40040, 15662, 0x19ac319a, F=0x0
0, 4084121, 4084121, 40040, 16878, 0x98efbae2, F=0x0
0, 4124161, 4124161, 40040, 14685, 0x1bf78d65, F=0x0
0, 4164202, 4164202, 40040, 13127, 0x0b91881d, F=0x0
0, 4204242, 4204242, 40040, 29390, 0xf6a5ed6b
0, 4244282, 4244282, 40040, 12576, 0xe9845ded, F=0x0
0, 4284323, 4284323, 40040, 12599, 0x96a79ab8, F=0x0
0, 4324363, 4324363, 40040, 16134, 0xb4c36d3f, F=0x0
0, 4364404, 4364404, 40040, 15630, 0x33f65a2e, F=0x0
0, 4404444, 4404444, 40040, 13087, 0xb4b3886d, F=0x0
0, 4444484, 4444484, 40040, 10728, 0xbffd10fa, F=0x0
0, 4484525, 4484525, 40040, 10353, 0xccfe3506, F=0x0
0, 4524565, 4524565, 40040, 9534, 0xd42083f5, F=0x0
0, 4564606, 4564606, 40040, 12641, 0x93e8abbd, F=0x0
0, 4604646, 4604646, 40040, 11198, 0x6a9de1fb, F=0x0
0, 4644686, 4644686, 40040, 15572, 0xd6cb6c4b, F=0x0
0, 4684727, 4684727, 40040, 12072, 0x8928b77f, F=0x0
0, 4724767, 4724767, 40040, 19172, 0x549b6b87, F=0x0