comparison wmaprodec.c @ 10129:0ffe220e1c80 libavcodec

reindent
author faust3
date Sat, 05 Sep 2009 10:18:23 +0000
parents da4c9cfcba71
children c2d08aedeeed
comparison
equal deleted inserted replaced
10128:da4c9cfcba71 10129:0ffe220e1c80
1447 */ 1447 */
1448 static int decode_packet(AVCodecContext *avctx, 1448 static int decode_packet(AVCodecContext *avctx,
1449 void *data, int *data_size, AVPacket* avpkt) 1449 void *data, int *data_size, AVPacket* avpkt)
1450 { 1450 {
1451 WMAProDecodeCtx *s = avctx->priv_data; 1451 WMAProDecodeCtx *s = avctx->priv_data;
1452 GetBitContext* gb = &s->pgb; 1452 GetBitContext* gb = &s->pgb;
1453 const uint8_t* buf = avpkt->data; 1453 const uint8_t* buf = avpkt->data;
1454 int buf_size = avpkt->size; 1454 int buf_size = avpkt->size;
1455 int more_frames = 1; 1455 int more_frames = 1;
1456 int num_bits_prev_frame; 1456 int num_bits_prev_frame;
1457 int packet_sequence_number; 1457 int packet_sequence_number;
1458 1458
1459 s->samples = data; 1459 s->samples = data;
1460 s->samples_start = data; 1460 s->samples_start = data;
1461 s->samples_end = (float*)((int8_t*)data + *data_size); 1461 s->samples_end = (float*)((int8_t*)data + *data_size);
1462 *data_size = 0; 1462 *data_size = 0;
1463 1463
1464 if (!s->output_buffer_full) { 1464 if (!s->output_buffer_full) {
1465 s->buf_bit_size = buf_size << 3; 1465 s->buf_bit_size = buf_size << 3;
1466 1466
1467 /** sanity check for the buffer length */ 1467 /** sanity check for the buffer length */
1468 if (buf_size < avctx->block_align) 1468 if (buf_size < avctx->block_align)
1469 return 0; 1469 return 0;
1470 1470
1471 buf_size = avctx->block_align; 1471 buf_size = avctx->block_align;
1472 1472
1473 /** parse packet header */ 1473 /** parse packet header */
1474 init_get_bits(gb, buf, s->buf_bit_size); 1474 init_get_bits(gb, buf, s->buf_bit_size);
1475 packet_sequence_number = get_bits(gb, 4); 1475 packet_sequence_number = get_bits(gb, 4);
1476 skip_bits(gb, 2); 1476 skip_bits(gb, 2);
1477 1477
1478 /** get number of bits that need to be added to the previous frame */ 1478 /** get number of bits that need to be added to the previous frame */
1479 num_bits_prev_frame = get_bits(gb, s->log2_frame_size); 1479 num_bits_prev_frame = get_bits(gb, s->log2_frame_size);
1480 dprintf(avctx, "packet[%d]: nbpf %x\n", avctx->frame_number, 1480 dprintf(avctx, "packet[%d]: nbpf %x\n", avctx->frame_number,
1481 num_bits_prev_frame); 1481 num_bits_prev_frame);
1482 1482
1483 /** check for packet loss */ 1483 /** check for packet loss */
1484 if (!s->packet_loss && 1484 if (!s->packet_loss &&
1485 ((s->packet_sequence_number + 1) & 0xF) != packet_sequence_number) { 1485 ((s->packet_sequence_number + 1) & 0xF) != packet_sequence_number) {
1486 s->packet_loss = 1; 1486 s->packet_loss = 1;
1487 av_log(avctx, AV_LOG_ERROR, "Packet loss detected! seq %x vs %x\n", 1487 av_log(avctx, AV_LOG_ERROR, "Packet loss detected! seq %x vs %x\n",
1488 s->packet_sequence_number, packet_sequence_number); 1488 s->packet_sequence_number, packet_sequence_number);
1489 } 1489 }
1490 s->packet_sequence_number = packet_sequence_number; 1490 s->packet_sequence_number = packet_sequence_number;
1491 1491
1492 if (num_bits_prev_frame > 0) { 1492 if (num_bits_prev_frame > 0) {
1493 /** append the previous frame data to the remaining data from the 1493 /** append the previous frame data to the remaining data from the
1494 previous packet to create a full frame */ 1494 previous packet to create a full frame */
1495 save_bits(s, gb, num_bits_prev_frame, 1); 1495 save_bits(s, gb, num_bits_prev_frame, 1);
1496 dprintf(avctx, "accumulated %x bits of frame data\n", 1496 dprintf(avctx, "accumulated %x bits of frame data\n",
1497 s->num_saved_bits - s->frame_offset); 1497 s->num_saved_bits - s->frame_offset);
1498 1498
1499 /** decode the cross packet frame if it is valid */ 1499 /** decode the cross packet frame if it is valid */
1500 if (!s->packet_loss) 1500 if (!s->packet_loss)
1501 decode_frame(s); 1501 decode_frame(s);
1502 } else if (s->num_saved_bits - s->frame_offset) { 1502 } else if (s->num_saved_bits - s->frame_offset) {
1503 dprintf(avctx, "ignoring %x previously saved bits\n", 1503 dprintf(avctx, "ignoring %x previously saved bits\n",
1504 s->num_saved_bits - s->frame_offset); 1504 s->num_saved_bits - s->frame_offset);
1505 } 1505 }
1506 1506
1507 s->packet_loss = 0; 1507 s->packet_loss = 0;
1508 1508
1509 } else { 1509 } else {
1510 /** continue decoding */ 1510 /** continue decoding */
1511 s->output_buffer_full = 0; 1511 s->output_buffer_full = 0;
1512 more_frames = decode_frame(s); 1512 more_frames = decode_frame(s);