[matroska] r1016 - trunk/DvdMenuXtractor

[email protected]
Newsgroups gmane.comp.multimedia.matroska.cvs
Message-ID <[email protected]>
Author: robux4
Date: 2005-01-06 17:42:05 +0300 (Thu, 06 Jan 2005)
New Revision: 1016

Modified:
   trunk/DvdMenuXtractor/IFOFile.cpp
Log:
DMX: more pseudo-code for the clean cell handling

Modified: trunk/DvdMenuXtractor/IFOFile.cpp
===================================================================
--- trunk/DvdMenuXtractor/IFOFile.cpp	2005-01-06 13:40:47 UTC (rev 1015)
+++ trunk/DvdMenuXtractor/IFOFile.cpp	2005-01-06 14:42:05 UTC (rev 1016)
@@ -451,27 +451,53 @@
 	{
 		if (m_handle->vmgi_mat)
 		{
-			if (m_handle->vmgi_mat->nr_of_vmgm_audio_streams)
-				m_langAudio.Append(&m_handle->vmgi_mat->vmgm_audio_attr);
-			if (m_handle->vmgi_mat->nr_of_vmgm_subp_streams)
-				m_langSubs.Append(&m_handle->vmgi_mat->vmgm_subp_attr);
+			const vmgi_mat_t &vmgi_mat = *m_handle->vmgi_mat;
+			if (vmgi_mat.nr_of_vmgm_audio_streams)
+				m_langAudio.Append(&vmgi_mat.vmgm_audio_attr);
+			if (vmgi_mat.nr_of_vmgm_subp_streams)
+				m_langSubs.Append(&vmgi_mat.vmgm_subp_attr);
 		}
+
+		// _todo_ handle the list of menu cells with their ID and sectors
+		if (m_handle->menu_c_adt)
+		{
+			// add each cell in a list
+			// order this list according to vob ID, cell ID
+			// for each cell, find the duration (and start time) from all menu PGCs
+		}
 	}
 	else
 	{
 		if (m_handle->vtsi_mat)
 		{
-			if (m_handle->vtsi_mat->nr_of_vtsm_audio_streams)
-				m_langAudio.Append(&m_handle->vtsi_mat->vtsm_audio_attr);
-			if (m_handle->vtsi_mat->nr_of_vtsm_subp_streams)
-				m_langSubs.Append(&m_handle->vtsi_mat->vtsm_subp_attr);
-			
+			const vtsi_mat_t & vtsi_mat = *m_handle->vtsi_mat;
+			if (vtsi_mat.nr_of_vtsm_audio_streams)
+				m_langAudio.Append(&vtsi_mat.vtsm_audio_attr);
+			if (vtsi_mat.nr_of_vtsm_subp_streams)
+				m_langSubs.Append(&vtsi_mat.vtsm_subp_attr);
+
 			uint8_t _stream;
-			for (_stream=0; _stream < m_handle->vtsi_mat->nr_of_vts_audio_streams; _stream++)
-				m_Audio.Append(&m_handle->vtsi_mat->vts_audio_attr[_stream]);
-			for (_stream=0; _stream < m_handle->vtsi_mat->nr_of_vts_subp_streams; _stream++)
-				m_Subs.Append(&m_handle->vtsi_mat->vts_subp_attr[_stream]);
+			for (_stream=0; _stream < vtsi_mat.nr_of_vts_audio_streams; _stream++)
+				m_Audio.Append(&vtsi_mat.vts_audio_attr[_stream]);
+			for (_stream=0; _stream < vtsi_mat.nr_of_vts_subp_streams; _stream++)
+				m_Subs.Append(&vtsi_mat.vts_subp_attr[_stream]);
 		}
+
+		// _todo_ handle the list of menu cells with their ID and sectors
+		if (m_handle->menu_c_adt)
+		{
+			// add each cell in a list
+			// order this list according to vob ID, cell ID
+			// for each cell, find the duration (and start time) from all menu PGCs
+		}
+
+		// _todo_ handle the list of cells with their ID and sectors
+		if (m_handle->vts_c_adt)
+		{
+			// add each cell in a list
+			// order this list according to vob ID, cell ID
+			// for each cell, find the duration (and start time) from all PGCs
+		}
 	}
 }
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.