Commit 5acc77a1 authored by Max Kellermann's avatar Max Kellermann

decoder/opus: change return types to void

parent 0709878b
...@@ -127,8 +127,8 @@ public: ...@@ -127,8 +127,8 @@ public:
private: private:
DecoderCommand HandlePacket(const ogg_packet &packet); DecoderCommand HandlePacket(const ogg_packet &packet);
DecoderCommand HandleBOS(const ogg_packet &packet); void HandleBOS(const ogg_packet &packet);
DecoderCommand HandleEOS(); void HandleEOS();
DecoderCommand HandleTags(const ogg_packet &packet); DecoderCommand HandleTags(const ogg_packet &packet);
DecoderCommand HandleAudio(const ogg_packet &packet); DecoderCommand HandleAudio(const ogg_packet &packet);
}; };
...@@ -172,12 +172,15 @@ MPDOpusDecoder::HandlePackets() ...@@ -172,12 +172,15 @@ MPDOpusDecoder::HandlePackets()
inline DecoderCommand inline DecoderCommand
MPDOpusDecoder::HandlePacket(const ogg_packet &packet) MPDOpusDecoder::HandlePacket(const ogg_packet &packet)
{ {
if (packet.e_o_s) if (packet.e_o_s) {
return HandleEOS(); HandleEOS();
return decoder_get_command(decoder);
}
if (packet.b_o_s) if (packet.b_o_s) {
return HandleBOS(packet); HandleBOS(packet);
else if (opus_decoder == nullptr) return decoder_get_command(decoder);
} else if (opus_decoder == nullptr)
throw std::runtime_error("BOS packet expected"); throw std::runtime_error("BOS packet expected");
if (IsOpusTags(packet)) if (IsOpusTags(packet))
...@@ -237,7 +240,7 @@ LoadEOSGranulePos(InputStream &is, Decoder &decoder, int serialno) ...@@ -237,7 +240,7 @@ LoadEOSGranulePos(InputStream &is, Decoder &decoder, int serialno)
return packet.granulepos; return packet.granulepos;
} }
inline DecoderCommand inline void
MPDOpusDecoder::HandleBOS(const ogg_packet &packet) MPDOpusDecoder::HandleBOS(const ogg_packet &packet)
{ {
assert(packet.b_o_s); assert(packet.b_o_s);
...@@ -273,7 +276,7 @@ MPDOpusDecoder::HandleBOS(const ogg_packet &packet) ...@@ -273,7 +276,7 @@ MPDOpusDecoder::HandleBOS(const ogg_packet &packet)
/* decoder was already initialized by the previous /* decoder was already initialized by the previous
stream; skip the rest of this method */ stream; skip the rest of this method */
LogDebug(opus_domain, "Found another stream"); LogDebug(opus_domain, "Found another stream");
return decoder_get_command(decoder); return;
} }
eos_granulepos = LoadEOSGranulePos(input_stream, decoder, eos_granulepos = LoadEOSGranulePos(input_stream, decoder,
...@@ -292,11 +295,9 @@ MPDOpusDecoder::HandleBOS(const ogg_packet &packet) ...@@ -292,11 +295,9 @@ MPDOpusDecoder::HandleBOS(const ogg_packet &packet)
output_buffer = new opus_int16[opus_output_buffer_frames output_buffer = new opus_int16[opus_output_buffer_frames
* audio_format.channels]; * audio_format.channels];
return decoder_get_command(decoder);
} }
inline DecoderCommand inline void
MPDOpusDecoder::HandleEOS() MPDOpusDecoder::HandleEOS()
{ {
if (eos_granulepos < 0 && IsInitialized()) { if (eos_granulepos < 0 && IsInitialized()) {
...@@ -306,11 +307,8 @@ MPDOpusDecoder::HandleEOS() ...@@ -306,11 +307,8 @@ MPDOpusDecoder::HandleEOS()
opus_decoder_destroy(opus_decoder); opus_decoder_destroy(opus_decoder);
opus_decoder = nullptr; opus_decoder = nullptr;
} else
return decoder_get_command(decoder); throw StopDecoder();
}
throw StopDecoder();
} }
inline DecoderCommand inline DecoderCommand
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment