From patchwork Sun Sep 29 18:07:15 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ramiro Polla X-Patchwork-Id: 51933 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:d8ca:0:b0:48e:c0f8:d0de with SMTP id dy10csp1530991vqb; Sun, 29 Sep 2024 11:07:31 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUaH1Jl1u5D9MNvaXpNQEmna2tSYL11tf7za58tfamXp5vQUcCGuVEiMsZu0NT6snPV67tJ+s3XJG5YoSzDJ7TF@gmail.com X-Google-Smtp-Source: AGHT+IGGi+sxXRx+YXX+901ObNh38vI7l4wdu8XnGRc+qgs7Pnxa8HrinyocXVc/ey+bM7xpVOwe X-Received: by 2002:a17:907:1c24:b0:a8d:2faf:d341 with SMTP id a640c23a62f3a-a93c48ee926mr1172713266b.10.1727633250914; Sun, 29 Sep 2024 11:07:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1727633250; cv=none; d=google.com; s=arc-20240605; b=cVP3yRKirvxiEqhb2k7s1Apo90tHq3MDPPvd15z48lKHWbCNJ5V8ZDWxN1OX5wCFFK CjwVNW5jOdonk39mzHrtVJoUZZVXbbXN04PqlXE1AoXVa6Uz2cS9heBj2jGu6hxix2Gp idje7A8/FGjPTY2Q4TD7HIdzyWeOEeiPiEbGRp1ffVK6GBTMJJwxoAsTu4Vdaiv5a3pX r+ehQ9yFKx79eFX4UaPWDFwWBS7+Vc4KjyYcSJaknRjrMKbRL2GSA6oVN8CBMU7EiKNK Z9/67sYegQw0h1XYJ/iMcVed8gRR5bcBB6LYNwqbLcvkNRB9iB240U9vo0c9Asotqcee CT9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=QlrrgHHWIMTiGpiAX0HSw/aaGLWlOs2hanITGHWlARo=; fh=YOA8vD9MJZuwZ71F/05pj6KdCjf6jQRmzLS+CATXUQk=; b=eLDTjPu1pva2FCoLtBX8WCYiEbv8Q2M/kvbw9zeduAYtZaMc4GK9NJt85d1Kmt279l 3SHuvWZ2q2ANifPQ+9Jnyxol7nAoe4uzUj/q5/xBDcIw9MtEMLJQDL/8pLYzPUB1ewJ5 xaTqMYokXceY9JfP9T/VTWALvdNeA9lZtUjzJ4btxOf2fSWKdQSvaCLnyJw1ptB92oVo ksZJVIoR9Nlyq4TZ/ke7rzmbNBv/iDLhpvmgnDgo+NuY081jUmhhg7/SXEvR8J7mXimy UZLhYLZTsvZDr/uC4/HXxQ/6/zZ5kCN8zG0CsO0lZYt/GlzXRO79NfLri0K8sfGHm2CV hqKA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=Y1CJv+fH; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a640c23a62f3a-a93c29e3e97si460311666b.544.2024.09.29.11.07.30; Sun, 29 Sep 2024 11:07:30 -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=@gmail.com header.s=20230601 header.b=Y1CJv+fH; 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; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E5D9668D463; Sun, 29 Sep 2024 21:07:26 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3227E68D463 for ; Sun, 29 Sep 2024 21:07:20 +0300 (EEST) Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-42e5e758093so29237955e9.1 for ; Sun, 29 Sep 2024 11:07:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727633239; x=1728238039; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=NlAfHaFxD63bx4p0jUB6d/qyojE3eljw2VQBGLpAjuc=; b=Y1CJv+fH7qAo0DfCUp8LsiHcRxI65EVWE0TLViDOV24WvRRfRQ5Y3btGrdIo7h0ENh RBuTrZeM23foWL3uWintYIwcHliUuydnrYEsDvmudNie/jFlALvVxt9tETwNgu5w8qGN 8nQHfyndqjtOkpq2u7ST7AMnGQ/2bxCi4j3UGl8uqc0+GQOw+DCrX3ZuQNkXG88D1GrP RQR09AxNi2mGzgHjvTCiH6LR81bzu+b1R+mJppM6fM8BoLAhw490Ig75bnw8IRLEzRPp La9Kfv0qH8HW8fm3Htm3FraUMfcyld1skUvsnaOVsQWXjj5A7Ax5xmVOzBb8C1nWnyj8 MAIg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727633239; x=1728238039; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=NlAfHaFxD63bx4p0jUB6d/qyojE3eljw2VQBGLpAjuc=; b=U9Dadk9xNJBjkA0GM6eXF9O7wS24GepWCDUL6XtFV97yYGGns5MyfDgpCImaQVkMhg SMjhEJdsDHqmiI5+KAQn0IRuGqw8Pe/z888GZF5BU0GBaeST36dmVrY6LR2sPQ1Pw2Ud o0yavwPd6xHrgm13N9DLsR/OyNmb6CkbHlJC3YcRxg0I3NcnOaI/tiCCQEbYU8Kd90Xi tvIhWkVk9rAh9tLoVJzo9FXvvlKJDfuTpk1eaySlN71YFvTLofl0RG/2KJsquUxLtLax ym1ADYH9TnealLr/XkIXgoyQtfRt8hjdjXVxW5bwX23//w/Clwh8837tPoPVbvBVkeTE ZMBQ== X-Gm-Message-State: AOJu0YyVcWybya/OD5mU/LFPsw4ypZ3QzouYdSQgHIw3VI0kLydXwYC3 gulkIymbLFXhpjx4cPt6HCu+zAppVSDNSoj7y03PHCtcbUFV8xYAqWK6ug== X-Received: by 2002:a05:600c:4e86:b0:42c:bb75:4f86 with SMTP id 5b1f17b1804b1-42f58498ba3mr64464935e9.32.1727633238893; Sun, 29 Sep 2024 11:07:18 -0700 (PDT) Received: from localhost.localdomain ([193.74.238.20]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-42f57e40ab9sm82976235e9.48.2024.09.29.11.07.16 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Sep 2024 11:07:17 -0700 (PDT) From: Ramiro Polla To: ffmpeg-devel@ffmpeg.org Date: Sun, 29 Sep 2024 20:07:15 +0200 Message-Id: <20240929180716.21778-1-ramiro.polla@gmail.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/flashsvenc: add compression_level option 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: oC6vVRjGnBl2 This allows setting the compression level used by zlib. --- libavcodec/flashsvenc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libavcodec/flashsvenc.c b/libavcodec/flashsvenc.c index 5cf0602f5d..f650e517d0 100644 --- a/libavcodec/flashsvenc.c +++ b/libavcodec/flashsvenc.c @@ -67,6 +67,7 @@ typedef struct FlashSVContext { unsigned packet_size; int64_t last_key_frame; uint8_t tmpblock[3 * 256 * 256]; + int compression_level; } FlashSVContext; static int copy_region_enc(const uint8_t *sptr, uint8_t *dptr, int dx, int dy, @@ -121,6 +122,10 @@ static av_cold int flashsv_encode_init(AVCodecContext *avctx) nb_blocks = h_blocks * v_blocks; s->packet_size = 4 + nb_blocks * (2 + 3 * BLOCK_WIDTH * BLOCK_HEIGHT); + s->compression_level = avctx->compression_level == FF_COMPRESSION_DEFAULT + ? Z_DEFAULT_COMPRESSION + : av_clip(avctx->compression_level, 0, 9); + return 0; } @@ -170,9 +175,10 @@ static int encode_bitstream(FlashSVContext *s, const AVFrame *p, uint8_t *buf, p->linesize[0], previous_frame); if (res || *I_frame) { - unsigned long zsize = 3 * block_width * block_height; + unsigned long zsize = 3 * block_width * block_height + 12; ret = compress2(ptr + 2, &zsize, s->tmpblock, - 3 * cur_blk_width * cur_blk_height, 9); + 3 * cur_blk_width * cur_blk_height, + s->compression_level); if (ret != Z_OK) av_log(s->avctx, AV_LOG_ERROR,