summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarton Balint <cus@passwd.hu>2018-06-28 21:07:30 +0200
committerMarton Balint <cus@passwd.hu>2018-07-02 11:58:08 +0200
commit06a8d7ff00f5c3d13d331a56db839fb825ea6697 (patch)
treea794c9d00fe91d7034597caef2244f0daae2264b
parentda36bcbeb78c78e493d18d3cd3ac92ea401e7031 (diff)
avformat/apngdec: set pts to AV_NOPTS_VALUE
And let the generic code figure out the proper PTS. This is needed because apng does not provide seek functions, but after a generic seek (e.g. to file start) timestamps are not reset which causes broken timestamps when looping apngs, like in ticket #6121. Signed-off-by: Marton Balint <cus@passwd.hu>
-rw-r--r--libavformat/apngdec.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/libavformat/apngdec.c b/libavformat/apngdec.c
index ffff03710a..f9a97e5681 100644
--- a/libavformat/apngdec.c
+++ b/libavformat/apngdec.c
@@ -44,7 +44,6 @@ typedef struct APNGDemuxContext {
int max_fps;
int default_fps;
- int64_t pkt_pts;
int pkt_duration;
int is_key_frame;
@@ -390,9 +389,8 @@ static int apng_read_packet(AVFormatContext *s, AVPacket *pkt)
if (ctx->is_key_frame)
pkt->flags |= AV_PKT_FLAG_KEY;
- pkt->pts = ctx->pkt_pts;
+ pkt->pts = pkt->dts = AV_NOPTS_VALUE;
pkt->duration = ctx->pkt_duration;
- ctx->pkt_pts += ctx->pkt_duration;
return ret;
case MKTAG('I', 'E', 'N', 'D'):
ctx->cur_loop++;