Re: [Cellar] Matroska Chapters

Dave Rice <[email protected]> Wed, 22 Feb 2017 09:34:35 -0500
Newsgroups gmane.comp.multimedia.matroska.devel
Message-ID <[email protected]>
--===============3132137828317808357==
Content-Type: multipart/alternative;
 boundary="Apple-Mail=_A75AECC0-304E-4148-9A2C-36E751FB1CFA"


--Apple-Mail=_A75AECC0-304E-4148-9A2C-36E751FB1CFA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Hi,

> On Feb 22, 2017, at 8:06 AM, hubblec4 <[email protected]> wrote:
>=20
> Hi all
>=20
> Am 21.02.2017 um 16:37 schrieb Dave Rice:
>> Hi Martin,
>>=20
>>> On Feb 19, 2017, at 8:17 AM, hubblec4 <[email protected] =
<mailto:[email protected]>> wrote:
>>>=20
>>> Hi all
>>>=20
>>> I hope this topic is not too boring and we can improve/implement =
important "use" notes.
>>>=20
>>> In my chapterEditor thread was a topic "chapter.xml from makemkv" =
which generate non-ordered chapters with end time stamps. So far known =
to me there is no splitter which read the end times of non-ordered =
chapters.
>>> In Mosu's new Chapter Editor is it not more possible to set the =
start times equal to the end times.
>>> The DVDMenuXtractor generate ordered chapters without an end time =
stamp.
>>>=20
>>> What is the correct behavior?
>>=20
>> Good point. Is there any purpose to ChapterTimeEnd if the chapters =
are non-ordered?
>=20
> No there is no purpose! But as info it is maybe important.

I thought about this more later. When the playback point is greater than =
or equal to the chapter start time and less than the chapter end time, a =
player could display the title of that chapter. So for instance

chapter1 00:01-00:03
chapter2 00:05-00:07

At 00:02, the player could display that the playback is within chapter1.
At 00:04, the player could display that it it outside a chapter.

If the end times are omitted, then 00:04 would be inferred to be part of =
chapter1.
Perhaps we could define that chapters are ranges rather than points in =
time and that if omitted then the end time is whatever comes first, the =
next sibling chapter start in time or the end of the segment.

> A short description:
> When you create mkv's with makemkv and you need ordered =
editions/chapters, so it is easy to build an ordered editon.
> In practice:=20
> You load such an mkv to Mosu's Chapter Editor(CE), then enable the =
EditionFlagOrdered=3D1 and all fine, cause the end times was allready =
exists. If there are no end times you must enter all end times manually =
(a lot of work).=20
> Mosu's CE has no function to create/calculate ordered end times, but =
my chaperEditor(cE) has such a function.
> An other problem of ordered chapter end times, is the last chapter. =
The end time of the last chapter must be the duration of the video(in =
normal situations), but this info is nowhere strored in a chapter.xml =
(only in an mkv where it is possible to extract the play duration info).

mkvpropedit supports chapter xml with an ordered edition without an end =
time. I use this to create one chapter edition which refers to the =
entire segment, whereas another chapter edition references only part of =
it. So it is like:

<EditionEntry>
    <EditionFlagOrdered>1</EditionFlagOrdered>
    <EditionFlagHidden>0</EditionFlagHidden>
    <EditionFlagDefault>0</EditionFlagDefault>
    <EditionUID>12338659363134957115</EditionUID>
    <ChapterAtom>
      <ChapterTimeStart>00:00:00.000000000</ChapterTimeStart>
      <ChapterFlagHidden>0</ChapterFlagHidden>
      <ChapterFlagEnabled>1</ChapterFlagEnabled>
      <ChapterUID>14022955415078936670</ChapterUID>
      <ChapterDisplay>
        <ChapterString>Full</ChapterString>
        <ChapterLanguage>eng</ChapterLanguage>
      </ChapterDisplay>
    </ChapterAtom>
  </EditionEntry>

Any issue with no ChapterTimeEnd in an ordered edition?

>> Would it be fair to describe ChapterTimeEnd as only relevant to =
playback if EditionFlagOrdered=3D1.
>=20
> Yes it would be fair. Every splitter will ignore this EBML elements.
> But there are more EBML elements which affects that:
> - ChapterTimeEnd
> - SegmentUID
> - SegmentEditionUID
> - the whole ChapProcess=20
> (ChapProcess: I have found it only in DVDMenuXtractor(DMX) output.xml =
files. Without ordered chapters I think it makes not sense, but I'm not =
100% sure)

See above use case: to allow a player to say what chapter the player is =
'within'.

