output/Thread: ensure pending tags are flushed in all cases
Fixes hanging playback with soxr resampler. Closes #139, #141
This commit is contained in:
parent
3b23cf0258
commit
b111a8fe8d
2
NEWS
2
NEWS
|
@ -5,6 +5,8 @@ ver 0.20.12 (not yet released)
|
|||
- vorbis: fix Tremor support
|
||||
* player
|
||||
- log message when decoder is too slow
|
||||
* output
|
||||
- fix hanging playback with soxr resampler
|
||||
|
||||
ver 0.20.11 (2017/10/18)
|
||||
* storage
|
||||
|
|
|
@ -271,16 +271,15 @@ try {
|
|||
inline bool
|
||||
AudioOutput::PlayChunk()
|
||||
{
|
||||
if (tags) {
|
||||
const auto *tag = source.ReadTag();
|
||||
if (tag != nullptr) {
|
||||
const ScopeUnlock unlock(mutex);
|
||||
try {
|
||||
ao_plugin_send_tag(this, *tag);
|
||||
} catch (const std::runtime_error &e) {
|
||||
FormatError(e, "Failed to send tag to \"%s\" [%s]",
|
||||
name, plugin.name);
|
||||
}
|
||||
// ensure pending tags are flushed in all cases
|
||||
const auto *tag = source.ReadTag();
|
||||
if (tags && tag != nullptr) {
|
||||
const ScopeUnlock unlock(mutex);
|
||||
try {
|
||||
ao_plugin_send_tag(this, *tag);
|
||||
} catch (const std::runtime_error &e) {
|
||||
FormatError(e, "Failed to send tag to \"%s\" [%s]",
|
||||
name, plugin.name);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue