From patchwork Mon Mar 11 00:40:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marth64 X-Patchwork-Id: 46943 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dc95:b0:1a1:738b:6bc0 with SMTP id ky21csp950024pzb; Sun, 10 Mar 2024 17:41:01 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCUxuXyJ3xJnH5iRziywuOfMgMDXA5EnS7nZJ5AtGITrXaiQ3N7hxmK8TLrjP5+LerwMvVUbot0Lb5uaixgIRBh4yeHWk0EUyDelnA== X-Google-Smtp-Source: AGHT+IEpadpf/cIw+F1HUYLT8+s02k9OLiY4P7a8q9ennydQzJLE94YWG6brPUIe3fm4tFf93AU0 X-Received: by 2002:a17:906:38e:b0:a46:28c2:49b2 with SMTP id b14-20020a170906038e00b00a4628c249b2mr713735eja.24.1710117661751; Sun, 10 Mar 2024 17:41:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1710117661; cv=none; d=google.com; s=arc-20160816; b=xYlKRNgQXY5DnsINIpPdfoC6RNCayFy0D4XOXUHaS/aeCE3yiGAZzJW4heL9tND+sS 3R8Mh8U6Seex5NILOqcQrQzq7ITEyr0JLvCQsSylC8oVG6I32poEotQXgxWhV8RZ5PKA 9lh5JsJCXADGsbCxlbDGmWFwyZR6CMTqL4KQOj90bQcE8SzDG3eBRduxBNrphX+ymrrP n82wRCqejoCRYDhgCvpjHZ5Z7RPLH+Q6EcvNJARuTKkOnzBHIjblchGftwBfTd81QuLH FFmggs02pfNBkv35YMU98JG22/YYYpmydGIaf1YVdDpKPaLEzXAo4vAJhhoLsjQEqENy QYug== 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:message-id:date:to:from :dkim-signature:delivered-to; bh=NPtdhqhzZJT0/9Hb04cHz5UmteB6EeJfQfFxnKekQ/o=; fh=PlWMzmI9LD2qGS7ipLrQl8z0iaQTLQLHzoGuXcBzpCg=; b=BmE1DJYJA8lC1810/UDZHeFVatHjOeSnmS/ATWjfq7HE3haYlJXhinzluQGdwt3YVo jeJLpC9p03BKLoT12rSZzr+pVC5kks3rqaNZInxYcJrIuFUH9wc5xP/ISFP0CZmXLA+/ 45/D63qs1mOKMF0PLxRkvI6v2PaqC9Xa03HT3pe+NBYpzNCIJKNTEmICCw7qzNVeGEe6 4nBwJKSs9giqYzeMQ9JOjvosGkKiyYZlcgbbI00E1V9B9YiGjKbhHLfiNLoY4REgK4h0 zYQdv6n3PEmTNAtN9LfDbYJ2fmpWDm84DCK8C+JvR8ss3ZL8tJE9fEpNvwUBZnPnT4uL 5CjA==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@proxyid.net header.s=google header.b="U+/LFu04"; 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 js23-20020a170906ca9700b00a4450b86a17si2030155ejb.616.2024.03.10.17.41.01; Sun, 10 Mar 2024 17:41:01 -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=@proxyid.net header.s=google header.b="U+/LFu04"; 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 123BB68CE20; Mon, 11 Mar 2024 02:40:58 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-il1-f228.google.com (mail-il1-f228.google.com [209.85.166.228]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 465C468C79B for ; Mon, 11 Mar 2024 02:40:51 +0200 (EET) Received: by mail-il1-f228.google.com with SMTP id e9e14a558f8ab-3663c6fba33so14931935ab.1 for ; Sun, 10 Mar 2024 17:40:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxyid.net; s=google; t=1710117649; x=1710722449; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=y5TrKDWycE+1qRhzl0ZsSKuy1XmjqTaWL3x4eiYRl0M=; b=U+/LFu04rDx2o327lBhXhhpcWUc9IuFgjFnpjUQJQc43G4TgOaiqTvPYtE5Q3vkl+4 p4MekPv6kLGNFQlUg4Lq6CMNzHafv+34nqhi9A4DTPchBQ9nEjJm9wOkpVqPyyjRTZ9n jn0YiHy1Pi7Wb8rW+Hw8UkhCm+G/tigo126PnwnyNkfR2dPpkRGHKP65w6ecfzt2a6rf +HFHx8LhY8szbgou7y0BHKW5IAqrOcrCG6mCWaB5xaxoo+P2SzHRS2y33jMcp7QgH/mo hhGh04yak5+crNzbIjOTRwtxHEJ4DiGHT59Si1pRgI6UZu0QX+2JQ80eZaDl1SrCeAaA 9dWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710117649; x=1710722449; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=y5TrKDWycE+1qRhzl0ZsSKuy1XmjqTaWL3x4eiYRl0M=; b=nEhxn1i5m5I5VkbXqF9ChbheCP3yMJqkY3YrCm7VE7+C9aaKUeU3EKUnvzpzB9a/Nt PJUIf696E/66Gy8NnBvKafcjkq9GCgnPfy9tQzGCIvD7kAxsKkwTcwaQ0E0uk8oPjDm5 HsTXP7odMS5fruh8679LlrOlacyY0cVz2TDON+aXl7LlYvqXvg6fEYItcZAv2uwB3lp2 D/K2IaaybHpBnadEbEDVopCNPykh/gMOB7BqlvikIBMxrnV4Up8NZkA+HmKaFRG7MiJn AJVZtNoP5FLINFU0D7a08b/Mx/95LGnei9VglJKbXXv/uW+CR8NPA8GDZcJFGX3mLbZW fD6A== X-Gm-Message-State: AOJu0YwxzCO73KTiEu3cAifdrmhuFuEVZKf0s4Bo8pkCGsg4b9+zjqbn 7yRPgTgOBlEwGvptGl0HN9a14M5XkC+w83RSY25T/VFVeEemdBRxb7+QzCtRyH0xf0yUkYaepP4 GJJjuJ15kteiTvc2pBdIN3hiIjYIjHgjZu9x5AUv0 X-Received: by 2002:a05:6e02:13e9:b0:366:4967:d934 with SMTP id w9-20020a056e0213e900b003664967d934mr2374589ilj.1.1710117649286; Sun, 10 Mar 2024 17:40:49 -0700 (PDT) Received: from wsx-cc1-001.. (c-76-141-249-38.hsd1.il.comcast.net. [76.141.249.38]) by smtp-relay.gmail.com with ESMTPS id bg16-20020a056e02311000b003652f9d5f19sm219278ilb.53.2024.03.10.17.40.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 10 Mar 2024 17:40:49 -0700 (PDT) X-Relaying-Domain: proxyid.net From: Marth64 To: ffmpeg-devel@ffmpeg.org Date: Sun, 10 Mar 2024 19:40:47 -0500 Message-Id: <20240311004047.140612-1-marth64@proxyid.net> X-Mailer: git-send-email 2.34.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/ccaption_dec: don't print multiple \pos tags per cue 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: Marth64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: rYFT5TzXF/sQ Currently, Closed Captions decoder prints multiple \pos ASS tags per line, per cue. This is invalid behavior, because only the first \pos tag in a cue is honored by ASS anyway. Don't write multiple \pos tags. Signed-off-by: Marth64 --- libavcodec/ccaption_dec.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libavcodec/ccaption_dec.c b/libavcodec/ccaption_dec.c index faf058ce97..9d4a93647c 100644 --- a/libavcodec/ccaption_dec.c +++ b/libavcodec/ccaption_dec.c @@ -456,7 +456,7 @@ static void roll_up(CCaptionSubContext *ctx) static int capture_screen(CCaptionSubContext *ctx) { - int i, j, tab = 0; + int i, j, tab = 0, seen_row = 0; struct Screen *screen = ctx->screen + ctx->active_screen; enum cc_font prev_font = CCFONT_REGULAR; enum cc_color_code prev_color = CCCOL_WHITE; @@ -496,7 +496,11 @@ static int capture_screen(CCaptionSubContext *ctx) x = ASS_DEFAULT_PLAYRESX * (0.1 + 0.0250 * j); y = ASS_DEFAULT_PLAYRESY * (0.1 + 0.0533 * i); - av_bprintf(&ctx->buffer[bidx], "{\\an7}{\\pos(%d,%d)}", x, y); + + if (!seen_row) { + av_bprintf(&ctx->buffer[bidx], "{\\an7}{\\pos(%d,%d)}", x, y); + seen_row = 1; + } for (; j < SCREEN_COLUMNS; j++) { const char *e_tag = "", *s_tag = "", *c_tag = "", *b_tag = "";