>>> My suggestions are:
>>> Data for non-ordered chapters can be set, but with a warning/info =
that this data will not be used.
>>=20
>> This could be said within the specification. It's a bit much to =
request that all Matroska editors also say it.
>=20
> +1 Such an info is very important(my opinion). All "new" Matroska =
editors can use this info an old one could be updated(or not).
>=20
>>=20
>>> Ordered-chapter end times can be set to "empty", equal or greater as =
the start time but never smaller as the start time.
>>=20
>> That makes sense to me, though is there any meaning of =
ChapterTimeStart =3D ChapterTimeEnd? Is an empty ChapterTimeEnd =
semantically equivalent to ChapterTimeStart =3D ChapterTimeEnd or =
equivalent to ChapterTimeEnd of the last timestamp (or infinity)?
>>=20
>=20
> For the moment is no meaning defined for ChapterTimeStart(CTS) =3D =
ChapterTimeEnd(CTE) but we could/should.
> In pratice such a chapter will be ignored (this makes the =
parsing/splitting process easier).
> But I say that is not good and we lose flexibility.=20
>=20
>=20
>=20
>>> The normal way:=20
>>> End times are greater as the start times. A new virtual timeline use =
this chapter and takes the play duration of this chapter into account.
>>>=20
>>> End time equal to start time:=20
>>> Lav splitter ignores such ordered chapters, cause the play duration =
is 0.
>>=20
>> +1, Having an ordered chapter where ChapterTimeStart =3D =
ChapterTimeEnd should be ignored.
>=20
> Why should such a chapter be ignored? Ok, there is no duration and =
irrelevant for the new virtual timeline, but you can have other info in =
such chapters:
> 1. a deeper ordered chapter where you can find a duration
> 2. ChapProcess can be used=20
> 3. only use as chapter mark
>=20
>=20
>>=20
>>> Furthermore LAV-splitter recognized only Level 1 ordered chapters.
>>=20
>> Is there a use case for hierarchical ordered chapters? I'm not sure =
what a level 2 of an ordered chapter would do? Should an ordered chapter =
be permitted to have an ordered chapter as a child?
>=20
> Yes there are use case's (only in an early VLC version, but not really =
for practice).
> DVDMenuXtractor output.xml for VMG or VTS or the VTSM.
> A hugh topic and to much to discribe here.=20
> When it is ok please download my cE =
http://forum.gleitz.info/attachment.php?attachmentid=3D99288&d=3D148665418=
1 =
<http://forum.gleitz.info/attachment.php?attachmentid=3D99288&d=3D14866541=
81>
> You find in this email a 7zip with DMX.xml files from the Aliens DVD.=20=

>=20
> My cE reads all the XML comments und have a very nice overview about =
the hierarchical Matroska-DVD-Menu structure.
> Then you will see that the level 5 ordered chapters are used for the =
new timeline.
> Cause, all levels between 1 and 4 are reserved for the =
DVD-menu-structure.
> (I have just noticed that DMX.xml files can have a start time stamp =
and an end time stamp with set to 00:00:00.000000000)
>=20
> There are one pratice at the moment. My Matroska Menu Editor:
> When I combine many files of an episode in many editions in a =
menu-start.mkv (all with Chapter-Segment-Linking)
> and I will naviagte through the editions/chapters it is not really =
handy.
> For LAV splitter: In the tray icon you see many editions(thats fine). =
But such an edition(with 20 or more files) has a lot of chapters.=20
> To get a better overview which chapters belong to an episode.mkv I use =
nested chapters.=20
> And therfore is a complex algorithm necessary cause all chapters have =
to be defined twice.
> First chapter (level 1) for the ordering and the new timeline duration =
and only the first chapter of an episode.mkv is visible, all others must =
be set to hidden=3Dtrue.
> Second chapter (level 2) with the same time stamps(at the moment it is =
enough when the start time is defined), which is used as chapter =
mark/jump.
>=20
> Here a link to a small samle with 3 cutted epsiode.mkv files=20
> =
http://forum.videohelp.com/attachments/40602-1487505284/MatroskaMenu_Chapt=
er-Segment-Linking.7z =
<http://forum.videohelp.com/attachments/40602-1487505284/MatroskaMenu_Chap=
ter-Segment-Linking.7z>
> Here an other menu.xml sample.
> =
http://forum.gleitz.info/attachment.php?attachmentid=3D99279&d=3D148568694=
1 =
<http://forum.gleitz.info/attachment.php?attachmentid=3D99279&d=3D14856869=
41>
>=20
> I reported a playback bug of such menu.xml files to VLC forum and it =
was fixed.
> https://forum.videolan.org/viewtopic.php?f=3D2&t=3D137611 =
<https://forum.videolan.org/viewtopic.php?f=3D2&t=3D137611> =20
>=20
>=20
> In the videohelp forum I have discussed this with a member and he his =
the same opinion like me.
>=20
> =
http://forum.videohelp.com/threads/368560-chapterEditor%28OGG-XML-TTXT-m-A=
VCHD-m-editions-mkv-Matroska-Menu%29-names-CLI?p=3D2425793&viewfull=3D1#po=
st2425793 =
<http://forum.videohelp.com/threads/368560-chapterEditor%28OGG-XML-TTXT-m-=
AVCHD-m-editions-mkv-Matroska-Menu%29-names-CLI?p=3D2425793&viewfull=3D1#p=
ost2425793>
>=20
>=20
> A ordered chapter with a valid duration(greater then 0) should not =
have nested-ordered chapters, cause it makes not sense. The duration of =
the nested-ordered chapter is not defined in the parent =
chapter-duration.
>=20
> But for ordered chapters that have a 0 duration or no end time stamp a =
nested-ordered chapter can/should be used.  =20
>=20
>=20
>>=20
>>> For this I have three possible ways in my mind.
>>> 1. Only as chapter mark
>>> The chapter is shown to the user interface and you can jump to this =
point in the timeline. This is the same behaviour like ordered chapters =
from Level 2 and deeper. LAV-splitter ignores the "ordered" state and =
reads the start time only.
>>>=20
>>> 2. Use the ordered times from the nested ordered chapter (I prefer =
this option)
>>> Nested-ordered-endtimes is a topic where I can't find infos. My =
theorie is that such chapters must have then
>>> nested chapters and the first nested chapter start time must be the =
start/end time of the parent chapter.
>>> A splitter should read than the nested-ordered play duration an =
takes into acount.
>>>=20
>>> 3. Endless loop
>>> The frame which correspond to the start time of such a chapter is =
shown endless.
>>> We could simulate a behaviour for menu's like in DVD's/Bluray's. =
Some user option in the player could be prohibited.
>>>=20
>>> Empty end times:
>>> This can be found in DVDMenuXtractor menu.xml output.
>>> In principle we could use the same 3 possibilities here like for =
"End time equal to start time"
>>>=20
>>>=20
>>> Another EBML element which makes not right sense to me, is =
ChapterSegmentEditionUID[6E][BC].
>>> When such an UID is specified, the splitter should play this edition =
from the linked segment.
>>> But an edition have not a start nor an end time!=20
>>> What is with the specified chapter start and end time? This chapter =
duration must than match as a sum of all chapter play durations of the =
linked edition. What is when in the linked edition has chapters with =
linking to other editions?
>>> Or is there an other method in use?
>>=20
>> I've never used ChapterSegmentEditionUID but it does seem valuable. =
The specification is not so clear, but my presumption would be that =
you'd add the ChapterTimeStart of the chapter using =
ChapterSegmentEditionUID to the starting time of the related Segment's =
Edition.
>=20
> (Sorry I don't right understand)
>=20
> The specs say's=20
> "The EditionUID to play from the segment linked in ChapterSegmentUID."
>=20
> A splitter generate the virtual time line but the duration info is not =
available/wrong, or the splitter must calculate it first.
>=20
>=20
>>=20
>>> Thanks for reading and sorry for my bad english.
>>=20
>> No worries. I think there is a lot to discuss regarding chapters. =
Honestly I often go to http://mod16.org/hurfdurf/?p=3D8 =
<http://mod16.org/hurfdurf/?p=3D8> for information about Matroska =
chapters rather than the more official but sparse documentation on =
matroska.org <http://matroska.org/>.
> All my Matroska features in cE comes through very often reading this =
wonderful page.

Then perhaps some of the statements of that page should be included =
within the specification. ;)

