New submission from Varga Bence <[email protected]>:

In a webm stream ffmpeg puts the following Timecode in the first cluster:

E7 81 00
|  |  +- Unspecified EBML-encoded integer (zero?)
|  +---- Element size: 1 bytes
+------- Element ID: Timecode

AFAIK 00 is not a valid encoding for zero. Zero can be encodedon 1 byte as 
0x80.

>From the RFC:

     UINT = *8BYTE
 
   Unsigned integer, sizes from 0-8 bytes. A zero byte integer
   represents the integer value 0.

In my understanding when the specification talks about "zero length" or "zero 
byte" it refers to a zero sized block. Using the example from above:

E7 80
|  +---- Element size: 0 bytes
+------- Element ID: Timecode

... here the EBML element contains a zero length integer which is 0x00 in 
value.

>From mtroska.org's specification:

[...] Since modern computers do not easily deal with data coded in sizes 
greater than 64 bits, any larger Element Sizes are left undefined at the 
moment.

It seems to me that an integer starting with the byte 00 is RESERVED for future 
use for numbers greater than 64 bits.

----------
messages: 12257
priority: normal
status: new
substatus: new
title: Webm: error with EBML-encoded zero (in Cluster Timecode)
type: bug

________________________________________________
FFmpeg issue tracker <[email protected]>
<https://roundup.ffmpeg.org/issue2298>
________________________________________________

Reply via email to