Implement rebuffering mode for packet-buffer media node.
git-svn-id: svn://10.0.0.236/branches/ZAP_20050610_BRANCH@177937 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -70,6 +70,8 @@ Sinks: 1
|
||||
Node parameters:
|
||||
- int "max_size" : maximum number of packets to buffer (10)
|
||||
- int "prefill_size" : no of packets to prebuffer at start of stream (0)
|
||||
- boolean "rebuffer" : refill buffer to prefill_size whenever the number
|
||||
of packets in the buffer drops to 0 (true)
|
||||
|
||||
Input stream:
|
||||
any
|
||||
|
||||
@@ -105,6 +105,7 @@ zapPacketBuffer::AddedToGraph(zapIMediaGraph *graph,
|
||||
// node parameter defaults:
|
||||
mPrefillSize = 0;
|
||||
mMaxSize = 10;
|
||||
mRebuffer = PR_TRUE;
|
||||
// unpack node parameters:
|
||||
if (node_pars) {
|
||||
node_pars->GetPropertyAsUint32(NS_LITERAL_STRING("prefill_size"), &mPrefillSize);
|
||||
@@ -114,6 +115,8 @@ zapPacketBuffer::AddedToGraph(zapIMediaGraph *graph,
|
||||
NS_WARNING("adjusted maximum buffer size");
|
||||
mMaxSize = mPrefillSize;
|
||||
}
|
||||
|
||||
node_pars->GetPropertyAsBool(NS_LITERAL_STRING("rebuffer"), &mRebuffer);
|
||||
}
|
||||
|
||||
return NS_OK;
|
||||
@@ -724,7 +727,13 @@ zapPacketBufferSink_IDLE::RequestFrame(zapPacketBuffer* pb)
|
||||
}
|
||||
else {
|
||||
// nothing in buffer
|
||||
ChangeState(pb, zapPacketBufferSink_WAITING::Instance());
|
||||
#ifdef DEBUG
|
||||
printf("E");
|
||||
#endif
|
||||
if (pb->mRebuffer)
|
||||
ChangeState(pb, zapPacketBufferSink_WAITING_PREFILLING::Instance());
|
||||
else
|
||||
ChangeState(pb, zapPacketBufferSink_WAITING::Instance());
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
@@ -93,7 +93,8 @@ private:
|
||||
// node parameters (set in zapIMediaGraph::AddNode()):
|
||||
PRUint32 mPrefillSize; // number of packets to prefill the buffer with
|
||||
PRUint32 mMaxSize; // maximum number of packets buffered
|
||||
|
||||
PRBool mRebuffer; // rebuffer to prefill_size whenever the number of packets
|
||||
// in the buffer drops to 0
|
||||
|
||||
nsDeque mBuffer; // the actual buffer
|
||||
|
||||
|
||||
Reference in New Issue
Block a user