>> Perhaps first we could clarify the documentation of the chapter =
elements in the Matroska Schema =
<https://github.com/Matroska-Org/matroska-specification/blob/master/ebml_m=
atroska.xml> and then extend the chapter documentation =
<https://github.com/Matroska-Org/matroska-specification/blob/master/chapte=
rs.md> to give descriptive sections on:
>> - the use of Non-Ordered Chapters
>> - the use of Ordered Chapters
>> - how to handle Chapters that reference external Segments and/or =
Editions
>> - also a definition for the xml expression of chapters
>>=20
>=20
> I will help where I can.
>=20
>=20
> Best regards
> Martin Below

Dave Rice

>=20
>=20
>> Dave Rice
>>=20
>>> Best reagrds
>>> Martin
>>>=20
>>>=20
>>>=20
>>>=20
>>>=20
>>>=20
>>>=20
>>>=20
>>>=20
>>>=20
>>>=20
>>> _______________________________________________
>>> Matroska-devel mailing list
>>> [email protected] =
<mailto:[email protected]>
>>> https://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel =
<https://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel>
>>> Read Matroska-Devel on GMane: =
http://dir.gmane.org/gmane.comp.multimedia.matroska.devel =
<http://dir.gmane.org/gmane.comp.multimedia.matroska.devel>_______________=
________________________________
>>> Cellar mailing list
>>> [email protected] <mailto:[email protected]>
>>> https://www.ietf.org/mailman/listinfo/cellar =
<https://www.ietf.org/mailman/listinfo/cellar>
>>=20
>>=20
>>=20
>> _______________________________________________
>> Cellar mailing list
>> [email protected] <mailto:[email protected]>
>> https://www.ietf.org/mailman/listinfo/cellar =
<https://www.ietf.org/mailman/listinfo/cellar>
>=20
> <DVDMenuXtractor.7z>_______________________________________________
> Matroska-devel mailing list
> [email protected]
> https://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel
> Read Matroska-Devel on GMane: =
http://dir.gmane.org/gmane.comp.multimedia.matroska.devel


--Apple-Mail=_A75AECC0-304E-4148-9A2C-36E751FB1CFA
Content-Transfer-Encoding: quoted-printable
Content-Type: text/html;
	charset=us-ascii

<html><head><meta http-equiv=3D"Content-Type" content=3D"text/html =
charset=3Dus-ascii"></head><body style=3D"word-wrap: break-word; =
-webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" =
class=3D"">Hi,<div class=3D""><br class=3D""><div><blockquote =
type=3D"cite" class=3D""><div class=3D"">On Feb 22, 2017, at 8:06 AM, =
hubblec4 &lt;<a href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a>&gt; wrote:</div><br =
class=3D"Apple-interchange-newline"><div class=3D"">
 =20
    <meta content=3D"text/html; charset=3Dwindows-1252" =
http-equiv=3D"Content-Type" class=3D"">
 =20
  <div bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D""><p class=3D"">Hi =
all<br class=3D"">
    </p>
    <br class=3D"">
    <div class=3D"moz-cite-prefix">Am 21.02.2017 um 16:37 schrieb Dave
      Rice:<br class=3D"">
    </div>
    <blockquote =
cite=3D"mid:[email protected]" =
type=3D"cite" class=3D"">
      <meta http-equiv=3D"Content-Type" content=3D"text/html;
        charset=3Dwindows-1252" class=3D"">
      Hi Martin,
      <div class=3D""><br class=3D"">
        <div class=3D"">
          <blockquote type=3D"cite" class=3D"">
            <div class=3D"">On Feb 19, 2017, at 8:17 AM, hubblec4 &lt;<a =
