[matroska] r913 - trunk/DvdMenuXtractor

[email protected]
Newsgroups gmane.comp.multimedia.matroska.cvs
Message-ID <[email protected]>
Author: robux4
Date: 2004-10-24 17:24:57 +0400 (Sun, 24 Oct 2004)
New Revision: 913

Modified:
   trunk/DvdMenuXtractor/VobParser.cpp
   trunk/DvdMenuXtractor/VobParser.h
Log:
correct extraction of MPEG audio streams

Modified: trunk/DvdMenuXtractor/VobParser.cpp
===================================================================
--- trunk/DvdMenuXtractor/VobParser.cpp	2004-10-24 12:38:41 UTC (rev 912)
+++ trunk/DvdMenuXtractor/VobParser.cpp	2004-10-24 13:24:57 UTC (rev 913)
@@ -209,7 +209,7 @@
 			else if ((_StreamID & AUDIO_STREAM) == AUDIO_STREAM)
 			{
 				DebugLog("Video pack {}\n");
-				ParseAudioPacket();
+				ParseAudioPacket(_StreamID);
 			}
 			else if (_StreamID == PRIVATE_STREAM1)
 			{
@@ -616,7 +616,7 @@
 	}
 }
 
-void VobParser::ParseAudioPacket()
+void VobParser::ParseAudioPacket(uint8_t StreamID)
 {
 	uint16_t length = GetNext16Bits();
 	ParsePESHeaderDataContentFlag();
@@ -624,9 +624,8 @@
 
 	if(m_demuxer)
 	{	
-		DebugLog("Audio stream not handled\n");
 		m_demuxer->ProcessAudioStream(&m_buff[m_index],
-			length - 3 - pes_header_data_content.PES_header_data_len);
+			length - 3 - pes_header_data_content.PES_header_data_len, StreamID);
 	}
 }
 

Modified: trunk/DvdMenuXtractor/VobParser.h
===================================================================
--- trunk/DvdMenuXtractor/VobParser.h	2004-10-24 12:38:41 UTC (rev 912)
+++ trunk/DvdMenuXtractor/VobParser.h	2004-10-24 13:24:57 UTC (rev 913)
@@ -160,7 +160,7 @@
 	Demuxer() : m_next(NULL) {}
 	virtual ~Demuxer() {}
 	virtual void ProcessVideoStream(uint8_t* buff, uint32_t size) {}
-	virtual void ProcessAudioStream(uint8_t* buff, uint32_t size) {}
+	virtual void ProcessAudioStream(uint8_t* buff, uint32_t size, uint8_t streamID) {}
 	virtual void ProcessVOBStream(uint8_t* buff, uint32_t size) {}
 	virtual void ProcessAC3Stream(uint8_t* buff, uint32_t size, uint8_t streamID) {}
 	virtual void ProcessLPCMStream(uint8_t* buff, uint32_t size, uint8_t streamID) {}
@@ -348,6 +348,16 @@
 		}		
 	}
 
+	void ProcessAudioStream(uint8_t* buff, uint32_t size, uint8_t streamID)
+	{
+		Demuxer* demuxCursor = m_demuxerRoot;
+		while(demuxCursor)
+		{
+			demuxCursor->ProcessAudioStream(buff,size, streamID);
+			demuxCursor = demuxCursor->m_next;
+		}		
+	}
+
 	void ProcessAC3Stream(uint8_t* buff, uint32_t size, uint8_t streamID)
 	{
 		Demuxer* demuxCursor = m_demuxerRoot;
@@ -496,7 +506,7 @@
 		m_cid->hasVideo = true;
 	}
 
-	void ProcessAudioStream(uint8_t* buff, uint32_t size)
+	void ProcessAudioStream(uint8_t* buff, uint32_t size, uint8_t streamID)
 	{
 		m_cid->hasAudio = true;
 	}
@@ -541,7 +551,7 @@
 	PES_header_data_content pes_header_data_content;
 protected:
 	void ParseNavPacket();
-	void ParseAudioPacket();
+	void ParseAudioPacket(uint8_t StreamID);
 	void ParseVideoPacket();
 	void ParsePrivateStream1();
 	void ParsePrivateStream2();
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.