Merge branch 'v0.19.x'
This commit is contained in:
@@ -757,7 +757,7 @@ FfmpegDecode(Decoder &decoder, InputStream &input,
|
||||
FfmpegCheckTag(decoder, input, format_context, audio_stream);
|
||||
#endif
|
||||
|
||||
if (packet.stream_index == audio_stream) {
|
||||
if (packet.size > 0 && packet.stream_index == audio_stream) {
|
||||
cmd = ffmpeg_send_packet(decoder, input,
|
||||
packet,
|
||||
*codec_context,
|
||||
|
@@ -357,12 +357,19 @@ sidplay_file_decode(Decoder &decoder, Path path_fs)
|
||||
DecoderCommand cmd;
|
||||
do {
|
||||
short buffer[4096];
|
||||
size_t nbytes;
|
||||
|
||||
nbytes = player.play(buffer, ARRAY_SIZE(buffer));
|
||||
if (nbytes == 0)
|
||||
const auto result = player.play(buffer, ARRAY_SIZE(buffer));
|
||||
if (result <= 0)
|
||||
break;
|
||||
|
||||
#ifdef HAVE_SIDPLAYFP
|
||||
/* libsidplayfp returns the number of samples */
|
||||
const size_t nbytes = result * sizeof(buffer[0]);
|
||||
#else
|
||||
/* libsidplay2 returns the number of bytes */
|
||||
const size_t nbytes = result;
|
||||
#endif
|
||||
|
||||
decoder_timestamp(decoder, (double)player.time() / timebase);
|
||||
|
||||
cmd = decoder_data(decoder, nullptr, buffer, nbytes, 0);
|
||||
@@ -379,12 +386,9 @@ sidplay_file_decode(Decoder &decoder, Path path_fs)
|
||||
}
|
||||
|
||||
/* ignore data until target time is reached */
|
||||
while(data_time<target_time) {
|
||||
nbytes=player.play(buffer, ARRAY_SIZE(buffer));
|
||||
if(nbytes==0)
|
||||
break;
|
||||
while (data_time < target_time &&
|
||||
player.play(buffer, ARRAY_SIZE(buffer)) > 0)
|
||||
data_time = player.time();
|
||||
}
|
||||
|
||||
decoder_command_finished(decoder);
|
||||
}
|
||||
|
Reference in New Issue
Block a user