moz-do-not-send=3D"true" href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a>&gt; wrote:</div>
            <br class=3D"Apple-interchange-newline">
            <div class=3D"">
              <meta content=3D"text/html; charset=3Dwindows-1252" =
http-equiv=3D"Content-Type" class=3D"">
              <div bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D"">
                <div class=3D"moz-text-html" lang=3D"x-western"> Hi =
all<br class=3D"">
                  <br class=3D"">
                  I hope this topic is not too boring and we can
                  improve/implement important "use" notes.<br class=3D"">
                  <br class=3D"">
                  In my chapterEditor thread was a topic "chapter.xml
                  from makemkv" which generate non-ordered chapters with
                  end time stamps. So far known to me there is no
                  splitter which read the end times of non-ordered
                  chapters.<br class=3D"">
                  In Mosu's new Chapter Editor is it not more possible
                  to set the start times equal to the end times.<br =
class=3D"">
                  The DVDMenuXtractor generate ordered chapters without
                  an end time stamp.<br class=3D"">
                  <br class=3D"">
                  What is the correct behavior?<br class=3D"">
                </div>
              </div>
            </div>
          </blockquote>
          <div class=3D""><br class=3D"">
          </div>
          <div class=3D"">Good point. Is there any purpose =
to&nbsp;ChapterTimeEnd if the
            chapters are non-ordered? </div>
        </div>
      </div>
    </blockquote>
    <br class=3D"">
    No there is no purpose! But as info it is maybe important.<br =
class=3D""></div></div></blockquote><div><br class=3D""></div><div>I =
thought about this more later. When the playback point is greater than =
or equal to the chapter start time and less than the chapter end time, a =
player could display the title of that chapter. So for =
instance</div><div><br class=3D""></div><div>chapter1 =
00:01-00:03</div><div>chapter2 00:05-00:07</div><div><br =
class=3D""></div><div>At 00:02, the player could display that the =
playback is within chapter1.</div><div>At 00:04, the player could =
display that it it outside a chapter.</div><div><br =
class=3D""></div><div>If the end times are omitted, then 00:04 would be =
inferred to be part of chapter1.</div><div>Perhaps we could define that =
chapters are ranges rather than points in time and that if omitted then =
the end time is whatever comes first, the next sibling chapter start in =
time or the end of the segment.</div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D""><div bgcolor=3D"#FFFFFF" =
text=3D"#000000" class=3D"">
    A short description:<br class=3D"">
    When you create mkv's with makemkv and you need ordered
    editions/chapters, so it is easy to build an ordered editon.<br =
class=3D"">
    In practice: <br class=3D"">
    You load such an mkv to Mosu's Chapter Editor(CE), then enable the
    EditionFlagOrdered=3D1 and all fine, cause the end times was =
allready
    exists. If there are no end times you must enter all end times
    manually (a lot of work). <br class=3D"">
    Mosu's CE has no function to create/calculate ordered end times, but
    my chaperEditor(cE) has such a function.<br class=3D"">
    An other problem of ordered chapter end times, is the last chapter.
    The end time of the last chapter must be the duration of the
    video(in normal situations), but this info is nowhere strored in a
    chapter.xml (only in an mkv where it is possible to extract the play
    duration info).<br class=3D""></div></div></blockquote><div><br =
class=3D""></div><div>mkvpropedit supports chapter xml with an ordered =
edition without an end time. I use this to create one chapter edition =
which refers to the entire segment, whereas another chapter edition =
references only part of it. So it is like:</div><div><br =
class=3D""></div><div>&lt;EditionEntry&gt;<br class=3D"">&nbsp; =
&nbsp;&nbsp;&lt;EditionFlagOrdered&gt;1&lt;/EditionFlagOrdered&gt;<br =
class=3D"">&nbsp; =
&nbsp;&nbsp;&lt;EditionFlagHidden&gt;0&lt;/EditionFlagHidden&gt;<br =
class=3D"">&nbsp; =
&nbsp;&nbsp;&lt;EditionFlagDefault&gt;0&lt;/EditionFlagDefault&gt;<br =
class=3D"">&nbsp; =
&nbsp;&nbsp;&lt;EditionUID&gt;12338659363134957115&lt;/EditionUID&gt;<br =
class=3D"">&nbsp; &nbsp;&nbsp;&lt;ChapterAtom&gt;<br class=3D"">&nbsp; =
&nbsp; =
&nbsp;&nbsp;&lt;ChapterTimeStart&gt;00:00:00.000000000&lt;/ChapterTimeStar=
t&gt;<br class=3D"">&nbsp; &nbsp; =
&nbsp;&nbsp;&lt;ChapterFlagHidden&gt;0&lt;/ChapterFlagHidden&gt;<br =
class=3D"">&nbsp; &nbsp; =
&nbsp;&nbsp;&lt;ChapterFlagEnabled&gt;1&lt;/ChapterFlagEnabled&gt;<br =
class=3D"">&nbsp; &nbsp; =
&nbsp;&nbsp;&lt;ChapterUID&gt;14022955415078936670&lt;/ChapterUID&gt;<br =
class=3D"">&nbsp; &nbsp; &nbsp;&nbsp;&lt;ChapterDisplay&gt;<br =
class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp;&nbsp;&lt;ChapterString&gt;Full&lt;/ChapterString&gt;<br =
class=3D"">&nbsp; &nbsp; &nbsp; =
&nbsp;&nbsp;&lt;ChapterLanguage&gt;eng&lt;/ChapterLanguage&gt;<br =
class=3D"">&nbsp; &nbsp; &nbsp;&nbsp;&lt;/ChapterDisplay&gt;<br =
class=3D"">&nbsp; &nbsp;&nbsp;&lt;/ChapterAtom&gt;<br =
class=3D"">&nbsp;&nbsp;&lt;/EditionEntry&gt;</div><div><br =
class=3D""></div><div>Any issue with no ChapterTimeEnd in an ordered =
edition?</div><br class=3D""><blockquote type=3D"cite" class=3D""><div =
class=3D""><div bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D"">
    <blockquote =
