| 1084 | | p_peek += 2; /* 00 00 */ |
|---|
| 1085 | | p_peek += 4; /* .ra4 or .ra5 */ |
|---|
| 1086 | | p_peek += 4; /* data size */ |
|---|
| 1087 | | p_peek += 2; /* version (4 or 5) */ |
|---|
| 1088 | | i_header_size = GetDWBE( p_peek ); p_peek += 4; /* header size */ |
|---|
| 1089 | | i_flavor = GetWBE( p_peek ); p_peek += 2; /* codec flavor */ |
|---|
| 1090 | | i_coded_frame_size = GetDWBE( p_peek ); p_peek += 4; /* coded frame size*/ |
|---|
| 1091 | | p_peek += 4; /* ?? */ |
|---|
| 1092 | | p_peek += 4; /* ?? */ |
|---|
| 1093 | | p_peek += 4; /* ?? */ |
|---|
| 1094 | | i_subpacket_h = GetWBE( p_peek ); p_peek += 2; /* 1 */ |
|---|
| 1095 | | i_frame_size = GetWBE( p_peek ); p_peek += 2; /* frame size */ |
|---|
| 1096 | | i_subpacket_size = GetWBE( p_peek ); p_peek += 2; /* subpacket_size */ |
|---|
| 1097 | | p_peek += 2; /* ?? */ |
|---|
| 1098 | | |
|---|
| 1099 | | if( i_version == 5 ) p_peek += 6; /* 0, srate, 0 */ |
|---|
| 1100 | | |
|---|
| 1101 | | fmt.audio.i_rate = GetWBE( p_peek ); p_peek += 2; /* Sample Rate */ |
|---|
| 1102 | | p_peek += 2; /* ?? */ |
|---|
| 1103 | | fmt.audio.i_bitspersample = GetWBE( p_peek ); p_peek += 2; /* Sure?*/ |
|---|
| 1104 | | fmt.audio.i_channels = GetWBE( p_peek ); p_peek += 2; /* Channels */ |
|---|
| 1105 | | fmt.audio.i_blockalign = i_frame_size; |
|---|
| 1106 | | |
|---|
| 1107 | | if( i_version == 5 ) |
|---|
| 1108 | | { |
|---|
| 1109 | | p_peek += 4; /* genr */ |
|---|
| 1110 | | memcpy( (char *)&fmt.i_codec, p_peek, 4 ); p_peek += 4; |
|---|
| 1111 | | } |
|---|
| 1112 | | else |
|---|
| 1113 | | { |
|---|
| 1114 | | p_peek += p_peek[0] + 1; /* descr 1 */ |
|---|
| 1115 | | memcpy( (char *)&fmt.i_codec, p_peek + 1, 4 ); /* descr 2 */ |
|---|
| 1116 | | p_peek += p_peek[0] + 1; |
|---|
| 1117 | | } |
|---|
| 1118 | | |
|---|
| 1119 | | msg_Dbg( p_demux, " - audio codec=%4.4s channels=%d rate=%dHz", |
|---|
| | 1084 | p_peek += 2; /* 00 00 */ |
|---|
| | 1085 | p_peek += 4; /* .ra4 or .ra5 */ |
|---|
| | 1086 | p_peek += 4; /* data size */ |
|---|
| | 1087 | p_peek += 2; /* version (4 or 5) */ |
|---|
| | 1088 | i_header_size = GetDWBE( p_peek ); p_peek += 4; /* header size */ |
|---|
| | 1089 | i_flavor = GetWBE( p_peek ); p_peek += 2; /* codec flavor */ |
|---|
| | 1090 | i_coded_frame_size = GetDWBE( p_peek ); p_peek += 4; /* coded frame size*/ |
|---|
| | 1091 | p_peek += 4; /* ?? */ |
|---|
| | 1092 | p_peek += 4; /* ?? */ |
|---|
| | 1093 | p_peek += 4; /* ?? */ |
|---|
| | 1094 | i_subpacket_h = GetWBE( p_peek ); p_peek += 2; /* 1 */ |
|---|
| | 1095 | i_frame_size = GetWBE( p_peek ); p_peek += 2; /* frame size */ |
|---|
| | 1096 | i_subpacket_size = GetWBE( p_peek ); p_peek += 2; /* subpacket_size */ |
|---|
| | 1097 | p_peek += 2; /* ?? */ |
|---|
| | 1098 | |
|---|
| | 1099 | if( i_version == 5 ) p_peek += 6; /* 0, srate, 0 */ |
|---|
| | 1100 | |
|---|
| | 1101 | fmt.audio.i_rate = GetWBE( p_peek ); p_peek += 2; /* Sample Rate */ |
|---|
| | 1102 | p_peek += 2; /* ?? */ |
|---|
| | 1103 | fmt.audio.i_bitspersample = GetWBE( p_peek ); p_peek += 2;/* Sure?*/ |
|---|
| | 1104 | fmt.audio.i_channels = GetWBE( p_peek ); p_peek += 2; /* Channels */ |
|---|
| | 1105 | fmt.audio.i_blockalign = i_frame_size; |
|---|
| | 1106 | |
|---|
| | 1107 | if( i_version == 5 ) |
|---|
| | 1108 | { |
|---|
| | 1109 | p_peek += 4; /* genr */ |
|---|
| | 1110 | memcpy( (char *)&fmt.i_codec, p_peek, 4 ); p_peek += 4; |
|---|
| | 1111 | } |
|---|
| | 1112 | else |
|---|
| | 1113 | { |
|---|
| | 1114 | p_peek += p_peek[0] + 1; /* descr 1 */ |
|---|
| | 1115 | memcpy( (char *)&fmt.i_codec, p_peek + 1, 4 ); /* descr 2 */ |
|---|
| | 1116 | p_peek += p_peek[0] + 1; |
|---|
| | 1117 | } |
|---|
| | 1118 | |
|---|
| | 1119 | msg_Dbg( p_demux, " - audio codec=%4.4s channels=%d rate=%dHz", |
|---|