From patchwork Thu Nov 25 19:45:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Alex Xu (Hello71)" X-Patchwork-Id: 31709 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:d206:0:0:0:0:0 with SMTP id q6csp1257185iob; Thu, 25 Nov 2021 11:45:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJxiVPnj66vE1cNHy9hGeiQnAom98aSww+oCxFzZNUUNBDixEGh8tWEtbrX5skBgNn6865RX X-Received: by 2002:aa7:c846:: with SMTP id g6mr42628496edt.75.1637869513823; Thu, 25 Nov 2021 11:45:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1637869513; cv=none; d=google.com; s=arc-20160816; b=orCQ/a3OixpZDcIPYBiVNPsIRdYoowoTyHRJGeJds4Ocvp4b07s81KwY2LcabfZdZa Djz6jHBQGBBldxX0mZnkEYOmWlB2jdEnnvmp2a+z8DCPVRTcQ+DV9PnrlNaii698O3Sl UmrA1Omr7ryoUoiaA5CYYUP7XhYXZMpQ+loCXAwaU8RIbQV5SFH49hkSXUlZ+T79LST8 Njasv1m8GSbH2Vxcbl8iXUm7qcJp/+Vw+/qZGRPCuUaxfGf9CjJgTatpgVYp75A8rEI9 rP2RG9BiFXUIuO7X3hbu4rr2wKojb8MH1pAAxhMcfFGOIrS9Dq5aGZPygGFNgOjrrmfZ 9HQQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:message-id:mime-version:references:to:from:date :dkim-signature:delivered-to; bh=yxC1NrayTlOYqYnszIjnJSSN8nzM5gYWe9wkrVClrVU=; b=XVAWbtu09XQBNauZJEHP1tMrqLEa5LGsz4KUdlvLC1769OoHGBqmP4Q7IjRXR8N1Hq BW3FSaQS6nQxdVlVRwOQCaMlFkoNnw53QEVCWO5tDSev4ZtoW7jpmJfJj3NJgkCoW40F 1GELVV7aS4lqwUPGLiOUtTKjczaaPb63H8ZI2o3q+fpyPnECVgYB0nJVrfz9wkAGwuxB /4/i/MIRyF82pj9WynSwaelOoBGXmTE3U7Gab4hrxj/YTAvPwsSH31C3S1Es/ZfIVrlD 39LyxZ0VOQnc2j+Te2KeGhlV70fiEOySGzfR/r0Dpdjt1+nLrkB/yyz0D+NdrAqBYm2u aINg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@yahoo.ca header.s=s2048 header.b=ELrq3NLH; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hv12si4519052ejc.372.2021.11.25.11.45.13; Thu, 25 Nov 2021 11:45:13 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@yahoo.ca header.s=s2048 header.b=ELrq3NLH; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 09DC868ADC0; Thu, 25 Nov 2021 21:45:10 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from sonic314-20.consmr.mail.gq1.yahoo.com (sonic314-20.consmr.mail.gq1.yahoo.com [98.137.69.83]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 67488680500 for ; Thu, 25 Nov 2021 21:45:03 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.ca; s=s2048; t=1637869501; bh=JnsW14cW3KI4C2+P+mQbvnH2NOFPzTXeGQ1w7CHlrcg=; h=Date:From:Subject:To:References:From:Subject:Reply-To; b=ELrq3NLHezKbrTI0D7rFhAuesVaDDrA+rkLzQpHIZmF8aQjZwJcGffhzLLsd8y3mvDihpxABGX4p2CjjySflITrHlj15QaF29BMCsLBEje62nON1uTwdq6WWJlNEMZOM/RIO7d4Af3zEekcN41JfOOVeQY2B+TUyNCmeEHo029zIHi7TckZMXMaRfrtdGjqBGpQtm7kGbaZtQUGJdI2gKH/M04DLAtXss6yE4bLQTsgvKX4EQQe5ETYF+Naoj62kFL5H5cJnirv3WvhH213hXAq/bpqPRq17fgzxPcKhXMAGQ3LmTf8xYKdNle+4cgvOdPMHt/DfMfEwAm/P0Au1yw== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1637869501; bh=4bJlizWCAxy8Z+I0INnI+AGjgWvKcO7kRZ7eJk/+c0O=; h=X-Sonic-MF:Date:From:Subject:To:From:Subject; b=XKjIKns2MvM4lZSHgjB4neGiVro9aTt6QJt66sQ02cuEaCANvtplAUpwQvRY4daZmT58lvZ8iz8eXubTYoUhsWoelK4YjQVyDHCFmxZuGPDBAWDH79XKWxsgUmi1JRRF8O3y1foom2tLzkQkSPIKJzur16yv/9VuhlzKXeo1JziworknxFzolLOlD6G9KkmE6/XxTwl0yLJfqtHKHIybrA6NiDnrDTvbYmHs8Oo+qM0azMqXsZa180ry6pqHnINevRYsO9c6AEdB1CoDPQjS/7qZuwqLdajniV8CsNS6F25nmC8vOea+MHz5j1LbB1YwQEiLs6OUxUp6pL8Kp8SvDw== X-YMail-OSG: cTQICpIVM1l1G5WcdaxM9tti9hdFMgSIirl1gBsFzE5oo3S1_hkt6AI284qnq3k I3bHHaSoI9mhwTkBEzHYdEzQNgvV.seBQxhkk8rG54TZUC.TBOD_Oy.QVDy5ME_BjvAiMpqiHxre sC_e2bsYZYmg_5bqck2Mp7TK8JUEgkunn.7MJ.ardboKC1klYYZzC43b0nKwKeMTMXzNJvzB1IHn Uk2JZfkuoLHBopHreK5quOfNV42Ez5fM.22Rt09nAHW3IBvawDmRg.4Aq8L4GGfBoQfsJ8LNGkAD y0ZaCnKhAYA3QoBRAHMNGX7_uknIpyXrBp5smTEgzWCXTMTiKmP1IKzDncdxatRlsk.OnDBZbsO9 bdn5Xb0i8bVGmb44fI2LUTNmIFB1mrHtQjNIbAl4uadgq6s3loRLTLfaJFT7z5vuenPi0VaqgyfO iVpnoZSYcZhxe9eOrabQ96JsPtXQCv_BJOaI7YhS7WstK0fVrviPgawxgFaJZ8llXntif7uRlwgu nYimjte3nZjgyQ5C7fJPdwuqugCk.zwHcE5ZPVAgkLauSa8e3ZzdQ9RTm80xGhzn8E8WuZPzgAvm wE8O.To1.9ERQOePZQI1H1iuAgWLvp1sK7NaPhhMABOQF7Zfd6bYUtyB2gRFGUdDVMnSjiRxe8jH LVoRxdws9XKM9sT7JMqiTiES8QltOXX7py8uIN_g8DEuJ_PDZuA8ejihLFiYSceB362ri54D7JJP UrSp3yX.goyLhaEvkvxjmuQ58x_WyFBoW4mjb15f6ZyLG_NNbI796m9NlXA7iwWUuhCWZ0tRMXBx Jmj4SN3Kat_gSmqJa7XwECbOFwu8QlHgBJp1JfdkqZ6O3J1ciHKKHR8jsPRt18YMKo1RPMYXVgDD lzm784rFUKLElSmMlmziRaZCsFgcU562jGnHrnQv3WlN7n.5Bmw59p8Nylm5kh4OYXakK0xWIFrL xfxj5UzweR3RDhMoMLzWg2seMo_eBQO2gcfPYUI1xIyx2Zgxqaf5Jx6WS7GDZ73SVaSfjWX4DHdi cqR66isTrimy0jrot.TV.7yNClnvYoY7D372N7z28K_T3GVzPHH8IMeSdOB1WXEBc2p9.1zPqvsL Any058UDVwu4E7g6c95WIQNVm3B2hFu2hm1GOAE5cQtmQiULTPq_SnYXeVGrUdRL5AkrysjioXcr AdAgDYeXzpZzgom_DNGG36kzqTsPLc8ehanTI7PpogAtvV5xlBJwS7ZWbaadDE1QHh4ywx0hEU77 pS6SSr6l19PqWWGwln6D0DowR2sduxltC6O0NwgYLJ3mQGT1lE7IH.f1nzPxJQ6.ZcxdR8fAbP11 jRPfbIY084FdeScGprQqTcz2Nm2pVBrP6xcjsnEdneOEvRx9h9.H4WyqeqzcTn_8u08Uqw_rJ.lJ JrHZQ1wteuLjLZ0tea66svcoSYn5SJMss6lYaV7TDXIeUJZxUfwF80iP9zU_5VzlBdozaB.Ulk6b RORPcunuSnfhR_9raNK5lSbGzgNampxIJPNPqMmXz.qPeIl9aNBDWyAU2VHSi1kbTFsdo5p9ftfS 0O6EwLfn5fVBXUZbU_DX3z.NowJM.kmkUszSeYPKpXWPkgBYM3bg7PxR5qy.IsUJJ8UXdE1GINdV __EvF2AXihQig1K8Z1WFLxH84QXc52gF9ObOeMghArwH9DhoYfMCVazKN9M5_xwWV6w0g5NY3pNi S4NSYg989k5iBoc9QNAHKRTF2_i1HMmMzgvFHjd_mKlYnaVaqbM3t8P2gOxCFcmtt16hg5CXIR69 yLY4ruL4XFZhRO7VB78J4chKdXKLQNe17QWRwNjCC6cEN7tW2Hw6_cavN1vDeXJASKNCfhFWwHXz kh4G.OsRPuWugJxLftgY3oGB3xb62I7NNo.sgsqhPm.Bx_z_SEhafa4YptHtqX7y55lagFYXv8uG ordM6mXp3uBKKnMmfmhAzCvUJbcOrGRVd7WPHfUSIBUoAglmtiiKgxvfmq_7Oa9hG9vojej5hYVg puGKeGEte99JW_fpO2KQElVGepMo3_dN3K2j97eYp367VEt6aZXSXsFsJI39wZ1QZShclWQzdlsl DKqtFFqOiQODYVBaDGZ.ehbxOAgmlFsAnrrxhcTwuberANPA3ekceL6oNwkrJsZ6X35w2xW0mTR7 sZmIkXjxcuH7JuQcMvDnSfywuP8CBtNouYMB.QW0ul3Y6GSAyc.ZM3VQDMUAylBIisCdE.nWmX06 8JSNeqAevOS5H67PRKJl8NvF5Bnj6Lq4tJA6BtPA2oUxm X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.gq1.yahoo.com with HTTP; Thu, 25 Nov 2021 19:45:01 +0000 Received: by kubenode536.mail-prod1.omega.gq1.yahoo.com (VZM Hermes SMTP Server) with ESMTPA ID ad239303f51214885ba5783d5e64a299; Thu, 25 Nov 2021 19:45:00 +0000 (UTC) Date: Thu, 25 Nov 2021 14:45:26 -0500 From: "Alex Xu (Hello71)" To: ffmpeg-devel@ffmpeg.org References: <20211116211640.82515-1-alex_y_xu.ref@yahoo.ca> MIME-Version: 1.0 Message-Id: <1637868305.ykqhar2ukx.none@localhost> X-Mailer: WebService/1.1.19306 mail.backend.jedi.jws.acl:role.jedi.acl.token.atz.jws.hermes.yahoo Subject: [FFmpeg-devel] [PATCH] webp: implement FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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" X-TUID: EKNjBrJ/iCuA Roughly doubles webp performance for common applications (ffmpeg, ffprobe, mpv) due to speeding up avformat_find_stream_info. Lossy needs no patches since vp8.c already implements skip_frame. Lossless needs hook to understand skip_frame. Also the "image data not found" message is fixed, which was already broken with manual -skip_frame but would now be exposed in default operation. --- libavcodec/webp.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libavcodec/webp.c b/libavcodec/webp.c index d5a81fd527..f24aa979ac 100644 --- a/libavcodec/webp.c +++ b/libavcodec/webp.c @@ -1126,6 +1126,9 @@ static int vp8_lossless_decode_frame(AVCodecContext *avctx, AVFrame *p, h = s->height; } + if (avctx->skip_frame == AVDISCARD_ALL) + return data_size; + /* parse transformations */ s->nb_transforms = 0; s->reduced_width = s->width; @@ -1524,7 +1527,7 @@ exif_end: } } - if (!*got_frame) { + if (!*got_frame && avctx->skip_frame < 0) { av_log(avctx, AV_LOG_ERROR, "image data not found\n"); return AVERROR_INVALIDDATA; } @@ -1565,5 +1568,5 @@ const AVCodec ff_webp_decoder = { .decode = webp_decode_frame, .close = webp_decode_close, .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS, - .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE, + .caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM, };