Browse Source

chromecast: EOF is when the Chromecast is finished reading all sent data

It will then tell it's buffering, waiting for more data

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
pull/45/merge
Steve Lhomme 10 years ago
committed by Thomas Guillem
parent
commit
dec57440ec
  1. 8
      modules/stream_out/chromecast/cast.cpp
  2. 5
      modules/stream_out/chromecast/chromecast.h

8
modules/stream_out/chromecast/cast.cpp

@ -379,6 +379,14 @@ static int Control(sout_stream_t *p_stream, int i_query, va_list args)
{
sout_stream_sys_t *p_sys = p_stream->p_sys;
if (i_query == SOUT_STREAM_EMPTY)
{
bool *b = va_arg( args, bool * );
/* check if the Chromecast to be done playing */
*b = p_sys->p_intf == NULL || p_sys->p_intf->isFinishedPlaying();
return VLC_SUCCESS;
}
if ( !p_sys->p_out->pf_control )
return VLC_EGENERIC;

5
modules/stream_out/chromecast/chromecast.h

@ -82,6 +82,11 @@ struct intf_sys_t
intf_sys_t(vlc_object_t * const p_this, int local_port, std::string device_addr, int device_port = 0);
~intf_sys_t();
bool isFinishedPlaying() {
vlc_mutex_locker locker(&lock);
return conn_status == CHROMECAST_CONNECTION_DEAD || (receiverState == RECEIVER_BUFFERING && cmd_status != CMD_SEEK_SENT);
}
void setHasInput( bool has_input, const std::string mime_type = "");
private:

Loading…
Cancel
Save