From patchwork Sun Apr 11 02:12:36 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26856 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 28AD344B85A for ; Sun, 11 Apr 2021 05:13:02 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E5980687F19; Sun, 11 Apr 2021 05:13:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f174.google.com (mail-qk1-f174.google.com [209.85.222.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DA20968020A for ; Sun, 11 Apr 2021 05:12:55 +0300 (EEST) Received: by mail-qk1-f174.google.com with SMTP id g15so9855958qkl.4 for ; Sat, 10 Apr 2021 19:12:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=RG3pg8I7yG3oXBrxcIgINkdAeYQLV+WvUpca/LpM6Sw=; b=n3smTRrbW+oskJNND0g9NEBUc535/BUdMZZpzNf8THDjclwfmQH6XrVmTwpB8upzWG r9QwVImtSkSiJfXHmKOjY6y6tTGSSP5h4GwIzplZRCuYRPgoe17TWqLW78jcf/pAd6k3 Sm2c3cTn3mzY5/DicIOc8rDqXTeoDply3jl94wqcF0ajPu2dBRsQRNY1ecmrLhvI63P1 fgswr84Kt5UYl4qHaCWb+9szUZXRFzKQZFLcfTrIPaOEKCutYsu24NBOGIXid1wKopbk eXTFVbfNqpKGpDr9/030W17UjjM7hpJbw/pr2sjp5ZDR0c71DVjuuUqJxDMPALb8ONXj JUzQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=RG3pg8I7yG3oXBrxcIgINkdAeYQLV+WvUpca/LpM6Sw=; b=kBwY8tnTSgWSPTw9SwWhlKPvR9W2x8XDEi6g2B8O4o8EOZPNIq18UBP62Z2mAJ3bEu YmiIjB5Pij3HvPQ/Nw9a3m+3SPz2tGGvTpT8NTBZDWgag3CJRtfMrzdqAZF+NgUJHU01 0v/NTP+bn28GYjOHqfB4wFtAmRn44H1+7RhXq18R5I75lSyP7Le3PiXxFgsjY/9ifEe1 7jgvBxYJV2hm1KGKYNYNItBN6hQxkAtoKDZ6SPRUVZidCbDyd9OOlaVEm/7M5NoULKfh Ygya0gyIq22vz97PWpRyAGutzXDrTX4WPx+D0PixSnPasXfIrGVPtxyVMdd/1RJbIJdu ZW+w== X-Gm-Message-State: AOAM530dw8sKrtmNeDeJknIyLc0RwAG2FoqFjej8u5KNXf1XmQJNs2rO NnUTivi+gZzAEbpFV5vule2djWlw1ZI= X-Google-Smtp-Source: ABdhPJwGikl8FPo50OYAmJJ2b/RRcYc9yHRHnQp56VEUVcHtZISS7SVDgKJB8KRksCd7T6aZ7V+OTQ== X-Received: by 2002:a37:c08:: with SMTP id 8mr20991752qkm.423.1618107174149; Sat, 10 Apr 2021 19:12:54 -0700 (PDT) Received: from localhost.localdomain ([191.83.208.158]) by smtp.gmail.com with ESMTPSA id d10sm5083749qko.70.2021.04.10.19.12.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 10 Apr 2021 19:12:53 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 10 Apr 2021 23:12:36 -0300 Message-Id: <20210411021238.29014-1-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avcodec/libwebpenc_animencoder: stop propagating bogus empty packets X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Packets must have at least one of data or side_data. If none are available, then got_packet must not be signaled. The generic encode code already discarded these empty packets, but it's better just not propagating them at all. Signed-off-by: James Almer --- This patchset supersedes "avcodec/libwebpenc_animencoder: Don't return pkt without data/side-data" and "avformat/webpenc: Don't treat zero-sized packets as invalid". libavcodec/libwebpenc_animencoder.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavcodec/libwebpenc_animencoder.c b/libavcodec/libwebpenc_animencoder.c index 7f35a0b939..633af2e925 100644 --- a/libavcodec/libwebpenc_animencoder.c +++ b/libavcodec/libwebpenc_animencoder.c @@ -102,10 +102,9 @@ 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. ret = 0; - *got_packet = 1; + *got_packet = 0; end: WebPPictureFree(pic); From patchwork Sun Apr 11 02:12:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26857 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 9931D44B8A9 for ; Sun, 11 Apr 2021 05:13:03 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 88141680903; Sun, 11 Apr 2021 05:13:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7A17A6802C0 for ; Sun, 11 Apr 2021 05:12:56 +0300 (EEST) Received: by mail-qk1-f173.google.com with SMTP id v70so9838736qkb.8 for ; Sat, 10 Apr 2021 19:12:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=x2FUPGVv2BZhV+D21kVcP3SnJr+z4Wg4zFOwlRaD4hc=; b=A+fWox1YS4vlburV6sFHxNc2uVjVUcnzz9LZITsOnxJX78KC8//QGAu+gCUEYSKX23 Qw558lQdZ3oPHaB4voHSZVF90ivvebPma0mDAbvURCYxyorYT/d8MErnwRfff516xZiq TcicLsFMRBdaPdyk9Z3+IIvbiVd+FE2tLrPA2Dj+wcA593/OPoAAQanXcCUoukW27UKZ dXMQwpTjsFqY8OTu4Zul+hyUNXGD41zQj9yOONuJFcji1/8QcMgH779tvpYBylu7OvhR TNgg9E6154iRzAaAsN8MCt+jAUYWwgNnG6wKsZ6ku51VC477I0pNvHy2K40bXzhgCpRM O2AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=x2FUPGVv2BZhV+D21kVcP3SnJr+z4Wg4zFOwlRaD4hc=; b=fN/2xZUkZI1oI8JLxKGr+wmKtpwQOwvGs96VQBwQ4pJmSe/GCIUEo1Y30iRUiK9qUo vUdVvkJuL9AEiCFbXFPmQrUyNkpOlGbATVezO9P/TSm2tseJVplwkb8F/7GEjNBLFAMg A2YryPCihAp5tUYLcbvPRtyrvzpHVyo62FsyGAokU/sI+1aB2f28jLVXeSnvjrArogpe 2yN+wBlBEn0e0NbRL8vg0t2j8tvALLyhxLtwLH1hsEDf0k4ciY7f7gy0K8Ao2nd+z/fh uTyDy0nPkrVXdPUhF0bMVsZIk9vd1iMsirO8iq9uuZLaXD5ReM7078lKGygEznOtZDCW k3WQ== X-Gm-Message-State: AOAM533uv/GW1AhGLSZk+EATFRBQVftig2DEoG5maCj3ddsTvDM4hI2G 1YJfB8BSGroHZvgc0/S+fk/5aaF01nI= X-Google-Smtp-Source: ABdhPJzALKG7FFDmCMBZSzOe4I1/2wT5bAw1tDLgon8SzNzcHsvcplfcod+WY4FCsGYdc6YfWwK04w== X-Received: by 2002:ae9:f706:: with SMTP id s6mr21502060qkg.163.1618107175229; Sat, 10 Apr 2021 19:12:55 -0700 (PDT) Received: from localhost.localdomain ([191.83.208.158]) by smtp.gmail.com with ESMTPSA id d10sm5083749qko.70.2021.04.10.19.12.54 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 10 Apr 2021 19:12:54 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 10 Apr 2021 23:12:37 -0300 Message-Id: <20210411021238.29014-2-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210411021238.29014-1-jamrial@gmail.com> References: <20210411021238.29014-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avcodec/libwebpenc_animencoder: set the correct packet pts X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" The only packet produced by this encoder contains the entire animated stream, so its pts is 0. Signed-off-by: James Almer --- libavcodec/libwebpenc_animencoder.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/libavcodec/libwebpenc_animencoder.c b/libavcodec/libwebpenc_animencoder.c index 633af2e925..ff36b865f8 100644 --- a/libavcodec/libwebpenc_animencoder.c +++ b/libavcodec/libwebpenc_animencoder.c @@ -32,7 +32,6 @@ typedef struct LibWebPAnimContext { LibWebPContextCommon cc; WebPAnimEncoder *enc; // the main AnimEncoder object - int64_t prev_frame_pts; // pts of the previously encoded frame. int done; // If true, we have assembled the bitstream already } LibWebPAnimContext; @@ -48,7 +47,6 @@ 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->done = 0; } return ret; @@ -73,7 +71,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 = 0; *got_packet = 1; return 0; } else { @@ -102,7 +100,6 @@ static int libwebp_anim_encode_frame(AVCodecContext *avctx, AVPacket *pkt, goto end; } - s->prev_frame_pts = frame->pts; // Save for next frame. ret = 0; *got_packet = 0; From patchwork Sun Apr 11 02:12:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 26858 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id AEF0444B8A9 for ; Sun, 11 Apr 2021 05:13:04 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 92C86687F5A; Sun, 11 Apr 2021 05:13:04 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f178.google.com (mail-qt1-f178.google.com [209.85.160.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F3BE2680260 for ; Sun, 11 Apr 2021 05:12:57 +0300 (EEST) Received: by mail-qt1-f178.google.com with SMTP id y12so7330956qtx.11 for ; Sat, 10 Apr 2021 19:12:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=TeRrBk3Ij5tilqAtOxPyiiavb/ZyEZ7f7PWDgEJ6h/w=; b=hwYSX6QkcrQ7yLguoRbFWNDcpp+JcFGVqEbnSGqeMZg4WpJJmzfM9dwlxkPaNYSWGh a1PoWzB6Y9XzGxJHmKlEvwOoTpUK678p4B6hCb4agYkqISRsXR6yX1mQvPSGIzYTeUH8 hVIz3xsu0w/DRI5HCB2XzFTqsybRixVsEdzAUILmc/7CpB25n1IFUr4NWrU2Wy+SGlUL jr5BJO4spvyBEPf8bWOgDTaNYj+riw4Wp7QWgctOeJZk3rzRg5h/hTJegG40PHsFrgYE 6CmJrMTRsFlQmrGQnq9SivQAcdDNe+7UUBgAN0JURE+PiMsMJ9rh+Xy/1sdTaT6A6sVN 0OFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TeRrBk3Ij5tilqAtOxPyiiavb/ZyEZ7f7PWDgEJ6h/w=; b=WO3ZoLYFEO/CKf82lLaPgfyOIZZvbbKC+rgb0AclBo+IjiHtMmlQKAgcP6KFjUT9wN E71GPqSAPZ9nBQefa3Iojfxsg2ad5KhMWGxSVYj232P0HSNnH1x9oq2uyVGDH64fNtjb U20G20qAwje6Bkn8XjageGxt031Nz57K7WX7hm6bTTs+crDHG0G2o/lyyuuxPG+Y4vgW R+ggr+IPQy9fXMT9Ud0uOGQ0hSmJppu4s0yqsFeRga08ZDTHDvzOvfnHxLaoCtXtY4sg IeEg2XXfSkke4D7miFalbc9WIzsbxdxjFYbVg6xHhVGLgnjxSM/RJ4rPJZWUEGQoC+k6 GS2w== X-Gm-Message-State: AOAM531zgY+FiPFludX3htiHY7/2rz1Q9DEvu1zvXstAtzQ1cwwFepfx ZxYpE+omPe/5ptKc76Qx3b/cNmcq9l4= X-Google-Smtp-Source: ABdhPJzCyt7JM74uQOAlZEu6fJjTrxn44BeJnHi/USeMJMtqHRVXO+uDWB+4jeP7a6O1qBPpJPQ5TA== X-Received: by 2002:a05:622a:110c:: with SMTP id e12mr20146804qty.350.1618107176316; Sat, 10 Apr 2021 19:12:56 -0700 (PDT) Received: from localhost.localdomain ([191.83.208.158]) by smtp.gmail.com with ESMTPSA id d10sm5083749qko.70.2021.04.10.19.12.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 10 Apr 2021 19:12:56 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 10 Apr 2021 23:12:38 -0300 Message-Id: <20210411021238.29014-3-jamrial@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210411021238.29014-1-jamrial@gmail.com> References: <20210411021238.29014-1-jamrial@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] avformat/webpenc: don't assume animated webp streams will have more than one packet X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" The libwebp_animencoder returns a single packet with the entire animated stream, as that's what the external library produces. As such, only ensure the stream was produced by said encoder (or propagated by a demuxer, once support is added) when attempting to write the requested loop value. Fixes ticket #9179. Signed-off-by: James Almer --- libavformat/webpenc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavformat/webpenc.c b/libavformat/webpenc.c index ed8325c02d..ca4ffc4e2d 100644 --- a/libavformat/webpenc.c +++ b/libavformat/webpenc.c @@ -172,7 +172,7 @@ static int webp_write_trailer(AVFormatContext *s) WebpContext *w = s->priv_data; if (w->using_webp_anim_encoder) { - if ((w->frame_count > 1) && w->loop) { // Write loop count. + if (w->loop) { // Write loop count. avio_seek(s->pb, 42, SEEK_SET); avio_wl16(s->pb, w->loop); }