Commit 3258f429 authored by Francois Cartegnie's avatar Francois Cartegnie

demux: adaptative: report es selection

parent c7e83e1c
...@@ -141,6 +141,11 @@ bool Stream::seekAble() const ...@@ -141,6 +141,11 @@ bool Stream::seekAble() const
return (output && output->seekAble()); return (output && output->seekAble());
} }
bool Stream::isSelected() const
{
return output && output->isSelected();
}
Stream::status Stream::demux(HTTPConnectionManager *connManager, mtime_t nz_deadline, bool send) Stream::status Stream::demux(HTTPConnectionManager *connManager, mtime_t nz_deadline, bool send)
{ {
if(!output) if(!output)
...@@ -442,6 +447,21 @@ bool BaseStreamOutput::switchAllowed() const ...@@ -442,6 +447,21 @@ bool BaseStreamOutput::switchAllowed() const
return b_allowed; return b_allowed;
} }
bool BaseStreamOutput::isSelected() const
{
bool b_selected = false;
vlc_mutex_lock(const_cast<vlc_mutex_t *>(&lock));
std::list<Demuxed *>::const_iterator it;
for(it=queues.begin(); it!=queues.end() && !b_selected; ++it)
{
const Demuxed *pair = *it;
if(pair->es_id)
es_out_Control(realdemux->out, ES_OUT_GET_ES_STATE, pair->es_id, &b_selected);
}
vlc_mutex_unlock(const_cast<vlc_mutex_t *>(&lock));
return b_selected;
}
void BaseStreamOutput::sendToDecoder(mtime_t nzdeadline) void BaseStreamOutput::sendToDecoder(mtime_t nzdeadline)
{ {
vlc_mutex_lock(&lock); vlc_mutex_lock(&lock);
......
...@@ -74,6 +74,7 @@ namespace adaptative ...@@ -74,6 +74,7 @@ namespace adaptative
int getGroup() const; int getGroup() const;
int esCount() const; int esCount() const;
bool seekAble() const; bool seekAble() const;
bool isSelected() const;
typedef enum {status_eof, status_buffering, status_demuxed} status; typedef enum {status_eof, status_buffering, status_demuxed} status;
status demux(HTTPConnectionManager *, mtime_t, bool); status demux(HTTPConnectionManager *, mtime_t, bool);
bool setPosition(mtime_t, bool); bool setPosition(mtime_t, bool);
...@@ -112,6 +113,7 @@ namespace adaptative ...@@ -112,6 +113,7 @@ namespace adaptative
virtual void sendToDecoder(mtime_t) = 0; virtual void sendToDecoder(mtime_t) = 0;
virtual bool reinitsOnSeek() const = 0; virtual bool reinitsOnSeek() const = 0;
virtual bool switchAllowed() const = 0; virtual bool switchAllowed() const = 0;
virtual bool isSelected() const = 0;
protected: protected:
demux_t *realdemux; demux_t *realdemux;
...@@ -142,6 +144,7 @@ namespace adaptative ...@@ -142,6 +144,7 @@ namespace adaptative
virtual void sendToDecoder(mtime_t); /* reimpl */ virtual void sendToDecoder(mtime_t); /* reimpl */
virtual bool reinitsOnSeek() const; /* reimpl */ virtual bool reinitsOnSeek() const; /* reimpl */
virtual bool switchAllowed() const; /* reimpl */ virtual bool switchAllowed() const; /* reimpl */
virtual bool isSelected() const; /* reimpl */
void setTimestampOffset(mtime_t); void setTimestampOffset(mtime_t);
protected: protected:
......
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