cite=3D"mid:[email protected]" =
type=3D"cite" class=3D"">
      <div class=3D"">
        <div class=3D"">
          <div class=3D"">Would it be fair to =
describe&nbsp;ChapterTimeEnd as only
            relevant to playback if&nbsp;EditionFlagOrdered=3D1.</div>
        </div>
      </div>
    </blockquote>
    <br class=3D"">
    Yes it would be fair. Every splitter will ignore this EBML =
elements.<br class=3D"">
    But there are more EBML elements w<span id=3D"result_box" =
class=3D"short_text" lang=3D"en"><span class=3D"">hich affects that:<br =
class=3D"">
        - ChapterTimeEnd<br class=3D"">
        - SegmentUID<br class=3D"">
        - SegmentEditionUID<br class=3D"">
        - the whole ChapProcess <br class=3D"">
        (ChapProcess: I have found it only in DVDMenuXtractor(DMX)
        output.xml files. Without ordered chapters I think it makes not
        sense, but I'm not 100% =
sure)</span></span></div></div></blockquote><div><br =
class=3D""></div><div>See above use case: to allow a player to say what =
chapter the player is 'within'.</div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D""><div bgcolor=3D"#FFFFFF" =
text=3D"#000000" class=3D""><blockquote =
cite=3D"mid:[email protected]" =
type=3D"cite" class=3D""><div class=3D""><div class=3D"">
          <blockquote type=3D"cite" class=3D"">
            <div class=3D"">
              <div bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D"">
                <div class=3D"moz-text-html" lang=3D"x-western"> My
                  suggestions are:<br class=3D"">
                  Data for non-ordered chapters can be set, but with a
                  warning/info that this data will not be used.<br =
class=3D"">
                </div>
              </div>
            </div>
          </blockquote>
          <div class=3D""><br class=3D"">
          </div>
          <div class=3D"">This could be said within the specification. =
It's a bit
            much to request that all Matroska editors also say it.</div>
        </div>
      </div>
    </blockquote>
    <br class=3D"">
    +1 Such an info is very important(my opinion). All "new" Matroska
    editors can use this info an old one could be updated(or not).<br =
class=3D"">
    <br class=3D"">
    <blockquote =
cite=3D"mid:[email protected]" =
type=3D"cite" class=3D"">
      <div class=3D"">
        <div class=3D""><br class=3D"">
          <blockquote type=3D"cite" class=3D"">
            <div class=3D"">
              <div bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D"">
                <div class=3D"moz-text-html" lang=3D"x-western">
                  Ordered-chapter end times can be set to "empty", equal
                  or greater as the start time but never smaller as the
                  start time.<br class=3D"">
                </div>
              </div>
            </div>
          </blockquote>
          <div class=3D""><br class=3D"">
          </div>
          <div class=3D"">That makes sense to me, though is there any =
meaning of
            ChapterTimeStart =3D ChapterTimeEnd? Is an empty
            ChapterTimeEnd semantically equivalent to ChapterTimeStart =3D=

            ChapterTimeEnd or equivalent to ChapterTimeEnd of the last
            timestamp (or infinity)?</div>
          <br class=3D"">
        </div>
      </div>
    </blockquote>
    <br class=3D"">
    For the moment is no meaning defined for ChapterTimeStart(CTS) =3D
    ChapterTimeEnd(CTE) but we could/should.<br class=3D"">
    In pratice such a chapter will be ignored (this makes the
    parsing/splitting process easier).<br class=3D"">
    But I say that is not good and we lose flexibility. <br class=3D"">
    <br class=3D"">
    <br class=3D"">
    <br class=3D"">
    <blockquote =
cite=3D"mid:[email protected]" =
type=3D"cite" class=3D"">
      <div class=3D"">
        <div class=3D"">
          <blockquote type=3D"cite" class=3D"">
            <div class=3D"">
              <div bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D"">
                <div class=3D"moz-text-html" lang=3D"x-western"> The =
normal
                  way: <br class=3D"">
                  End times are greater as the start times. A new
                  virtual timeline use this chapter and takes the play
                  duration of this chapter into account.<br class=3D"">
                  <br class=3D"">
                  End time equal to start time: <br class=3D"">
                  Lav splitter ignores such ordered chapters, cause the
                  play duration is 0.<br class=3D"">
                </div>
              </div>
            </div>
          </blockquote>
          <div class=3D""><br class=3D"">
          </div>
          <div class=3D"">+1, Having an ordered chapter =
where&nbsp;ChapterTimeStart =3D
            ChapterTimeEnd should be ignored.</div>
        </div>
      </div>
    </blockquote>
    <br class=3D"">
    Why should such a chapter be ignored? Ok, there is no duration and
    irrelevant for the new virtual timeline, but you can have other info
    in such chapters:<br class=3D"">
    1. a deeper ordered chapter where you can find a duration<br =
