[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-datatype-cvs
Subject: [Datatype-cvs] mpeg2ts/demuxer tsdemuxer.cpp,1.8,1.9
From: qluo () helixcommunity ! org
Date: 2011-01-27 17:53:38
Message-ID: 201101271753.p0RHrq15014479 () mailer ! progressive-comp ! com
[Download RAW message or body]
Update of /cvsroot/datatype/mpeg2ts/demuxer
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv14647/demuxer
Modified Files:
tsdemuxer.cpp
Log Message:
merge fixes to head.
Index: tsdemuxer.cpp
===================================================================
RCS file: /cvsroot/datatype/mpeg2ts/demuxer/tsdemuxer.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- tsdemuxer.cpp 27 Dec 2010 17:54:25 -0000 1.8
+++ tsdemuxer.cpp 27 Jan 2011 17:53:35 -0000 1.9
@@ -53,6 +53,10 @@
#include "pckunpck.h"
#include "tsdemuxer.h"
+#if defined(ANDROID)
+#include <utils/Log.h>
+#define printf LOGD
+#endif
/*
* constructor, destructor
*/
@@ -65,6 +69,7 @@
, m_ulFilesize(0)
, m_bRawMode(bRawMode)
, m_bUseRawDTS(FALSE)
+ , m_u64FirstDTSBaseOffset(0)
{
// context
if (pContext)
@@ -415,6 +420,10 @@
}
}
m_pCurrentProgram->u64FirstDTS = u64DTSBase;
+ if(m_u64FirstDTSBaseOffset == 0)
+ {
+ m_u64FirstDTSBaseOffset = m_pCurrentProgram->u64FirstDTS;
+ }
}
HX_RESULT
@@ -731,7 +740,7 @@
// check sync byte
if (pData[0] != TS_SYNC_BYTE)
{
- return HXR_FAIL;
+ return HXR_CORRUPT_FILE;
}
// header
@@ -925,6 +934,11 @@
//find out where the new AU boundary is
BYTE* pNewAU = pESStream->pPayloadHandler->FindAU(pESStream->pESData \
+ pESStream->ulCurrentPESOffset,
pESStream->ulBufferOffset - \
pESStream->ulCurrentPESOffset); + if (!pNewAU)
+ {
+ printf("%s: Cant find start code in PES with PTS/DTS\n", \
__FUNCTION__); + }
+
if (pNewAU)
{
pESStream->ulNewAUOffset = pNewAU - pESStream->pESData;
@@ -1223,10 +1237,10 @@
// skip packets before the DTS of the first vodeo with decoder setup info
if (m_pCurrentProgram->bHasVideoStream)
{
- if ( m_pCurrentProgram->bFirstVideoDTSSet == FALSE)
+ if ( m_pCurrentProgram->bFirstVideoDTSSet == FALSE || \
pESStream->u64PreviousDTS < m_u64FirstDTSBaseOffset) {
return HXR_OK;
- }
+ }
if(m_pCurrentProgram->bFirstVideoDTSSet == TRUE && \
(m_pCurrentProgram->bFirstAudioDTSSet == FALSE) &&
(pESStream->nStreamID >= 0xC0) && (pESStream->nStreamID <= 0xDF))
@@ -1302,13 +1316,6 @@
}
}
- // mark the first packet
- if (pESStream->bSeenFirstPacket == FALSE)
- {
- pESStream->bSeenFirstPacket = TRUE;
- ucASMFlags |= 0x40;
- }
-
// use flag high bit as the timestamp overflow mark
if (pESStream->u64PreviousDTS & 0x100000000ll) ucASMFlags |= 0x80;
_______________________________________________
Datatype-cvs mailing list
Datatype-cvs@helixcommunity.org
http://lists.helixcommunity.org/mailman/listinfo/datatype-cvs
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic