[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