From 86a02871fce3b115c8336e07cc9cd1d0e0c35d32 Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Fri, 6 Jul 2018 12:41:38 +0200 Subject: [PATCH] decoder/vorbis: call TagHandler::OnAudioFormat() --- src/decoder/plugins/VorbisDecoderPlugin.cxx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/decoder/plugins/VorbisDecoderPlugin.cxx b/src/decoder/plugins/VorbisDecoderPlugin.cxx index bd4de5a55..2a399ee26 100644 --- a/src/decoder/plugins/VorbisDecoderPlugin.cxx +++ b/src/decoder/plugins/VorbisDecoderPlugin.cxx @@ -82,6 +82,14 @@ public: bool Seek(uint64_t where_frame); + static AudioFormat CheckAudioFormat(const vorbis_info &vi) { + return ::CheckAudioFormat(vi.rate, sample_format, vi.channels); + } + + AudioFormat CheckAudioFormat() const { + return CheckAudioFormat(vi); + } + private: void InitVorbis() { vorbis_info_init(&vi); @@ -164,7 +172,7 @@ VorbisDecoder::SubmitInit() { assert(!dsp_initialized); - audio_format = CheckAudioFormat(vi.rate, sample_format, vi.channels); + audio_format = CheckAudioFormat(vi); frame_size = audio_format.GetFrameSize(); @@ -402,6 +410,11 @@ vorbis_scan_stream(InputStream &is, TagHandler &handler) noexcept VisitVorbisDuration(is, sync, stream, vi.rate, handler); + try { + handler.OnAudioFormat(VorbisDecoder::CheckAudioFormat(vi)); + } catch (...) { + } + return true; }