X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Flibwebpenc_animencoder.c;h=835891d890384629579cf590cab6cb174fe6156e;hb=252500a78fe1a31abc79e6070d16f50382c39343;hp=7f35a0b93913dd2f73d88cd9684682a3774016be;hpb=9a88a47be4da9cd25a582feec7cc36790500b481;p=ffmpeg diff --git a/libavcodec/libwebpenc_animencoder.c b/libavcodec/libwebpenc_animencoder.c index 7f35a0b9391..835891d8903 100644 --- a/libavcodec/libwebpenc_animencoder.c +++ b/libavcodec/libwebpenc_animencoder.c @@ -32,7 +32,7 @@ typedef struct LibWebPAnimContext { LibWebPContextCommon cc; WebPAnimEncoder *enc; // the main AnimEncoder object - int64_t prev_frame_pts; // pts of the previously encoded frame. + int64_t first_frame_pts; // pts of the first encoded frame. int done; // If true, we have assembled the bitstream already } LibWebPAnimContext; @@ -48,7 +48,7 @@ static av_cold int libwebp_anim_encode_init(AVCodecContext *avctx) s->enc = WebPAnimEncoderNew(avctx->width, avctx->height, &enc_options); if (!s->enc) return AVERROR(EINVAL); - s->prev_frame_pts = -1; + s->first_frame_pts = AV_NOPTS_VALUE; s->done = 0; } return ret; @@ -73,7 +73,7 @@ static int libwebp_anim_encode_frame(AVCodecContext *avctx, AVPacket *pkt, memcpy(pkt->data, assembled_data.bytes, assembled_data.size); s->done = 1; pkt->flags |= AV_PKT_FLAG_KEY; - pkt->pts = pkt->dts = s->prev_frame_pts + 1; + pkt->pts = pkt->dts = s->first_frame_pts; *got_packet = 1; return 0; } else { @@ -102,10 +102,10 @@ static int libwebp_anim_encode_frame(AVCodecContext *avctx, AVPacket *pkt, goto end; } - pkt->pts = pkt->dts = frame->pts; - s->prev_frame_pts = frame->pts; // Save for next frame. + if (!avctx->frame_number) + s->first_frame_pts = frame->pts; ret = 0; - *got_packet = 1; + *got_packet = 0; end: WebPPictureFree(pic);