class=3D"">
    2. ChapProcess can be used <br class=3D"">
    3. only use as chapter mark<br class=3D"">
    <br class=3D"">
    <br class=3D"">
    <blockquote =
cite=3D"mid:[email protected]" =
type=3D"cite" class=3D"">
      <div class=3D"">
        <div class=3D""><br class=3D"">
          <blockquote type=3D"cite" class=3D"">
            <div class=3D"">
              <div bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D"">
                <div class=3D"moz-text-html" lang=3D"x-western"> =
Furthermore
                  LAV-splitter recognized only Level 1 ordered =
chapters.<br class=3D"">
                </div>
              </div>
            </div>
          </blockquote>
          <div class=3D""><br class=3D"">
          </div>
          <div class=3D"">Is there a use case for hierarchical ordered =
chapters?
            I'm not sure what a level 2 of an ordered chapter would do?
            Should an ordered chapter be permitted to have an ordered
            chapter as a child?</div>
        </div>
      </div>
    </blockquote>
    <br class=3D"">
    Yes there are use case's (only in an early VLC version, but not
    really for practice).<br class=3D"">
    DVDMenuXtractor output.xml for VMG or VTS or the VTSM.<br class=3D"">
    A hugh topic and to much to discribe here. <br class=3D"">
    When it is ok please download my cE
<a class=3D"moz-txt-link-freetext" =
href=3D"http://forum.gleitz.info/attachment.php?attachmentid=3D99288&amp;d=
=3D1486654181">http://forum.gleitz.info/attachment.php?attachmentid=3D9928=
8&amp;d=3D1486654181</a><br class=3D"">
    You find in this email a 7zip with <span id=3D"result_box" =
class=3D"short_text" lang=3D"en"><span class=3D"">DMX.xml files from the
        Aliens DVD. <br class=3D"">
        <br class=3D"">
        My cE reads all the XML comments und have a very nice overview
        about the </span></span>hierarchical Matroska-DVD-Menu
    structure.<br class=3D"">
    Then you will see that the level 5 ordered chapters are used for the
    new timeline.<br class=3D"">
    Cause, all levels between 1 and 4 are reserved for the
    DVD-menu-structure.<br class=3D"">
    (I have just noticed that DMX.xml files can have a start time stamp
    and an end time stamp with set to 00:00:00.000000000)<br class=3D"">
    <br class=3D"">
    There are one pratice at the moment. My Matroska Menu Editor:<br =
class=3D"">
    When I combine many files of an episode in many editions in a
    menu-start.mkv (all with Chapter-Segment-Linking)<br class=3D"">
    and I will naviagte <span class=3D"gt-baf-word-clickable">through =
the
      editions/chapters it is not really handy.<br class=3D"">
      For LAV splitter: In the tray icon you see many editions(thats
      fine). But such an edition(with 20 or more files) has a lot of
      chapters. <br class=3D"">
      To get a better overview which chapters belong to an episode.mkv I
      use nested chapters. <br class=3D"">
      And therfore is a complex algorithm necessary cause all chapters
      have to be defined twice.<br class=3D"">
      First chapter (level 1) for the ordering and the new timeline
      duration and only the first chapter of an episode.mkv is visible,
      all others must be set to hidden=3Dtrue.<br class=3D"">
      Second chapter (level 2) with the same time stamps(at the moment
      it is enough when the start time is defined), which is used as
      chapter mark/jump.<br class=3D"">
      <br class=3D"">
      Here a link to a small samle with 3 cutted epsiode.mkv files <br =
class=3D"">
<a class=3D"moz-txt-link-freetext" =
href=3D"http://forum.videohelp.com/attachments/40602-1487505284/MatroskaMe=
nu_Chapter-Segment-Linking.7z">http://forum.videohelp.com/attachments/4060=
2-1487505284/MatroskaMenu_Chapter-Segment-Linking.7z</a><br class=3D"">
      Here an other menu.xml sample.<br class=3D"">
<a class=3D"moz-txt-link-freetext" =
href=3D"http://forum.gleitz.info/attachment.php?attachmentid=3D99279&amp;d=
=3D1485686941">http://forum.gleitz.info/attachment.php?attachmentid=3D9927=
9&amp;d=3D1485686941</a><br class=3D"">
      <br class=3D"">
      I reported a playback bug of such menu.xml files to VLC forum and
      it was fixed.<br class=3D"">
      <a class=3D"moz-txt-link-freetext" =
href=3D"https://forum.videolan.org/viewtopic.php?f=3D2&amp;t=3D137611">htt=
ps://forum.videolan.org/viewtopic.php?f=3D2&amp;t=3D137611</a>&nbsp; <br =
class=3D"">
    </span><br class=3D"">
    <br class=3D"">
    In the videohelp forum I have discussed this with a member and he
    his the same opinion like me.<br class=3D"">
    <br class=3D"">
