From 264513e8a9585096c5e6eea46d62b88ae7452069 Mon Sep 17 00:00:00 2001 From: Fredrik Mellbin Date: Mon, 27 May 2024 21:12:12 +0200 Subject: [PATCH] Error out instead of crash when trying to export variable format audio --- src/audiosource.cpp | 6 ++++++ src/audiosource.h | 1 - 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/audiosource.cpp b/src/audiosource.cpp index 819ce20..8032d98 100644 --- a/src/audiosource.cpp +++ b/src/audiosource.cpp @@ -980,6 +980,9 @@ bool BestAudioSource::FillInFramePlanar(const BestAudioFrame *Frame, int64_t Fra } void BestAudioSource::GetPackedAudio(uint8_t *Data, int64_t Start, int64_t Count) { + if (VariableFormat) + throw BestSourceException("GetPackedAudio() can only be used when variable format is disabled"); + Start -= SampleDelay; ZeroFillStartPacked(Data, Start, Count); @@ -1005,6 +1008,9 @@ void BestAudioSource::GetPackedAudio(uint8_t *Data, int64_t Start, int64_t Count } void BestAudioSource::GetPlanarAudio(uint8_t *const *const Data, int64_t Start, int64_t Count) { + if (VariableFormat) + throw BestSourceException("GetPlanarAudio() can only be used when variable format is disabled"); + Start -= SampleDelay; std::vector DataV; diff --git a/src/audiosource.h b/src/audiosource.h index a96148a..6ef0316 100644 --- a/src/audiosource.h +++ b/src/audiosource.h @@ -167,7 +167,6 @@ class BestAudioSource { [[nodiscard]] BestAudioFrame *GetFrameInternal(int64_t N); [[nodiscard]] BestAudioFrame *GetFrameLinearInternal(int64_t N, int64_t SeekFrame = -1, size_t Depth = 0, bool ForceUnseeked = false); [[nodiscard]] bool IndexTrack(const ProgressFunction &Progress = nullptr); - bool InitializeRFF(); void ZeroFillStartPacked(uint8_t *&Data, int64_t &Start, int64_t &Count); void ZeroFillEndPacked(uint8_t *Data, int64_t Start, int64_t &Count); bool FillInFramePacked(const BestAudioFrame *Frame, int64_t FrameStartSample, uint8_t *&Data, int64_t &Start, int64_t &Count);