acolwell/mse-tools

mse_webm_remuxer - Parser error on video created with libvpx v1.7.0

Closed this issue · 3 comments

d3im commented

With a new version of libvpx remuxer gives me an error:

OnBinary() : Unexpected element Tags
Parser error

There is new tag in dump:

<EBMLHeader type="list" offset="0">
  <EBMLVersion type="uint" value="1"/>
  <EBMLReadVersion type="uint" value="1"/>
  <EBMLMaxIDLength type="uint" value="4"/>
  <EBMLMaxSizeLength type="uint" value="8"/>
  <DocType type="string" value="webm"/>
  <DocTypeVersion type="uint" value="4"/>
  <DocTypeReadVersion type="uint" value="2"/>
</EBMLHeader>
<Segment type="list" offset="43">
  <SeekHead type="list" offset="55">
    <Seek type="list" offset="61">
      <SeekID type="uint" id_name="Info" value="357149030"/>
      <SeekPosition type="uint" value="229"/>
    </Seek>
    <Seek type="list" offset="75">
      <SeekID type="uint" id_name="Tracks" value="374648427"/>
      <SeekPosition type="uint" value="291"/>
    </Seek>
|   <Seek type="list" offset="90">
|     <SeekID type="uint" id_name="Tags" value="307544935"/>
|     <SeekPosition type="uint" value="465"/>
|    </Seek>
    <Seek type="list" offset="105">
      <SeekID type="uint" id_name="Cues" value="475249515"/>
      <SeekPosition type="uint" value="245159"/>
    </Seek>
  </SeekHead>
  <Void type="binary" size="154"/>
  <Info type="list" offset="284">
    <TimecodeScale type="uint" value="1000000"/>
    <MuxingApp type="string" value="Lavf57.83.100"/>
    <WritingApp type="string" value="Lavf57.83.100"/>
    <Duration type="float" value="5001.000000"/>
  </Info>
  <Tracks type="list" offset="346">
    <TrackEntry type="list" offset="358">
      <TrackNumber type="uint" value="1"/>
      <TrackUID type="uint" value="1"/>
      <FlagLacing type="uint" value="0"/>
      <Language type="string" value="und"/>
      <CodecID type="string" value="V_VP9"/>
      <TrackType type="uint" value="1"/>
      <DefaultDuration type="uint" value="40000000"/>
      <Video type="list" offset="402">
        <PixelWidth type="uint" value="1920"/>
        <PixelHeight type="uint" value="1080"/>
        <FlagInterlaced type="uint" value="2"/>
      </Video>
    </TrackEntry>
    <TrackEntry type="list" offset="422">
      <TrackNumber type="uint" value="2"/>
      <TrackUID type="uint" value="2"/>
      <FlagLacing type="uint" value="0"/>
      <Language type="string" value="und"/>
      <CodecID type="string" value="A_OPUS"/>
      <CodecDelay type="uint" value="6500000"/>
      <SeekPreRoll type="uint" value="80000000"/>
      <TrackType type="uint" value="2"/>
      <Audio type="list" offset="472">
        <Channels type="uint" value="2"/>
        <SamplingFrequency type="float" value="48000.000000"/>
        <BitDepth type="uint" value="32"/>
      </Audio>
      <CodecPrivate type="binary" size="19"/>
    </TrackEntry>
  </Tracks>
| <Tags type="binary" size="264"/>
  <Cluster type="list" offset="796">

Could you please send me a small example webm file that reproduces this problem? I'd like to use that for testing to make sure I fix the issue you are seeing.

d3im commented

Hi, Thank You for fast response. There is a small example:
http://www.fileconvoy.com/dfl.php?id=gd1e3ac3e4f9c4772100006883250c1572961e84b9c

This should be fixed now. I added code to copy the tags from the input file to the output. I also updated webm_dump so that it actually shows the contents of the tag data instead of treating it as a binary blob.