mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
matroskadec: fix type of the length field in ebml_read_master()
Also use the correct value for unknown size (instead of a truncated and sign extended value). Originally committed as revision 23591 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
739178107c
commit
bddd1d93e5
@ -657,7 +657,7 @@ static int ebml_read_binary(ByteIOContext *pb, int length, EbmlBin *bin)
|
|||||||
* are supposed to be sub-elements which can be read separately.
|
* are supposed to be sub-elements which can be read separately.
|
||||||
* 0 is success, < 0 is failure.
|
* 0 is success, < 0 is failure.
|
||||||
*/
|
*/
|
||||||
static int ebml_read_master(MatroskaDemuxContext *matroska, int length)
|
static int ebml_read_master(MatroskaDemuxContext *matroska, uint64_t length)
|
||||||
{
|
{
|
||||||
ByteIOContext *pb = matroska->ctx->pb;
|
ByteIOContext *pb = matroska->ctx->pb;
|
||||||
MatroskaLevel *level;
|
MatroskaLevel *level;
|
||||||
@ -718,7 +718,7 @@ static int ebml_parse_id(MatroskaDemuxContext *matroska, EbmlSyntax *syntax,
|
|||||||
break;
|
break;
|
||||||
if (!syntax[i].id && id == MATROSKA_ID_CLUSTER &&
|
if (!syntax[i].id && id == MATROSKA_ID_CLUSTER &&
|
||||||
matroska->num_levels > 0 &&
|
matroska->num_levels > 0 &&
|
||||||
matroska->levels[matroska->num_levels-1].length == 0xffffffffffffffff)
|
matroska->levels[matroska->num_levels-1].length == 0xffffffffffffff)
|
||||||
return 0; // we reached the end of an unknown size cluster
|
return 0; // we reached the end of an unknown size cluster
|
||||||
if (!syntax[i].id && id != EBML_ID_VOID && id != EBML_ID_CRC32)
|
if (!syntax[i].id && id != EBML_ID_VOID && id != EBML_ID_CRC32)
|
||||||
av_log(matroska->ctx, AV_LOG_INFO, "Unknown entry 0x%X\n", id);
|
av_log(matroska->ctx, AV_LOG_INFO, "Unknown entry 0x%X\n", id);
|
||||||
|
Loading…
Reference in New Issue
Block a user