| 1390 | } |
| 1391 | |
| 1392 | static 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 | |
| 1428 | static void mpeg_decode_sequence_display_extension(Mpeg1Context *s1) |
| 1429 | { |
no test coverage detected