MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / mpeg_decode_sequence_extension

Function mpeg_decode_sequence_extension

libavcodec/mpeg12.c:1392–1426  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1390}
1391
1392static void mpeg_decode_sequence_extension(Mpeg1Context *s1)
1393{
1394 MpegEncContext *s= &s1->mpeg_enc_ctx;
1395 int horiz_size_ext, vert_size_ext;
1396 int bit_rate_ext;
1397
1398 skip_bits(&s->gb, 1); /* profile and level esc*/
1399 s->avctx->profile= get_bits(&s->gb, 3);
1400 s->avctx->level= get_bits(&s->gb, 4);
1401 s->progressive_sequence = get_bits1(&s->gb); /* progressive_sequence */
1402 s->chroma_format = get_bits(&s->gb, 2); /* chroma_format 1=420, 2=422, 3=444 */
1403 horiz_size_ext = get_bits(&s->gb, 2);
1404 vert_size_ext = get_bits(&s->gb, 2);
1405 s->width |= (horiz_size_ext << 12);
1406 s->height |= (vert_size_ext << 12);
1407 bit_rate_ext = get_bits(&s->gb, 12); /* XXX: handle it */
1408 s->bit_rate += (bit_rate_ext << 18) * 400;
1409 skip_bits1(&s->gb); /* marker */
1410 s->avctx->rc_buffer_size += get_bits(&s->gb, 8)*1024*16<<10;
1411
1412 s->low_delay = get_bits1(&s->gb);
1413 if(s->flags & CODEC_FLAG_LOW_DELAY) s->low_delay=1;
1414
1415 s1->frame_rate_ext.num = get_bits(&s->gb, 2)+1;
1416 s1->frame_rate_ext.den = get_bits(&s->gb, 5)+1;
1417
1418 dprintf(s->avctx, "sequence extension\n");
1419 s->codec_id= s->avctx->codec_id= CODEC_ID_MPEG2VIDEO;
1420 s->avctx->sub_id = 2; /* indicates MPEG-2 found */
1421
1422 if(s->avctx->debug & FF_DEBUG_PICT_INFO)
1423 av_log(s->avctx, AV_LOG_DEBUG, "profile: %d, level: %d vbv buffer: %d, bitrate:%d\n",
1424 s->avctx->profile, s->avctx->level, s->avctx->rc_buffer_size, s->bit_rate);
1425
1426}
1427
1428static void mpeg_decode_sequence_display_extension(Mpeg1Context *s1)
1429{

Callers 1

decode_chunksFunction · 0.85

Calls 5

skip_bitsFunction · 0.85
get_bitsFunction · 0.85
get_bits1Function · 0.85
skip_bits1Function · 0.85
av_logFunction · 0.85

Tested by

no test coverage detected