comparison ac3_parser.c @ 7016:b514562e0aef libavcodec

set default mix levels regardless of bitstream id
author jbr
date Sat, 07 Jun 2008 22:29:45 +0000
parents 4156c54aedba
children 885cad616170
comparison
equal deleted inserted replaced
7015:d9ac2c5a5d89 7016:b514562e0aef
60 hdr->bitstream_id = show_bits_long(gbc, 29) & 0x1F; 60 hdr->bitstream_id = show_bits_long(gbc, 29) & 0x1F;
61 if(hdr->bitstream_id > 16) 61 if(hdr->bitstream_id > 16)
62 return AC3_PARSE_ERROR_BSID; 62 return AC3_PARSE_ERROR_BSID;
63 63
64 hdr->num_blocks = 6; 64 hdr->num_blocks = 6;
65
66 /* set default mix levels */
67 hdr->center_mix_level = 3; // -4.5dB
68 hdr->surround_mix_level = 4; // -6.0dB
65 69
66 if(hdr->bitstream_id <= 10) { 70 if(hdr->bitstream_id <= 10) {
67 /* Normal AC-3 */ 71 /* Normal AC-3 */
68 hdr->crc1 = get_bits(gbc, 16); 72 hdr->crc1 = get_bits(gbc, 16);
69 hdr->sr_code = get_bits(gbc, 2); 73 hdr->sr_code = get_bits(gbc, 2);
76 80
77 skip_bits(gbc, 5); // skip bsid, already got it 81 skip_bits(gbc, 5); // skip bsid, already got it
78 82
79 skip_bits(gbc, 3); // skip bitstream mode 83 skip_bits(gbc, 3); // skip bitstream mode
80 hdr->channel_mode = get_bits(gbc, 3); 84 hdr->channel_mode = get_bits(gbc, 3);
81
82 /* set default mix levels */
83 hdr->center_mix_level = 3; // -4.5dB
84 hdr->surround_mix_level = 4; // -6.0dB
85 85
86 if(hdr->channel_mode == AC3_CHMODE_STEREO) { 86 if(hdr->channel_mode == AC3_CHMODE_STEREO) {
87 skip_bits(gbc, 2); // skip dsurmod 87 skip_bits(gbc, 2); // skip dsurmod
88 } else { 88 } else {
89 if((hdr->channel_mode & 1) && hdr->channel_mode != AC3_CHMODE_MONO) 89 if((hdr->channel_mode & 1) && hdr->channel_mode != AC3_CHMODE_MONO)