MediaClient: Move WIP min/max functions into BMediaConnection
This commit is contained in:
@@ -124,17 +124,6 @@ public:
|
||||
BMediaNode::run_mode RunMode() const;
|
||||
status_t SetRunMode(BMediaNode::run_mode mode);
|
||||
|
||||
// Specify a latency range to allow the node behave correctly.
|
||||
// Ideally the minimum latency should be the algorithmic latency you expect
|
||||
// from the node and will be used as starting point. The max latency is the
|
||||
// maximum acceptable by you, over that point the node will adjust it's
|
||||
// performance time to recover if a big delay happen.
|
||||
void SetLatencyRange(bigtime_t min,
|
||||
bigtime_t max);
|
||||
|
||||
void GetLatencyRange(bigtime_t* min,
|
||||
bigtime_t* max) const;
|
||||
|
||||
// Return the current performance time handled by the object when
|
||||
// run_mode != B_OFFLINE. Otherwise returns the current offline time.
|
||||
bigtime_t CurrentTime() const;
|
||||
@@ -191,9 +180,6 @@ private:
|
||||
|
||||
bigtime_t fCurrentTime;
|
||||
|
||||
bigtime_t fMinLatency;
|
||||
bigtime_t fMaxLatency;
|
||||
|
||||
BObjectList<BMediaInput> fInputs;
|
||||
BObjectList<BMediaOutput> fOutputs;
|
||||
|
||||
|
||||
@@ -72,6 +72,17 @@ protected:
|
||||
virtual void Connected(const media_format& format);
|
||||
virtual void Disconnected();
|
||||
|
||||
// Specify a latency range to allow the connection behave correctly.
|
||||
// Ideally the minimum latency should be the algorithmic latency you expect
|
||||
// from the node and will be used as starting point. The max latency is the
|
||||
// maximum acceptable by you, over that point the node will adjust it's
|
||||
// performance time to recover if a big delay happen.
|
||||
void SetLatencyRange(bigtime_t min,
|
||||
bigtime_t max);
|
||||
|
||||
void GetLatencyRange(bigtime_t* min,
|
||||
bigtime_t* max) const;
|
||||
|
||||
private:
|
||||
void ConnectionRegistered(BMediaClient* owner,
|
||||
media_connection_id id);
|
||||
@@ -95,6 +106,9 @@ private:
|
||||
|
||||
bool fConnected;
|
||||
|
||||
bigtime_t fMinLatency;
|
||||
bigtime_t fMaxLatency;
|
||||
|
||||
virtual void _ReservedMediaConnection0();
|
||||
virtual void _ReservedMediaConnection1();
|
||||
virtual void _ReservedMediaConnection2();
|
||||
|
||||
@@ -379,26 +379,6 @@ BMediaClient::SetTimeSource(const media_client& timesource)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
BMediaClient::GetLatencyRange(bigtime_t* min, bigtime_t* max) const
|
||||
{
|
||||
CALLED();
|
||||
|
||||
*min = fMinLatency;
|
||||
*max = fMaxLatency;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
BMediaClient::SetLatencyRange(bigtime_t min, bigtime_t max)
|
||||
{
|
||||
CALLED();
|
||||
|
||||
fMinLatency = min;
|
||||
fMaxLatency = max;
|
||||
}
|
||||
|
||||
|
||||
bigtime_t
|
||||
BMediaClient::CurrentTime() const
|
||||
{
|
||||
|
||||
@@ -213,7 +213,7 @@ BMediaClientNode::GetLatencyFor(const media_destination& dest,
|
||||
if (conn == NULL)
|
||||
return B_MEDIA_BAD_DESTINATION;
|
||||
|
||||
*latency = fOwner->fMaxLatency;
|
||||
*latency = conn->fMaxLatency;
|
||||
*timesource = TimeSource()->ID();
|
||||
return B_OK;
|
||||
}
|
||||
@@ -494,7 +494,7 @@ BMediaClientNode::GetLatency(bigtime_t* outLatency)
|
||||
CALLED();
|
||||
|
||||
// TODO: finish latency handling
|
||||
*outLatency = fOwner->fMinLatency;
|
||||
*outLatency = 0;
|
||||
return B_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -12,7 +12,9 @@ BMediaConnection::BMediaConnection(media_connection_kinds kinds)
|
||||
:
|
||||
fOwner(NULL),
|
||||
fBind(NULL),
|
||||
fBufferGroup(NULL)
|
||||
fBufferGroup(NULL),
|
||||
fMinLatency(0),
|
||||
fMaxLatency(0)
|
||||
{
|
||||
CALLED();
|
||||
|
||||
@@ -136,6 +138,26 @@ BMediaConnection::Disconnected()
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
BMediaConnection::GetLatencyRange(bigtime_t* min, bigtime_t* max) const
|
||||
{
|
||||
CALLED();
|
||||
|
||||
*min = fMinLatency;
|
||||
*max = fMaxLatency;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
BMediaConnection::SetLatencyRange(bigtime_t min, bigtime_t max)
|
||||
{
|
||||
CALLED();
|
||||
|
||||
fMinLatency = min;
|
||||
fMaxLatency = max;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
BMediaConnection::ConnectionRegistered(BMediaClient* owner,
|
||||
media_connection_id id)
|
||||
|
||||
Reference in New Issue
Block a user