[prev in list] [next in list] [prev in thread] [next in thread]
List: helix-datatype-cvs
Subject: [Datatype-cvs] mpg/payload/pub mpvespyld.h,1.1.4.3,1.1.4.3.2.1
From: jgordon () helixcommunity ! org
Date: 2012-01-19 19:34:46
[Download RAW message or body]
Update of /cvsroot/datatype/mpg/payload/pub
In directory cvs01.internal.helixcommunity.org:/tmp/cvs-serv19007/pub
Modified Files:
Tag: hxclient_3_6_1_atlas
mpvespyld.h
Log Message:
Synopsis
========
Add MPEG-1 system packet support to mpeg depacketizer
Description
===========
Adds handling of MPEG-1 system stream packets similarly to the
current handling of MPEG-2 program packets. This allows playback of
MPEG-1 system streams from mpgfformat to use this renderer->codec chain.
Broke apart the handling of MPEG-2 PES from ES where relevant in order to
more cleanly allow the three slightly different packet types.
Removed the completely pointless input packet queue. It literally would
just add a packet to the queue and then call into a method to remove the
packet and decode it. This was just an artefact of copying code from more
complex depacketizers!
I'm not sure how the PES handling was ever working, because it leaked every
packet due to this:
pHXCodecData->data = m_pAllocator->AddBuffer(pBuffer) + ulSkipOffset;
naturally when the codec tries to release the buffer at pHXCodecData->data
it fails because the allocator does not have a buffer at that address!
Changed it to wrap it in a static buffer to pass directly to the allocator
(like we do for the source buffer in the ES case).
Removed "video/mp2p" from the supported mime types. I'm not sure why that
was added but that is an RTP streaming mime type which this depacketizer
definitely does not support.
Files Affected
==============
datatype/mpg/payload/mpvespyld.cpp
datatype/mpg/payload/pub/mpvespyld.h
Index: mpvespyld.h
===================================================================
RCS file: /cvsroot/datatype/mpg/payload/pub/mpvespyld.h,v
retrieving revision 1.1.4.3
retrieving revision 1.1.4.3.2.1
diff -u -d -r1.1.4.3 -r1.1.4.3.2.1
--- mpvespyld.h 10 May 2011 06:04:23 -0000 1.1.4.3
+++ mpvespyld.h 19 Jan 2012 19:34:43 -0000 1.1.4.3.2.1
@@ -116,21 +116,26 @@
virtual void SetAllocator(CHXBufferMemoryAllocator* pAllocator);
private:
-
- //tracks the info of current AU. actaully data is in the input queue
- CHXSimpleList m_InputQueue;
- UINT32 m_ulInputQueueTotalSize;
-
- HX_RESULT SetAssemblerHeader(IHXValues* pHeader);
-
// Assembler Functions
- HX_RESULT ProcessPacket(IHXPacket* pPacket);
- HX_RESULT ReapMediaPacket(void);
+ HX_RESULT SetAssemblerHeader(IHXValues* pHeader);
+
+ HX_RESULT ProcessPacketES(IHXPacket* pPacket);
+ HX_RESULT ProcessPacketMPEG2PES(IHXPacket* pPacket);
+ HX_RESULT ProcessPacketMPEG1PES(IHXPacket* pPacket);
+ HX_RESULT (MPEGESPayloadFormat::*ProcessPacket)(IHXPacket* pPacket);
+
void FlushQueues(void);
- void FlushInputQueue(UINT32 ulCount);
void FlushOutputQueue(UINT32 ulCount);
+ inline UINT32 GetPacketTime(IHXPacket* pPacket, UINT32 ulDecodeTime);
+ inline HXCODEC_DATA* InitCodecData(UINT32 ulSize, UINT32 ulTime,
+ UINT8 ucASMFlags);
+ inline HX_RESULT SetCodecDataPES(IHXBuffer* pBuffer, UINT32 ulOffset,
+ UINT32 ulTime, UINT8 ucASMFlags);
+
+ static const char* const m_ppszCodecId[];
+
INT32 m_lRefCount;
IHXCommonClassFactory* m_pClassFactory;
CHXBufferMemoryAllocator* m_pAllocator;
@@ -146,18 +151,13 @@
UINT32 m_ulSamplesPerSecond;
UINT32 m_ulRTPSamplesPerSecond;
- inline UINT32 GetPacketTime(IHXPacket* pPacket);
-
CHXSimpleList m_OutputQueue;
UINT32 m_ulCodecDataSeqNumber;
UINT32 m_ulCodecIDIndex;
- static const char* const m_ppszCodecId[];
HX_BITFIELD m_bFlushed:1;
HX_BITFIELD m_bUsesRTPPackets:1;
HX_BITFIELD m_bRTPPacketTested:1;
-
- HXBOOL m_bPESPackets;
};
#endif // _MP2VESPYLD_H_
_______________________________________________
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