H.264 is a special case. So, let me rephrase my statement:
Before: The media timestamps sent by your splitter node -- They should
always be increasing.
Now: The media timestamps sent by the splitter node always need to be
in the "decoding" order. This "decoding" order will most of the times
be an "increasing" order except for H.264, where the "decoding order"
can have timestamps that are not always increasing.

-Ravi

On Oct 11, 9:53 pm, shadow <[email protected]> wrote:
> Hi RaviY,
>
>    Can you please clarify how I,P,B ( I frame - has 0 mSec time, P
> frame has 66 mSec time, and B frame has 33 mSec time ) streams would
> work if time stamps have to be always increased?
>
> --
>
> On Oct 8, 1:58 pm, shadow <[email protected]> wrote:
>
> > i've found where i was wrong, the thread is no more actual.
>
> > --
> >  Best regards,
> >  Yuri
>
> > On Oct 6, 11:20 am, shadow <[email protected]> wrote:
>
> > > Here is flags which i set on each sample:
>
> > >         markerInfo |= PVMF_MEDIA_DATA_MARKER_INFO_DURATION_AVAILABLE_BIT;
> > >         markerInfo |= PVMF_MEDIA_DATA_MARKER_INFO_M_BIT;
> > >         if ( bIsKeyFrame ) {
> > >              markerInfo |=
> > > PVMF_MEDIA_DATA_MARKER_INFO_RANDOM_ACCESS_POINT_BIT;
> > >         }
>
> > > Here is mine log:
>
> > > =====================================================================
> > > VLOG:TID(0xd528):Time=4152:PVMFOMXVideoDecNode::Run() - Calling
> > > HandleProcessingState
> > > 10-06 04:12:17.142: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4152:PVMFOMXVideoDecNode::HandleProcessingState() In
> > > 10-06 04:12:17.142: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4152:PVMFOMXVideoDecNode::HandleProcessingState() Ready
> > > To Decode start
> > > 10-06 04:12:17.142: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4152:PVMFOMXVideoDecNode::SendInputBufferToOMXComponent
> > > () In
> > > 10-06 04:12:17.142: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4152:PVMFOMXVideoDecNode::SendInputBufferToOMXComponent
> > > () - Buffer 0x4057c080 of size 1055, 1 frag out of tot. 1, TS=3200
> > > 10-06 04:12:17.142: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4153:PVMFOMXVideoDecNode::SendInputBufferToOMXComponent
> > > () - END OF MESSAGE - Buffer 0x4057c080 MARKER bit set to 1, TS=3200,
> > > Ticks=L
> > > 10-06 04:12:17.142: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4153:PVMFOMXVideoDecNode::SendInputBufferToOMXComponent
> > > ()  - Sending Buffer 0x4057c080 to OMX Component MARKER field set to
> > > 30, TS=3200, Ticks=L
> > > 10-06 04:12:17.142: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4154:PVMFOMXVideoDecNode::SendInputBufferToOMXComponent
> > > () Out
> > > 10-06 04:12:17.142: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4154:PVMFOMXVideoDecNode::HandleProcessingState() Out
> > > 10-06 04:12:17.142: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4154:PVMFOMXVideoDecNode::Run() - LoopCount = 1, Time
> > > spent in loop(in ms) = 3, iNumOutstandingInputBuffers = 4,
> > > iNumOutstandingOutputBuffers = 2
> > > 10-06 04:12:17.142: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4154:PVMFOMXVideoDecNode::Run() Out
> > > 10-06 04:12:17.509: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4515:PVMFMediaClock::Run Timer for regular callback
> > > currentTime - 1403 callbackTime - 1401 callbackMargin - 0 queue size -
> > > 2 status - 4
> > > 10-06 04:12:17.509: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4515:PVMediaOutputNodePort::ProcessCallBack In Callback
> > > id [5] CallbackStatus [1]
> > > 10-06 04:12:17.509: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4516:PVMediaOutputNodePort::CheckMediaTimeStamp - OnTime
> > > - Fmt=X-YUV-420, Seq=4, Ts=1600, Clock=1403
> > > 10-06 04:12:17.509: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4516:AndroidSurfaceOutput::writeAsync() seqnum 4 ts 1600
> > > context 578476
> > > 10-06 04:12:17.509: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4516:AndroidSurfaceOutput::writeAsync() Format Type 1
> > > Format Index 1 length 38016
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4527:AndroidSurfaceOutput::writeAsync: Playback Progress
> > > - frame 4
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4528:PVMediaOutputNodePort::SendMediaData - AsyncWrite -
> > > Fmt=X-YUV-420, Seq=4, TS=1600, Dur=0, FIdx=1, ClnUpQSize=2
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4528:PVMFMediaClock::CalculateRunLTimerValue currtime
> > > 1416 top.timeOut 2038
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4528:PVMFMediaClock::AdjustScheduling Timer set for 622
> > > msecs wall clock time
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4528:PVMediaOutputNodePort::writeComplete status 1 cmdId
> > > 11 context 0x8d3ac
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4528:PVMediaOutputNodePort::writeComplete - Fmt=X-
> > > YUV-420, Seq=3, TS=1200, FIdx=0, ClnUpQSize=1
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4528:PVMFOMXVideoDecNode::freechunkavailable() Memory
> > > chunk in OUTPUT mempool was deallocated, 1 out of 2 now available
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4529:PVMFOMXVideoDecNode::Run() In
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4529:PVMFOMXVideoDecNode::Run() - Input commands empty
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4529:PVMFOMXVideoDecNode::Run() - Calling
> > > HandleProcessingState
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4529:PVMFOMXVideoDecNode::HandleProcessingState() In
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4529:PVMFOMXVideoDecNode::HandleProcessingState() Ready
> > > To Decode start
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4529:PVMFOMXVideoDecNode::SendOutputBufferToOMXComponent
> > > () In
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4533:PVMFOMXVideoDecNode::SendOutputBufferToOMXComponent
> > > () Out
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4533:PVMFOMXVideoDecNode::HandleProcessingState() Out
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4533:PVMFOMXVideoDecNode::Run() - LoopCount = 1, Time
> > > spent in loop(in ms) = 4, iNumOutstandingInputBuffers = 4,
> > > iNumOutstandingOutputBuffers = 2
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4533:PVMFOMXVideoDecNode::Run() Out
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4533:EmptyBufferDoneThreadSafeCallbackAO::Run() In
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4533:EmptyBufferDoneThreadSafeCallbackAO::Run() - No
> > > more events, call PendForExec()
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4533:EmptyBufferDoneThreadSafeCallbackAO::Run() -
> > > Calling Process Event
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4533:PVMFOMXVideoDecNode::EmptyBufferDoneProcessing: In
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4533:PVMFOMXVideoDecNode::EmptyBufferDoneProcessing:
> > > Release input buffer with Ticks=2000000 (with 0 refcount remaining of
> > > input message)
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID(0xd528):Time=4534:MEMP
> > > MKVPar(Video) Chunk freed, 4/8 in use
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4534:PVMFOMXVideoDecNode::EmptyBufferDoneProcessing:
> > > Release input buffer bc848 back to mempool - pointing to buffer
> > > 4067c0d8
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4534:PVMFOMXVideoDecNode::freechunkavailable() Memory
> > > chunk in INPUT mempool was deallocated, 7 out of 10 now available
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID
> > > (0xd528):Time=4534:EmptyBufferDoneThreadSafeCallbackAO::Run() Out
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID(0xd528):Time=4534:*
> > > CMKVParserNode::Run: Enter
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID(0xd528):Time=4536:*
> > > CMKVParserNode::Run: Checking HandleTrackState = 4, cmd = 1
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID(0xd528):Time=4536:*
> > > CMKVParserNode::Run(): ( iInterfaceState == EPVMFNodeStarted && !
> > > FlushPending() )
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID(0xd528):Time=4536:*
> > > CMKVParserNode::HandleTrackState(): Enter
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID(0xd528):Time=4536:*
> > > CMKVParserNode::HandleTrackState(): Port ID = 0; Port State = 2
> > > 10-06 04:12:17.521: ERROR/PV(554): PVLOG:TID(0xd528):Time=4536:*
> > > CMKVParserNode::RetrieveTrackData(): Enter
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4537:MEMP
> > > MKVPar(Video) Chunk allocated, 4/8 in use
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4537:*
> > > CMKVParserNode::RetrieveTrackData(): currTicks = 2710
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4537:*
> > > CMKVParserNode::RetrieveTrackData(): startTime = 2710
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4537:*
> > > CMKVParserNode::RetrieveTrackData(): currTicks = 2711
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4537:*
> > > CMKVParserNode::RetrieveTrackData(): endTime = 2711
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4538:*
> > > CMKVParserNode::RetrieveTrackData():
> > >  blockNode.allocatedSize = 1048576
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4538:*
> > > CMKVParserNode::RetrieveTrackData(): ReadNextBlockByStream returned 0
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4538:*
> > > CMKVParserNode::RetrieveTrackData(): blockNode size=867, type=2,
> > > buf=0x4067c0d8
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4538:*
> > > CMKVParserNode::RetrieveTrackData(): blockNode absStartTime=36000000,
> > > blkPeriod=4000000
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4539:*
> > > CMKVParserNode::RetrieveTrackData(): blockNode.flags = 0
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4539:*
> > > CMKVParserNode::RetrieveTrackData(): blockNode.blockBuffer = 0x00,
> > > 0x00, 0x01, 0xb6
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4539:*
> > > CMKVParserNode::RetrieveTrackData(): Exit
> > > 10-06 04:12:17.531: ERROR/PV(554): PVLOG:TID(0xd528):Time=4539:*
> > > CMKVParserNode::DeliverMediaSample(): Enter
> > > 10-06 04:12:17.531: ERROR/PV(554):
>
> ...
>
> read more »
--~--~---------~--~----~------------~-------~--~----~
unsubscribe: [email protected]
website: http://groups.google.com/group/android-porting
-~----------~----~----~----~------~----~------~--~---

Reply via email to