Previous 199869 Revisions Next

r26464 Sunday 1st December, 2013 at 12:46:18 UTC by hap
return false on bad header
[src/emu/sound]mpeg_audio.c mpeg_audio.h

trunk/src/emu/sound/mpeg_audio.c
r26463r26464
9292      abort();
9393   case 4:
9494      try {
95         read_header_amm(variant == 2);
95         if (!read_header_amm(variant == 2))
96            return false;
9697         read_data_mpeg2();
9798         decode_mpeg2(output, output_samples);
9899      } catch(limit_hit) {
r26463r26464
110111   return true;
111112}
112113
113void mpeg_audio::read_header_amm(bool layer25)
114bool mpeg_audio::read_header_amm(bool layer25)
114115{
115116   gb(1); // unused
116117   int full_packets_count = gb(4); // max 12
r26463r26464
122123   int stereo_mode_ext = gb(2);
123124   param_index = gb(3);
124125   gb(1); // must be zero
126   
127   if (last_frame_number == 0)
128      return false;
125129
126130   channel_count = stereo_mode != 3 ? 2 : 1;
127131
r26463r26464
131135      joint_bands = joint_band_counts[stereo_mode_ext];
132136   if(joint_bands > total_bands )
133137      joint_bands = total_bands;
138   
139   return true;
134140}
135141
136142void mpeg_audio::read_header_mpeg2(bool layer25)
trunk/src/emu/sound/mpeg_audio.h
r26463r26464
9393
9494   int current_pos, current_limit;
9595
96   void read_header_amm(bool layer25);
96   bool read_header_amm(bool layer25);
9797   void read_header_mpeg2(bool layer25);
9898   void read_data_mpeg2();
9999   void decode_mpeg2(short *output, int &output_samples);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team