Author: robux4
Date: 2005-01-05 17:51:05 +0300 (Wed, 05 Jan 2005)
New Revision: 1007
Modified:
trunk/DvdMenuXtractor/DvdMenuXtractor.cpp
trunk/DvdMenuXtractor/README.txt
Log:
DMX: prepare the infinite cell handling
Modified: trunk/DvdMenuXtractor/DvdMenuXtractor.cpp
===================================================================
--- trunk/DvdMenuXtractor/DvdMenuXtractor.cpp 2005-01-05 14:14:41 UTC (rev 1006)
+++ trunk/DvdMenuXtractor/DvdMenuXtractor.cpp 2005-01-05 14:51:05 UTC (rev 1007)
@@ -1011,9 +1011,24 @@
else
XmlFile.AddLine(IndentString(lvl)+wxString::Format("<!-- Program %sCell CN#%d -->",(cell_num==entry_cell_num)?"Entry ":"", cell_num));
- if (cell.still_time == 0xFF)
+ if (cell.still_time == 0xFF) {
XmlFile.AddLine(IndentString(lvl)+"<!-- Infinite loop Still Cell -->");
- else if (cell.still_time != 0)
+
+ // output an additional tag to specify this is cell should loop infinitely
+ // post-process command, jump to timecode "st_time"
+ XmlFile.AddLine(IndentString(lvl)+"<ChapterProcess>");
+ lvl++;
+ XmlFile.AddLine(IndentString(lvl)+"<ChapterProcessCodecID>0</ChapterProcessCodecID>");
+ XmlFile.AddLine(IndentString(lvl)+"<!-- Post command jump to the cell's start timecode -->");
+ XmlFile.AddLine(IndentString(lvl)+"<ChapterProcessCommand>");
+ lvl++;
+ XmlFile.AddLine(IndentString(lvl)+"<ChapterProcessTime>2</ChapterProcessTime>");
+ XmlFile.AddLine(IndentString(lvl)+"<ChapterProcessData>TODO: COMMAND TO BE DEFINED</ChapterProcessData>");
+ lvl--;
+ XmlFile.AddLine(IndentString(lvl)+"</ChapterProcessCommand>");
+ lvl--;
+ XmlFile.AddLine(IndentString(lvl)+"</ChapterProcess>");
+ } else if (cell.still_time != 0)
XmlFile.AddLine(IndentString(lvl)+wxString::Format("<!-- Still cell (%ds) -->", cell.still_time));
XmlFile.AddLine(IndentString(lvl)+"<ChapterAtom>");
@@ -1027,9 +1042,6 @@
_PrivateCN[4] = cell_num - entry_cell_num + 1; // Number of angles
OutputCodecPrivate(lvl, XmlFile, encodebase64(_PrivateCN,5));
- //_TODO_: handle the vobID/cellID to determine the real timecode of the cells !
- // -> no, done when extracting the content streams, using the same timecode base
-
end_time = st_time + DvdTimecodeToNano(cell.playback_time, cell.still_time);
DisplayTime(lvl, XmlFile, st_time, end_time);
st_time = end_time;
Modified: trunk/DvdMenuXtractor/README.txt
===================================================================
--- trunk/DvdMenuXtractor/README.txt 2005-01-05 14:14:41 UTC (rev 1006)
+++ trunk/DvdMenuXtractor/README.txt 2005-01-05 14:51:05 UTC (rev 1007)
@@ -3,6 +3,7 @@
* make use of the cancel buttons
* store the palette for subs
* verify (and fix) the frame and cluster timecodes from mkvmerge
+* avoid opening .VOB files we know won't exist
* remove the AC3 and MPEG2 decoders from the build
* generate the d2v file ?
* allow skipping DVD parts when extracting (VMG, VTSM, VTS)
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.