Remove "SetExtraData" from AudioDecoder, pass in the data at creation instead

This commit is contained in:
Henrik Rydgård committed 2024-04-11 14:39:59 +02:00
1 parent 33ba30694a
commit bf280eb410
5 files changed
+38 -41

No files matched your search

+3 -19
View File
@@ -117,8 +117,6 @@ public:
return srcPos;
}
// Not save stated, only used by UI. Used for ATRAC3 (non+) files.
void SetExtraData(const uint8_t *data, int size, int wav_bytes_per_packet) override;
void SetChannels(int channels) override;
// These two are only here because of save states.
@@ -144,13 +142,14 @@ private:
bool codecOpen_;
};
AudioDecoder *CreateAudioDecoder(PSPAudioType audioType, int sampleRateHz, int channels) {
AudioDecoder *CreateAudioDecoder(PSPAudioType audioType, int sampleRateHz, int channels, size_t blockAlign, const uint8_t *extraData, size_t extraDataSize) {
switch (audioType) {
case PSP_CODEC_MP3:
return new MiniMp3Audio();
case PSP_CODEC_AT3:
return CreateAtrac3Audio(channels, blockAlign, extraData, extraDataSize);
case PSP_CODEC_AT3PLUS:
return CreateAtrac3Audio(audioType);
return CreateAtrac3PlusAudio(channels, blockAlign);
default:
// Only AAC falls back to FFMPEG now.
return new SimpleAudio(audioType, sampleRateHz, channels);
@@ -240,21 +239,6 @@ bool SimpleAudio::OpenCodec(int block_align) {
#endif // USE_FFMPEG
}
void SimpleAudio::SetExtraData(const uint8_t *data, int size, int wav_bytes_per_packet) {
#ifdef USE_FFMPEG
if (codecCtx_) {
codecCtx_->extradata = (uint8_t *)av_mallocz(size);
codecCtx_->extradata_size = size;
codecCtx_->block_align = wav_bytes_per_packet;
codecOpen_ = false;
if (data != nullptr) {
memcpy(codecCtx_->extradata, data, size);
}
}
#endif
}
void SimpleAudio::SetChannels(int channels) {
if (channels_ == channels) {
// Do nothing, already set.