X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fdirac_parser.c;h=912f59424374d05a4454867edd1b93e6f6924406;hb=e625ae609206e0550ff733965c6f5447579320aa;hp=1ade44a438dd2b63b12bec706b15576f443f5de5;hpb=fbd607dd560afe44c3b90de1e6cbe5265cac8f1e;p=ffmpeg diff --git a/libavcodec/dirac_parser.c b/libavcodec/dirac_parser.c index 1ade44a438d..912f5942437 100644 --- a/libavcodec/dirac_parser.c +++ b/libavcodec/dirac_parser.c @@ -212,10 +212,10 @@ static int dirac_combine_frame(AVCodecParserContext *s, AVCodecContext *avctx, if (parse_timing_info && pu1.prev_pu_offset >= 13) { uint8_t *cur_pu = pc->buffer + pc->index - 13 - pu1.prev_pu_offset; - int pts = AV_RB32(cur_pu + 13); + int64_t pts = AV_RB32(cur_pu + 13); if (s->last_pts == 0 && s->last_dts == 0) s->dts = pts - 1; - else + else if (s->last_dts != AV_NOPTS_VALUE) s->dts = s->last_dts + 1; s->pts = pts; if (!avctx->has_b_frames && (cur_pu[4] & 0x03)) @@ -273,7 +273,7 @@ static void dirac_parse_close(AVCodecParserContext *s) av_freep(&pc->buffer); } -AVCodecParser ff_dirac_parser = { +const AVCodecParser ff_dirac_parser = { .codec_ids = { AV_CODEC_ID_DIRAC }, .priv_data_size = sizeof(DiracParseContext), .parser_parse = dirac_parse,