From patchwork Tue May 3 16:13:18 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Traian Coza X-Patchwork-Id: 35567 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:a885:b0:7f:4be2:bd17 with SMTP id ca5csp496254pzb; Tue, 3 May 2022 09:14:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyKyJSKCrQeUuBuxeZfZsbIFgydPjRkassjM43mHHqFi2Ebx2uevOE4hgqAkrb7I8+KbDnN X-Received: by 2002:a05:6402:2710:b0:427:d087:b with SMTP id y16-20020a056402271000b00427d087000bmr8419499edd.11.1651594451118; Tue, 03 May 2022 09:14:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651594451; cv=none; d=google.com; s=arc-20160816; b=O3WyS11ECyR8BNh5FJqL4ZFid3qUkBKOnIXjEfRpKoRtQyM+Y0kFTc8AzUFKKoffBz 2E7jq7MznBWPAHSfCwlDDv5Kkc/MV4+Wbg+iZIw0Ykuy6jPctHnW8gjCH/Ab8JzNU/vJ mVjsRPiC5IcSVRXVHp27yKBoF3n7olFT7+0C/fjLokvt5COUJLpzCdE0p/Y9SMzBf+sJ TcaW9DLA7Qt1FEYFtsu36PxkH8W/up8cWlMIVbpTOhPPy78yN5HMgnm3udrOZ3H0gWTO zkl5nfCRFJVlAo00BHG1F4sSDMmHKCKBaNDZBZMGbuAMKSiMrpYjQWzwfHduAR8NL0tW lj8Q== 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:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=3V0TNRlPtGJBFmsHjSKhDa12liJYcv9Vwp+rGrmw1iM=; b=qN3XhUd1FZSl21qvfc1QK2LJ6phAOEw96eI30UP2k5bLqm6+1s1XLViUXPrTSO1b6B 1zNyE4nKFgMXiKrpNqOM0VUWqRcYwKr7fxTSxPhf8MXnQU8ZsiW8TzDXBuJP59umtlDo +cdvqCJEcr+5oMvd4VHtAgjs5do6CC1rrTsJDpdMn4OuNxWrLElWURFi/26plKgV53a9 5wzL7pnUd/2y4ubh2gVsVo7PBkAj7mLSMwtp3hHzWDzabERL9tgRpFrooSiLjTdOfMrH Sy/ee4KH+lJw9ZDGv0NL+PMAyPcP+3KKK4eOj7UpVxaiPOvCJZBWxuFJwGG37EXXF8lI uaew== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Sq0D8TFY; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id q22-20020a170906389600b006f39d4eb670si14927073ejd.966.2022.05.03.09.14.10; Tue, 03 May 2022 09:14:11 -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=20210112 header.b=Sq0D8TFY; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 194CB68B38C; Tue, 3 May 2022 19:13:57 +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 18E0968B37A for ; Tue, 3 May 2022 19:13:51 +0300 (EEST) Received: by mail-qk1-f173.google.com with SMTP id e128so14106973qkd.7 for ; Tue, 03 May 2022 09:13:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=o3oBhOtsQLpEU5KT3KHYlSGTxv6Gdy8Z9odcZowbEgQ=; b=Sq0D8TFY3d/32XBsqy40xaf4lw7Bkw7hIPY8NP5hMaXa7WqpXzskKp4rdr7HeF7UO5 KLLOPJ2MUUS/6buLpcd3b9YtqUR6J+CBHv5wSFSdbdKOc+U3FQxqhHCLaXhHuDL0D0bm u7vFADN9HKiI9PjApKpWKpMHDRs0RMbn/h9jhIkzFefJ7z0I+cyeC8b/6MKo0moV4KBF op5Q3m/DsDusJ1QknnSaSGx38QOcouvqMsomf7UQ2PjW2NCED4FZOfMBdtSgTKYZl3+l /Tf7Paa3zsDwtlVKUnrllgADGEFebU+RxoY0YcYvSJna+vwjkeI5tY+dQjrkkDXY1CMY TQgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=o3oBhOtsQLpEU5KT3KHYlSGTxv6Gdy8Z9odcZowbEgQ=; b=DlmUuxnKTygt3Xtg4tbf9tqpf/DKSukZAUzxVrCwSHDfAUBncZmkJPJEWYDE7HcMeW l0WnFeHlx2YgoqAh+Ey0GFzWAIjZju6xBVOFBJkWXJZnX6n1jqq+tjdHGUTuZy8ZixVI 7Q/GT7GB2WXhB/yNZIYNnsFMi6EuY0Esf7NR0Y3uiELHG5DQmLQR0txFWLPdXQr/ge4P bhhslS5cSwdUsRDrmdoZX+JNOsrcgpmEdYPWIvid1cjGmZgz6a522F/cXuoE72hK2Mig +RVnOcxdUNEd6r8YKaePItXiwiydkG8wK8wyKl4nWWo33ICeTDiVYRT5mL1oLY7LFCmq o0Kw== X-Gm-Message-State: AOAM531PubAIApTXmUUc/B6CvNp5asfFGNQMZ+LrQO1trWCOEr5IC0MF b3vHi59Mc/3lZleMNP9Rljj3g+pcjp4d X-Received: by 2002:a05:620a:448f:b0:69f:e9a2:9403 with SMTP id x15-20020a05620a448f00b0069fe9a29403mr6516268qkp.122.1651594429371; Tue, 03 May 2022 09:13:49 -0700 (PDT) Received: from thinkpad.. ([66.220.203.136]) by smtp.gmail.com with ESMTPSA id fp35-20020a05622a50a300b002f39b99f67asm5812731qtb.20.2022.05.03.09.13.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 03 May 2022 09:13:48 -0700 (PDT) From: Traian Coza To: ffmpeg-devel@ffmpeg.org Date: Tue, 3 May 2022 12:13:18 -0400 Message-Id: <20220503161328.842587-3-traian.coza@gmail.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220503161328.842587-1-traian.coza@gmail.com> References: <20220503161328.842587-1-traian.coza@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 02/12] Render only when necessary 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: Traian Coza Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: jHO6mZ09DRuP --- fftools/ffmpeg.c | 12 ++++++++++-- libavfilter/vf_subtitles.c | 1 - 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index 53717d3ebb..dea2aec2ce 100644 --- a/fftools/ffmpeg.c +++ b/fftools/ffmpeg.c @@ -2422,9 +2422,8 @@ static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output, goto out; ist->frames_decoded++; - - render_avsub_ass(ist, &subtitle); + int rendered = 0; for (i = 0; i < nb_output_streams; i++) { OutputStream *ost = output_streams[i]; @@ -2432,6 +2431,15 @@ static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output, || ost->enc->type != AVMEDIA_TYPE_SUBTITLE) continue; + if (avcodec_descriptor_get(ost->enc_ctx->codec_id)->props & AV_CODEC_PROP_BITMAP_SUB) + if (avcodec_descriptor_get(ist->dec_ctx->codec_id)->props & AV_CODEC_PROP_TEXT_SUB) + if (!rendered) { + render_avsub_ass(ist, &subtitle); + for (int r = 0; r < subtitle.num_rects; r++) + subtitle.rects[r]->type = SUBTITLE_BITMAP; + rendered = 1; + } + do_subtitle_out(output_files[ost->file_index], ost, &subtitle); } diff --git a/libavfilter/vf_subtitles.c b/libavfilter/vf_subtitles.c index f751786033..16f9c3fff6 100644 --- a/libavfilter/vf_subtitles.c +++ b/libavfilter/vf_subtitles.c @@ -307,7 +307,6 @@ void render_avsub_ass(InputStream *ist, AVSubtitle *sub) rect->data[0][y_rect * rect->w + x_rect] = color; } } - rect->type = SUBTITLE_BITMAP; ass_free_track(track); }