<a class=3D"moz-txt-link-freetext" =
href=3D"http://forum.videohelp.com/threads/368560-chapterEditor%28OGG-XML-=
TTXT-m-AVCHD-m-editions-mkv-Matroska-Menu%29-names-CLI?p=3D2425793&amp;vie=
wfull=3D1#post2425793">http://forum.videohelp.com/threads/368560-chapterEd=
itor%28OGG-XML-TTXT-m-AVCHD-m-editions-mkv-Matroska-Menu%29-names-CLI?p=3D=
2425793&amp;viewfull=3D1#post2425793</a><br class=3D"">
    <br class=3D"">
    <br class=3D"">
    A ordered chapter with a valid duration(greater then 0) should not
    have nested-ordered chapters, cause it makes not sense. The duration
    of the nested-ordered chapter is not defined in the parent
    chapter-duration.<br class=3D"">
    <br class=3D"">
    But for ordered chapters that have a 0 duration or no end time stamp
    a nested-ordered chapter can/should be used. &nbsp; <br class=3D"">
    <br class=3D"">
    <br class=3D"">
    <blockquote =
cite=3D"mid:[email protected]" =
type=3D"cite" class=3D"">
      <div class=3D"">
        <div class=3D""><br class=3D"">
          <blockquote type=3D"cite" class=3D"">
            <div class=3D"">
              <div bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D"">
                <div class=3D"moz-text-html" lang=3D"x-western"> For =
this I
                  have three possible ways in my mind.<br class=3D"">
                  1. Only as chapter mark<br class=3D"">
                  The chapter is shown to the user interface and you can
                  jump to this point in the timeline. This is the same
                  behaviour like ordered chapters from Level 2 and
                  deeper. LAV-splitter ignores the "ordered" state and
                  reads the start time only.<br class=3D"">
                  <br class=3D"">
                  2. Use the ordered times from the nested ordered
                  chapter (I prefer this option)<br class=3D"">
                  Nested-ordered-endtimes is a topic where I can't find
                  infos. My theorie is that such chapters must have =
then<br class=3D"">
                  nested chapters and the first nested chapter start
                  time must be the start/end time of the parent =
chapter.<br class=3D"">
                  A splitter should read than the nested-ordered play
                  duration an takes into acount.<br class=3D"">
                  <br class=3D"">
                  3. Endless loop<br class=3D"">
                  The frame which correspond to the start time of such a
                  chapter is shown endless.<br class=3D"">
                  We could simulate a behaviour for menu's like in
                  DVD's/Bluray's. Some user option in the player could
                  be prohibited.<br class=3D"">
                  <br class=3D"">
                  Empty end times:<br class=3D"">
                  This can be found in DVDMenuXtractor menu.xml =
output.<br class=3D"">
                  <span id=3D"result_box" class=3D"" lang=3D"en"><span =
class=3D"">In principle we could use the same 3
                      possibilities here like for "</span></span><span =
id=3D"result_box" class=3D"" lang=3D"en"><span class=3D"">End
                      time equal to start time"<br class=3D"">
                      <br class=3D"">
                      <br class=3D"">
                      Another EBML element which makes not right sense
                      to me, is =
</span></span>ChapterSegmentEditionUID[6E][BC].<br class=3D"">
                  When such an UID is specified, the splitter should
                  play this edition from the linked segment.<br =
class=3D"">
                  But an edition have not a start nor an end time! <br =
class=3D"">
                  What is with the specified chapter start and end time?
                  This chapter duration must than match as a sum of all
                  chapter play durations of the linked edition. What is
                  when in the linked edition has chapters with linking
                  to other editions?<br class=3D"">
                  Or is there an other method in use?<br class=3D"">
                </div>
              </div>
            </div>
          </blockquote>
          <div class=3D""><br class=3D"">
          </div>
          <div class=3D"">I've never =
used&nbsp;ChapterSegmentEditionUID&nbsp;but it does seem
            valuable. The specification is not so clear, but my
            presumption would be that you'd add the ChapterTimeStart of
            the chapter using ChapterSegmentEditionUID to the starting
            time of the related Segment's Edition.</div>
        </div>
      </div>
    </blockquote>
    <br class=3D"">
    (Sorry I don't right understand)<br class=3D"">
    <br class=3D"">
    The specs say's <br class=3D"">
    "The EditionUID to play from the segment linked in
    ChapterSegmentUID."<br class=3D"">
    <br class=3D"">
    A splitter generate the virtual time line but the duration info is
    not available/wrong, or the splitter must calculate it first.<br =
class=3D"">
    <br class=3D"">
    <br class=3D"">
    <blockquote =
cite=3D"mid:[email protected]" =
type=3D"cite" class=3D"">
      <div class=3D"">
        <div class=3D""><br class=3D"">
          <blockquote type=3D"cite" class=3D"">
            <div class=3D"">
              <div bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D"">
                <div class=3D"moz-text-html" lang=3D"x-western">Thanks =
for
                  reading and sorry for my bad english.<br class=3D"">
                </div>
              </div>
            </div>
          </blockquote>
          <div class=3D""><br class=3D"">
          </div>
          <div class=3D"">No worries. I think there is a lot to discuss =
regarding
            chapters. Honestly I often go to&nbsp;<a =
moz-do-not-send=3D"true" href=3D"http://mod16.org/hurfdurf/?p=3D8" =
class=3D"">http://mod16.org/hurfdurf/?p=3D8</a>&nbsp;for
            information about Matroska chapters rather than the more
            official but sparse documentation on <a =
moz-do-not-send=3D"true" href=3D"http://matroska.org/" =
class=3D"">matroska.org</a>.</div>
        </div>
      </div>
    </blockquote>
    All my Matroska features in cE comes through very often reading this
    wonderful page.<br class=3D""></div></div></blockquote><div><br =
class=3D""></div><div>Then perhaps some of the statements of that page =
should be included within the specification. ;)</div><br =
class=3D""><blockquote type=3D"cite" class=3D""><div class=3D""><div =
bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D"">
    <blockquote =
