| @@ -486,7 +486,7 @@ static EbmlSyntax matroska_segments[] = { | |||||
| static EbmlSyntax matroska_blockgroup[] = { | static EbmlSyntax matroska_blockgroup[] = { | ||||
| { MATROSKA_ID_BLOCK, EBML_BIN, 0, offsetof(MatroskaBlock,bin) }, | { MATROSKA_ID_BLOCK, EBML_BIN, 0, offsetof(MatroskaBlock,bin) }, | ||||
| { MATROSKA_ID_SIMPLEBLOCK, EBML_BIN, 0, offsetof(MatroskaBlock,bin) }, | { MATROSKA_ID_SIMPLEBLOCK, EBML_BIN, 0, offsetof(MatroskaBlock,bin) }, | ||||
| { MATROSKA_ID_BLOCKDURATION, EBML_UINT, 0, offsetof(MatroskaBlock,duration), {.u=AV_NOPTS_VALUE} }, | |||||
| { MATROSKA_ID_BLOCKDURATION, EBML_UINT, 0, offsetof(MatroskaBlock,duration) }, | |||||
| { MATROSKA_ID_BLOCKREFERENCE, EBML_UINT, 0, offsetof(MatroskaBlock,reference) }, | { MATROSKA_ID_BLOCKREFERENCE, EBML_UINT, 0, offsetof(MatroskaBlock,reference) }, | ||||
| { 1, EBML_UINT, 0, offsetof(MatroskaBlock,non_simple), {.u=1} }, | { 1, EBML_UINT, 0, offsetof(MatroskaBlock,non_simple), {.u=1} }, | ||||
| { 0 } | { 0 } | ||||
| @@ -1622,7 +1622,7 @@ static int matroska_parse_block(MatroskaDemuxContext *matroska, uint8_t *data, | |||||
| st = track->stream; | st = track->stream; | ||||
| if (st->discard >= AVDISCARD_ALL) | if (st->discard >= AVDISCARD_ALL) | ||||
| return res; | return res; | ||||
| if (duration == AV_NOPTS_VALUE) | |||||
| if (!duration) | |||||
| duration = track->default_duration / matroska->time_scale; | duration = track->default_duration / matroska->time_scale; | ||||
| block_time = AV_RB16(data); | block_time = AV_RB16(data); | ||||