[matroska] r967 - trunk/DvdMenuXtractor
[email protected] Sun, 12 Dec 2004 17:44:11 +0300 (MSK)
Newsgroups
gmane.comp.multimedia.matroska.cvs
Message-ID
<[email protected] >
Author: robux4
Date: 2004-12-12 17:44:10 +0300 (Sun, 12 Dec 2004)
New Revision: 967
Modified:
trunk/DvdMenuXtractor/VobParser.cpp
Log:
fix timecode files on gaps
Modified: trunk/DvdMenuXtractor/VobParser.cpp
===================================================================
--- trunk/DvdMenuXtractor/VobParser.cpp 2004-12-12 14:06:21 UTC (rev 966)
+++ trunk/DvdMenuXtractor/VobParser.cpp 2004-12-12 14:44:10 UTC (rev 967)
@@ -848,8 +848,11 @@
m_TimecodeFile = GetTimecodeFile();
if (start_time > m_last_end_timecode)
{
+ if (m_last_end_timecode > m_start_timecode)
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_last_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "gap,%lf\n", (start_time - m_last_end_timecode) / 1000.0);
+ m_start_timecode = start_time;
}
m_last_start_timecode = start_time;
m_last_end_timecode = end_time;
@@ -860,8 +863,11 @@
m_TimecodeFile = GetTimecodeFile();
if (start_time > m_last_end_timecode)
{
+ if (m_last_end_timecode > m_start_timecode)
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_last_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "gap,%lf\n", (start_time - m_last_end_timecode) / 1000.0);
+ m_start_timecode = start_time;
}
m_last_start_timecode = start_time;
m_last_end_timecode = end_time;
@@ -872,8 +878,11 @@
m_TimecodeFile = GetTimecodeFile();
if (start_time > m_last_end_timecode)
{
- fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_last_start_timecode) / 1000.0);
+ if (m_last_end_timecode > m_start_timecode)
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "gap,%lf\n", (start_time - m_last_end_timecode) / 1000.0);
+ m_start_timecode = start_time;
}
m_last_start_timecode = start_time;
m_last_end_timecode = end_time;
@@ -889,8 +898,11 @@
m_TimecodeFile = GetTimecodeFile();
if (start_time > m_last_end_timecode)
{
+ if (m_last_end_timecode > m_start_timecode)
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_last_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "gap,%lf\n", (start_time - m_last_end_timecode) / 1000.0);
+ m_start_timecode = start_time;
}
m_last_start_timecode = start_time;
m_last_end_timecode = end_time;
@@ -923,8 +935,9 @@
// handle ending of the previous cell
if (m_last_end_timecode < m_end_timecode)
{
+ if (m_last_end_timecode > m_start_timecode)
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "gap,%lf\n", (m_end_timecode - m_last_end_timecode) / 1000.0);
- m_last_start_timecode = start_timecode;
}
else
{
@@ -935,6 +948,7 @@
m_start_timecode = start_timecode;
m_end_timecode = start_timecode + duration;
m_last_end_timecode = start_timecode;
+ m_last_start_timecode = start_timecode;
fprintf(m_TimecodeFile, "\n# VOB %d Cell %d\n", vob_id, cell_id);
}
@@ -946,8 +960,9 @@
// handle ending of the previous cell
if (m_last_end_timecode < m_end_timecode)
{
+ if (m_last_end_timecode > m_start_timecode)
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "gap,%lf\n", (m_end_timecode - m_last_end_timecode) / 1000.0);
- m_last_start_timecode = start_timecode;
}
else
{
@@ -958,6 +973,7 @@
m_start_timecode = start_timecode;
m_end_timecode = start_timecode + duration;
m_last_end_timecode = start_timecode;
+ m_last_start_timecode = start_timecode;
fprintf(m_TimecodeFile, "\n# VOB %d Cell %d\n", vob_id, cell_id);
}
@@ -969,8 +985,9 @@
// handle ending of the previous cell
if (m_last_end_timecode < m_end_timecode)
{
+ if (m_last_end_timecode > m_start_timecode)
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "gap,%lf\n", (m_end_timecode - m_last_end_timecode) / 1000.0);
- m_last_start_timecode = start_timecode;
}
else
{
@@ -981,6 +998,7 @@
m_start_timecode = start_timecode;
m_end_timecode = start_timecode + duration;
m_last_end_timecode = start_timecode;
+ m_last_start_timecode = start_timecode;
fprintf(m_TimecodeFile, "\n# VOB %d Cell %d\n", vob_id, cell_id);
}
@@ -1000,8 +1018,9 @@
// handle ending of the previous cell
if (m_last_end_timecode < m_end_timecode)
{
+ if (m_last_end_timecode > m_start_timecode)
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "gap,%lf\n", (m_end_timecode - m_last_end_timecode) / 1000.0);
- m_last_start_timecode = start_timecode;
}
else
{
@@ -1012,6 +1031,7 @@
m_start_timecode = start_timecode;
m_end_timecode = start_timecode + duration;
m_last_end_timecode = start_timecode;
+ m_last_start_timecode = start_timecode;
fprintf(m_TimecodeFile, "\n# VOB %d Cell %d\n", vob_id, cell_id);
}
@@ -1031,6 +1051,8 @@
// handle ending of the previous cell
if (m_last_end_timecode < m_end_timecode)
{
+ if (m_last_end_timecode > m_start_timecode)
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "gap,%lf\n", (m_end_timecode - m_last_end_timecode) / 1000.0);
}
else
@@ -1047,6 +1069,8 @@
// handle ending of the previous cell
if (m_last_end_timecode < m_end_timecode)
{
+ if (m_last_end_timecode > m_start_timecode)
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "gap,%lf\n", (m_end_timecode - m_last_end_timecode) / 1000.0);
}
else
@@ -1063,6 +1087,8 @@
// handle ending of the previous cell
if (m_last_end_timecode < m_end_timecode)
{
+ if (m_last_end_timecode > m_start_timecode)
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "gap,%lf\n", (m_end_timecode - m_last_end_timecode) / 1000.0);
}
else
@@ -1079,6 +1105,8 @@
// handle ending of the previous cell
if (m_last_end_timecode < m_end_timecode)
{
+ if (m_last_end_timecode > m_start_timecode)
+ fprintf(m_TimecodeFile, "%lf\n", (m_last_end_timecode - m_start_timecode) / 1000.0);
fprintf(m_TimecodeFile, "gap,%lf\n", (m_end_timecode - m_last_end_timecode) / 1000.0);
}
else