cite=3D"mid:[email protected]" =
type=3D"cite" class=3D"">
      <div class=3D"">
        <div class=3D"">
          <div class=3D""> Perhaps first we could clarify the =
documentation of the
            chapter elements in the&nbsp;<a moz-do-not-send=3D"true" =
href=3D"https://github.com/Matroska-Org/matroska-specification/blob/master=
/ebml_matroska.xml" class=3D"">Matroska Schema</a>&nbsp;and then extend =
the&nbsp;<a moz-do-not-send=3D"true" =
href=3D"https://github.com/Matroska-Org/matroska-specification/blob/master=
/chapters.md" class=3D"">chapter documentation</a>&nbsp;to give =
descriptive
            sections on:</div>
          <div class=3D"">- the use of Non-Ordered Chapters</div>
          <div class=3D"">- the use of Ordered Chapters</div>
          <div class=3D"">- how to handle Chapters that reference =
external Segments
            and/or Editions</div>
          <div class=3D"">- also a definition for the xml expression of =
chapters</div>
          <div class=3D""><br class=3D"">
          </div>
        </div>
      </div>
    </blockquote>
    <br class=3D"">
    I will help where I can.<br class=3D"">
    <br class=3D"">
    <br class=3D"">
    Best regards<br class=3D"">
    Martin Below<br class=3D""></div></div></blockquote><div><br =
class=3D""></div><div>Dave Rice</div><br class=3D""><blockquote =
type=3D"cite" class=3D""><div class=3D""><div bgcolor=3D"#FFFFFF" =
text=3D"#000000" class=3D"">
    <br class=3D"">
    <br class=3D"">
    <blockquote =
cite=3D"mid:[email protected]" =
type=3D"cite" class=3D"">
      <div class=3D"">
        <div class=3D"">
          <div class=3D"">Dave Rice</div>
          <br class=3D"">
          <blockquote type=3D"cite" class=3D"">
            <div class=3D"">
              <div bgcolor=3D"#FFFFFF" text=3D"#000000" class=3D"">
                <div class=3D"moz-text-html" lang=3D"x-western"> Best
                  reagrds<br class=3D"">
                  Martin<br class=3D"">
                  <br class=3D"">
                  <br class=3D"">
                  <br class=3D"">
                  <br class=3D"">
                  <br class=3D"">
                  <br class=3D"">
                  <br class=3D"">
                  <br class=3D"">
                  <br class=3D"">
                </div>
                <br class=3D"">
                <fieldset class=3D"mimeAttachmentHeader"></fieldset>
                <br class=3D"">
                <div class=3D"moz-text-plain" wrap=3D"true" =
graphical-quote=3D"true" style=3D"font-family: -moz-fixed;
                  font-size: 14px;" lang=3D"x-western">
                  <pre class=3D"" =
wrap=3D"">_______________________________________________
Matroska-devel mailing list
<a moz-do-not-send=3D"true" class=3D"moz-txt-link-abbreviated" =
href=3D"mailto:[email protected]">[email protected]=
roska.org</a>
<a moz-do-not-send=3D"true" class=3D"moz-txt-link-freetext" =
href=3D"https://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel=
">https://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel</a>
Read Matroska-Devel on GMane: <a moz-do-not-send=3D"true" =
class=3D"moz-txt-link-freetext" =
href=3D"http://dir.gmane.org/gmane.comp.multimedia.matroska.devel">http://=
dir.gmane.org/gmane.comp.multimedia.matroska.devel</a></pre>
                </div>
              </div>
              _______________________________________________<br =
class=3D"">
              Cellar mailing list<br class=3D"">
              <a moz-do-not-send=3D"true" href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a><br class=3D"">
              <a class=3D"moz-txt-link-freetext" =
href=3D"https://www.ietf.org/mailman/listinfo/cellar">https://www.ietf.org=
/mailman/listinfo/cellar</a><br class=3D"">
            </div>
          </blockquote>
        </div>
        <br class=3D"">
      </div>
      <br class=3D"">
      <fieldset class=3D"mimeAttachmentHeader"></fieldset>
      <br class=3D"">
      <pre wrap=3D"" =
class=3D"">_______________________________________________
Cellar mailing list
<a class=3D"moz-txt-link-abbreviated" =
href=3D"mailto:[email protected]">[email protected]</a>
<a class=3D"moz-txt-link-freetext" =
href=3D"https://www.ietf.org/mailman/listinfo/cellar">https://www.ietf.org=
/mailman/listinfo/cellar</a>
</pre>
    </blockquote>
    <br class=3D"">
  </div>

<span =
id=3D"cid:[email protected]">&lt;DVDMenuXtr=
actor.7z&gt;</span>_______________________________________________<br =
class=3D"">Matroska-devel mailing list<br class=3D""><a =
href=3D"mailto:[email protected]" =
class=3D"">[email protected]</a><br =
class=3D"">https://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-de=
vel<br class=3D"">Read Matroska-Devel on GMane: =
http://dir.gmane.org/gmane.comp.multimedia.matroska.devel</div></blockquot=
e></div><br class=3D""></div></body></html>=

--Apple-Mail=_A75AECC0-304E-4148-9A2C-36E751FB1CFA--

--===============3132137828317808357==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Matroska-devel mailing list
[email protected]
https://lists.matroska.org/cgi-bin/mailman/listinfo/matroska-devel
Read Matroska-Devel on GMane: http://dir.gmane.org/gmane.comp.multimedia.matroska.devel
--===============3132137828317808357==--