[matroska] r913 - trunk/DvdMenuXtractor
[email protected] Sun, 24 Oct 2004 17:24:58 +0400 (MSD)
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();