| 964 | } |
| 965 | |
| 966 | inline bool |
| 967 | MadDecoder::RunScan(TagHandler &handler) noexcept |
| 968 | { |
| 969 | if (!DecodeFirstFrame(nullptr)) |
| 970 | return false; |
| 971 | |
| 972 | if (!total_time.IsNegative()) |
| 973 | handler.OnDuration(SongTime(total_time)); |
| 974 | |
| 975 | try { |
| 976 | handler.OnAudioFormat(CheckAudioFormat(frame.header.samplerate, |
| 977 | SampleFormat::S24_P32, |
| 978 | MAD_NCHANNELS(&frame.header))); |
| 979 | } catch (...) { |
| 980 | } |
| 981 | |
| 982 | return true; |
| 983 | } |
| 984 | |
| 985 | static bool |
| 986 | mad_decoder_scan_stream(InputStream &is, TagHandler &handler) |
no test coverage detected