Changeset 380 for dsfilters/demux_mpc/src/mpc_file.cpp
- Timestamp:
- 01/05/08 20:49:27 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
dsfilters/demux_mpc/src/mpc_file.cpp
r379 r380 8 8 #include "stdafx.h" 9 9 #include <math.h> 10 11 #define OLD_GAIN_REF 64.82 10 12 11 13 … … 164 166 165 167 b.NeedBits32(); 166 gain_title_db = b.SGetBits(16) / 100.0; // title gain168 gain_title_db = ((int16)b.SGetBits(16)) / 100.0; // title gain 167 169 int title_peak = b.UGetBits(16); 168 if (title_peak != 0) { 169 gain_title_peak_db = 20 * log10f((float)title_peak); // title peak170 if (title_peak != 0) { 171 gain_title_peak_db = (title_peak / 32767.0); 170 172 } else { 171 173 gain_title_peak_db = 0; … … 173 175 174 176 b.NeedBits32(); 175 gain_album_db = b.SGetBits(16) / 100.0; // album gain177 gain_album_db = ((int16)b.SGetBits(16)) / 100.0; // album gain 176 178 int album_peak = b.UGetBits(16); 177 179 if (album_peak != 0) { 178 gain_album_peak_db = 20 * log10f((float)album_peak); // album peak180 gain_album_peak_db = (album_peak / 32767.0); 179 181 } else { 180 182 gain_album_peak_db = 0; 181 183 } 182 184 183 #define OLD_GAIN_REF 64.82184 if (gain_title_db != 0) {185 gain_title_db = OLD_GAIN_REF - gain_title_db;186 }187 if (gain_album_db != 0) {188 gain_album_db = OLD_GAIN_REF - gain_album_db;189 }190 185 191 186 b.NeedBits32(); … … 300 295 int16 val; 301 296 b.NeedBits(); val = b.SGetBits(16); gain_title_db = val / 256.0; 302 b.NeedBits(); val = b. SGetBits(16); gain_title_peak_db = val / 256.0;297 b.NeedBits(); val = b.UGetBits(16); gain_title_peak_db = val; 303 298 b.NeedBits(); val = b.SGetBits(16); gain_album_db = val / 256.0; 304 b.NeedBits(); val = b.SGetBits(16); gain_album_peak_db = val / 256.0; 299 b.NeedBits(); val = b.UGetBits(16); gain_album_peak_db = val; 300 301 if (gain_title_db != 0) gain_title_db = OLD_GAIN_REF - gain_title_db; 302 if (gain_album_db != 0) gain_album_db = OLD_GAIN_REF - gain_album_db; 303 if (gain_title_peak_db != 0) { 304 gain_title_peak_db = pow((double)10.0, (double)(gain_title_peak_db / (20*256))) / (double)(1 << 15); 305 } 306 if (gain_album_peak_db != 0) { 307 gain_album_peak_db = pow((double)10.0, (double)(gain_album_peak_db / (20*256))) / (double)(1 << 15); 308 } 305 309 306 310 return 0; … … 480 484 481 485 int packet_num = seek_sample / (1152*audio_block_frames); 486 487 // we need to seek back a little to avoid artifacts 488 if (stream_version == 7) { 489 if (packet_num > 32) { 490 packet_num -= 32; 491 } else { 492 packet_num = 0; 493 } 494 } 495 482 496 int i = (packet_num >> (seek_pwr - block_pwr)); 483 497 if (i >= seek_table_size) { 484 498 i = seek_table_size-1; 485 499 } 500 486 501 487 502 // seek to position
Note: See TracChangeset
for help on using the changeset viewer.