decoder/API: move part of decoder_check_cancel_read() into class DecoderBridge

This commit is contained in:
Max Kellermann
2016-11-21 22:07:03 +01:00
parent 8c342a764b
commit 2718f4c333
3 changed files with 30 additions and 19 deletions

View File

@@ -43,6 +43,26 @@ DecoderBridge::~DecoderBridge()
delete decoder_tag;
}
bool
DecoderBridge::CheckCancelRead() const
{
if (error)
/* this translates to DecoderCommand::STOP */
return true;
if (dc.command == DecoderCommand::NONE)
return false;
/* ignore the SEEK command during initialization, the plugin
should handle that after it has initialized successfully */
if (dc.command == DecoderCommand::SEEK &&
(dc.state == DecoderState::START || seeking ||
initial_seek_running))
return false;
return true;
}
/**
* All chunks are full of decoded data; wait for the player to free
* one.