From patchwork Mon May 16 17:40:21 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vignesh Venkat X-Patchwork-Id: 35791 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp1652938pzb; Mon, 16 May 2022 10:40:37 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz3JDVylbKh4kqeE4mr/XIkRGT8YAyPQYFyo9bXrO7R4SYHT7aAsDVlQtDPyQgEE+W5CGcw X-Received: by 2002:a05:6402:329c:b0:42a:bfc9:98b4 with SMTP id f28-20020a056402329c00b0042abfc998b4mr1670362eda.3.1652722836794; Mon, 16 May 2022 10:40:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652722836; cv=none; d=google.com; s=arc-20160816; b=VCG9GsgXk6PZE/7xh57+sgbA4NpRmtYbe8oKmOeX2hPavHkUyhRJSUmmVDJsSSrW09 tRGYkqRJSD9DVTJb8wK1jGt9mYgMQzzkVc9ZX02tCo1IkAg8Codu4A3xq5vy7UMDGA5S qyM9Gc2MlUUVAyfS4wFSdP1K5JltsVgnjWs2s9uBvcpYZX/uFDpTD7UOWg7v94SxuolS jc+2H+7uwavU+GfexrTWOQPVEQyPudUuRwlwFFySAlZgmE+TflNOgMwPmHvtVnRBdfkI hQxMtgz8UJmP/zkho6OUYki717KuByzhUAfgZN+EGhy7Pd1dAHu/THaRjpAiUVhVAU5K XMTg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:to:from:mime-version:message-id:date :dkim-signature:delivered-to; bh=8WApqipF1RWm2XdUygzANZqDmSILSAlJgJxBtHLTnhk=; b=GcDlTRy5K1pyYEQ5tU+vE+5QljWBd0zzuOM2xmnckRRiRHpAf5GorAYmcbUu83aYBK T6OnF35kvuBhaeCAb/VcyaBNlVaUc1YyGivr6AHeE0IP7+VB5csVjfken8bBmwIKlgMT BKiNqV2wt+6P3GMZgIJmd/1i2NOIhyXoYNvfDN7rQ67nlClVndahxJO+EThatO6s81Uk AUuux9QjzvdEEG4j33C4Q/UMZwVK0WyW32Ritivcp446xIXxas05wD3BVFBxyAs0Qwy4 nuDEpdmPeIubdVj1ezIeDg/HJYuqMNSKmg4UZ3IUkFPViZSq8OL4yNnAfv63hyKJGv2a eEHQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@google.com header.s=20210112 header.b=pPMOaAPh; 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 s2-20020a17090699c200b006efe546a91esi5597ejn.140.2022.05.16.10.40.35; Mon, 16 May 2022 10:40:36 -0700 (PDT) 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=@google.com header.s=20210112 header.b=pPMOaAPh; 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 A215C68B327; Mon, 16 May 2022 20:40:32 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-yw1-f202.google.com (mail-yw1-f202.google.com [209.85.128.202]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 130C468AD28 for ; Mon, 16 May 2022 20:40:26 +0300 (EEST) Received: by mail-yw1-f202.google.com with SMTP id 00721157ae682-2fefb9975c5so25857297b3.21 for ; Mon, 16 May 2022 10:40:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:message-id:mime-version:subject:from:to:cc; bh=6iE1xSRwF3RfmDzJkFXpqEoeBSLLopNp6NYXtcBdb+U=; b=pPMOaAPh45D14y9eXIGZCLrXsqTCVq7bb3Nzi444FrD3xTbHzLWVux+ddUKSyLprgF Aq4v4sOuYhf8v9O/qVOX9/WpaaxA9iPZPMbfnmIIMyPbN5LkizR+SVB2a8UCWMXE06UN N+kElYiUNaf41a2QiTxrxmTegB0vTWQsOgmgwwCzQt7S5rsM2nxeozYWREUtXzB3UZGk I1lnDfSfs+vZxzy+Rw3+6TewVrLwImw8rQlw6lbLCkmOJc2ebcqA6YPvaOOjIt9nT8QE qegXPSsKdjgwdhyQymqCFOfPaTRGBFX23RqpASREUV9JAqFflD3bjULdZ1EtCQg2ZOF5 MFow== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=6iE1xSRwF3RfmDzJkFXpqEoeBSLLopNp6NYXtcBdb+U=; b=4oRTWSpiPSWLUjK7nKvg+maE5bL/yWq8/TKORDRohIQUFX6JuqDYGlq/DdyyjFNfHP ZEWsqx9xk5xYfZiR11FPQQ7kVB53WD88gk3C8fLy+vrLaPBn1NMSL4X64W1HZQr3rVmT k8dLu6YqIF76+J2ZsScS97oMqE//9ExqC3I27iW2cI1Fdpw1HnRUSRb9SELGYgGxgjuN BW8y+lPa53dYAzwMgZfiJm5iKIV2Mh3gWN8lCqWPw4ttTMryG800sI+WggUwqgu8mlvM tlQ/hM+8zibk9yBq04oJgaUJT9bn0p7xFDM7jQo127AQzdM6uTQfkRI2d5ANu23yoeCw 8eFg== X-Gm-Message-State: AOAM532SdPFO4cfnPRd/Clz5LhR2H/KzXhVRyqH/DXrKn49Dy6njmJH/ B7ScL05MGRBv/TKHi+WHkYQZiSPUDBm7DJG5pCFMJMuc9na7oI7rXAqMnXOCRgI6mnB7lESwkPw KK4nJlqrwG4ub4RyxKmvGx/NTE+vvYYPY6lfC2xUcYUdyMtP/pcg/31ekyZDrH7falRSo X-Received: from vigneshv3.mtv.corp.google.com ([2620:0:1000:2511:d719:9ae6:470a:e086]) (user=vigneshv job=sendgmr) by 2002:a25:9a07:0:b0:64d:e121:be5 with SMTP id x7-20020a259a07000000b0064de1210be5mr2204438ybn.524.1652722824391; Mon, 16 May 2022 10:40:24 -0700 (PDT) Date: Mon, 16 May 2022 10:40:21 -0700 Message-Id: <20220516174021.3751941-1-vigneshv@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.36.0.550.gb090851708-goog From: Vignesh Venkatasubramanian To: ffmpeg-devel@ffmpeg.org Subject: [FFmpeg-devel] [PATCH] avformat/img2: Add support for AVIF mux in image2 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 Cc: Vignesh Venkatasubramanian Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: iwP4x+y7NRAQ Add support for AVIF muxing in the image2 muxer. Tested with this example: ffmpeg -lavfi testsrc=duration=1:size=320x320 -g 1 -flags global_header -c:v libaom-av1 -f image2 img-%2d.avif Signed-off-by: Vignesh Venkatasubramanian --- libavformat/img2enc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libavformat/img2enc.c b/libavformat/img2enc.c index 5ed97bb833..0015297ec2 100644 --- a/libavformat/img2enc.c +++ b/libavformat/img2enc.c @@ -58,6 +58,8 @@ static int write_header(AVFormatContext *s) img->muxer = "gif"; } else if (st->codecpar->codec_id == AV_CODEC_ID_FITS) { img->muxer = "fits"; + } else if (st->codecpar->codec_id == AV_CODEC_ID_AV1) { + img->muxer = "avif"; } else if (st->codecpar->codec_id == AV_CODEC_ID_RAWVIDEO) { const char *str = strrchr(s->url, '.'); img->split_planes = str @@ -265,7 +267,7 @@ const AVOutputFormat ff_image2_muxer = { .long_name = NULL_IF_CONFIG_SMALL("image2 sequence"), .extensions = "bmp,dpx,exr,jls,jpeg,jpg,jxl,ljpg,pam,pbm,pcx,pfm,pgm,pgmyuv," "png,ppm,sgi,tga,tif,tiff,jp2,j2c,j2k,xwd,sun,ras,rs,im1,im8," - "im24,sunras,vbn,xbm,xface,pix,y", + "im24,sunras,vbn,xbm,xface,pix,y,avif", .priv_data_size = sizeof(VideoMuxData), .video_codec = AV_CODEC_ID_MJPEG, .write_header = write_header,