From f371fecb344406b0a3e7871d65aed15490e488a1 Mon Sep 17 00:00:00 2001 From: attila Date: Fri, 13 Jun 2025 12:26:49 +0200 Subject: [PATCH] Fix compilation when JUCE_USE_LAME_AUDIO_FORMAT=1 This fixes a regression in 1ce35453db40d61fc090a1ba9e765a95671031fb. --- .../codecs/juce_LAMEEncoderAudioFormat.cpp | 15 +++++++-------- .../codecs/juce_LAMEEncoderAudioFormat.h | 2 +- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp b/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp index cb764f8eea..7070ef603e 100644 --- a/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp +++ b/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp @@ -43,14 +43,15 @@ public: Writer (OutputStream* destStream, const String& formatName, const File& appFile, int vbr, int cbr, double sampleRateIn, unsigned int numberOfChannels, - int bitsPerSampleIn, const StringPairArray& metadata) + int bitsPerSampleIn, const StringMap& metadata) : AudioFormatWriter (destStream, formatName, sampleRateIn, numberOfChannels, (unsigned int) bitsPerSampleIn), vbrLevel (vbr), cbrBitrate (cbr) { WavAudioFormat wavFormat; - writer = wavFormat.createWriterFor (tempWav.getFile().createOutputStream(), + std::unique_ptr stream = tempWav.getFile().createOutputStream(); + writer = wavFormat.createWriterFor (stream, AudioFormatWriter::Options{}.withSampleRate (sampleRateIn) .withNumChannels ((int) numberOfChannels) .withBitsPerSample (bitsPerSampleIn) @@ -85,14 +86,12 @@ public: addMetadataArg (metadata, "id3trackNumber", "--tn"); } - void addMetadataArg (const StringPairArray& metadata, const char* key, const char* lameFlag) + void addMetadataArg (const StringMap& metadata, const char* key, const char* lameFlag) { - auto value = metadata.getValue (key, {}); - - if (value.isNotEmpty()) + if (auto it = metadata.find (key); it != metadata.end()) { args.add (lameFlag); - args.add (value); + args.add (it->second); } } @@ -207,7 +206,7 @@ AudioFormatReader* LAMEEncoderAudioFormat::createReaderFor (InputStream*, const return nullptr; } -std::unique_ptr LAMEEncoderAudioFormat::createWriterFor (std::unique_ptr streamToWriteTo, +std::unique_ptr LAMEEncoderAudioFormat::createWriterFor (std::unique_ptr& streamToWriteTo, const AudioFormatWriterOptions& options) { if (streamToWriteTo == nullptr) diff --git a/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h b/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h index 45615d0a67..09da69a9e5 100644 --- a/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h +++ b/modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h @@ -69,7 +69,7 @@ public: bool isCompressed() override; StringArray getQualityOptions() override; - std::unique_ptr createWriterFor (std::unique_ptr streamToWriteTo, + std::unique_ptr createWriterFor (std::unique_ptr& streamToWriteTo, const AudioFormatWriterOptions& options) override; AudioFormatReader* createReaderFor (InputStream*, bool deleteStreamIfOpeningFails) override;