From patchwork Tue Apr 2 05:24:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marth64 X-Patchwork-Id: 47726 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9f96:b0:1a3:b6bb:3029 with SMTP id mm22csp1148943pzb; Mon, 1 Apr 2024 22:25:22 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXseaeAqu5FHZSGCmb0NjUYyVOvBTIH85QJ264AEEgJyZvyk6hz8+gyIaU3j2gZP6rUbH6d0/5BWkPhW382xTYi4urC6cbnmyEUDw== X-Google-Smtp-Source: AGHT+IHbxbOrrEHu3hILFJA4ehRtVeQdW+4GRvXdfk7w5kAV1K+ymL8+uF1YjajOJtdWq7sRvcR/ X-Received: by 2002:a19:7708:0:b0:515:9ea7:cf8b with SMTP id s8-20020a197708000000b005159ea7cf8bmr5287044lfc.6.1712035522567; Mon, 01 Apr 2024 22:25:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1712035522; cv=none; d=google.com; s=arc-20160816; b=xlBSItnjNP003g0unJ6k/ITQCbkpIH7Tm/YBeuOQeQ6mnwTqhPGUjcJihYnxO8RrqI 1hGaiHW5LrB3aFQ39SC/Ky6rf/JqSXoDH0E3vrUInwAqDi6OrExGxqOz2ioYm/EPn0PK OxZxzAmN2lek5igY9JItGQyo2j8W5HUdP/n6nk0ihTiWgJYDRSaP/HLzqKVLwgQ42Si7 bkxkddf4cVD6uzCyMMFXCIWZNcegUqLQetmzGD8SyPoBdltZfaTDqM84HfpjiupXoWme QlK1evxhedHLSjvubBjDFJnrWb/QbBv9nfyhonOZmsv4M53Zsm0copxUbd6RC+XdaRdF LDMg== 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=kWlO9UGM+u4QVJg9fWkUv04hFqTFKdDV8X6DhIBLDR0=; fh=PlWMzmI9LD2qGS7ipLrQl8z0iaQTLQLHzoGuXcBzpCg=; b=kTb8NwmLN6sD76Ijrc08NGgHBJKDSMApAS78SthOxw/b3aKHsGo3ktuAFhIFS7zEvP 3QKt1Suejj3oaTO3Op4mnl18OZyELKTxK2SAcpJm4cJRqpndPacVuqkg6nzd25V51gH5 0EmhN6IFYHqaXKPtsTDwVaoi+GeGcAqlurnrjLIhKPKfOBnvJaF1vGG7a773vntX0rR0 cirQqXYxzrGRUoolLJTOl8vXsOtj3x8jUSxSwI9t24/4bGNX2GawUKt4jzIKgF+KjcF8 zm5T8dovOsv4huxgeWAk9ttCBYdLS7w4iRQrvp8Rfcou2lWqr8AY1ouiQHhCYYL/3T7M KdcQ==; 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="QJ/56ZF1"; 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 js7-20020a17090797c700b00a46f88c0cc9si5397781ejc.873.2024.04.01.22.25.22; Mon, 01 Apr 2024 22:25:22 -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="QJ/56ZF1"; 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 EF89068D118; Tue, 2 Apr 2024 08:25:11 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f228.google.com (mail-oi1-f228.google.com [209.85.167.228]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EDBE768C90C for ; Tue, 2 Apr 2024 08:25:03 +0300 (EEST) Received: by mail-oi1-f228.google.com with SMTP id 5614622812f47-3c3d2d0e86dso2260115b6e.2 for ; Mon, 01 Apr 2024 22:25:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxyid.net; s=google; t=1712035502; x=1712640302; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=eyfh4MNGAyAajuKLF1hxunu0ZbFLrTafh0hkcbspn8I=; b=QJ/56ZF1xidX9knJkVKr3hyy5il6RtV6C10cBzr45qpkyjJ37xQVTkGxy4ZAp54Y7Z cVGMhjnMuyB721oWIi/TKMyjErs4x0nxoDsE8KRgJHnNGU8E+XAj8ot/0aiYRqD018md MuDMs9xoFhyTxHL5iSzmDhuJLicivqqBcUP7Two8eK/B5l+zYF0IiW7jW+DqBG8FfJ0l mVu3ia/FPsszIY69hgEQYH6CB8J12eAC/CxB3wfGJjw+UUFXqdN6xa1BreymN4k45R7f ZUt6petdI77O16yZP71OQHXwzGi0467lUQX4stbluEjVB/XZC5XgqK6FlHB6S/ltLWMB dhIw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712035502; x=1712640302; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=eyfh4MNGAyAajuKLF1hxunu0ZbFLrTafh0hkcbspn8I=; b=e1O2CZdqYFx5ArCfYrd95JW7K6F3L9tWlUpS9Q+cDkEItgLcUesXTS5Q9ZLLlHxQaC W0msJzUs6c7s17m++IXLFo1RB2yZ6DCPfn0frdeSeuckSt562yiw8m24pSVngivz9HF5 zQo1kTobYj3n+4ZMfDGYRiRwNpV1EVjFDW+FM/rZ9+G8viwtLHoCWN7a1StTHgADMfh+ v8C5ty2EkQ044KIRabr8sMORIeY0MW3XWYKtwGzKHNj+g72TrwjWJC7qOTTuyCXQMglm m4BgrShCkjsruB6x/nw9+kPbEhdaBBqxUcZWEkPoeCXuhkSZh6PuOtvSh33gSLnHeDi2 Su6g== X-Gm-Message-State: AOJu0YzB6yLFfOvT2X10EsztkUMAcECwlnWWdpGYlsYhHXpxxfD1nk0v 4NcepZ8104aAfyTr8YM0HHjzhDe/lH21TMSFQ/uFQ5Kt+rEwWogwscWbLb2RRk9R5W0YkRSXKbz 2EiQHIB8307Wc6ubj6iJ0jM+905m9gDlZuUqNw5IA X-Received: by 2002:a05:6808:238e:b0:3c3:e682:7e2c with SMTP id bp14-20020a056808238e00b003c3e6827e2cmr14359529oib.7.1712035502629; Mon, 01 Apr 2024 22:25:02 -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 ka2-20020a056a00938200b006eabc5f5bbcsm760190pfb.8.2024.04.01.22.25.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Apr 2024 22:25:02 -0700 (PDT) X-Relaying-Domain: proxyid.net From: Marth64 To: ffmpeg-devel@ffmpeg.org Date: Tue, 2 Apr 2024 00:24:53 -0500 Message-Id: <20240402052458.2034678-2-marth64@proxyid.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240402052458.2034678-1-marth64@proxyid.net> References: <20240402052458.2034678-1-marth64@proxyid.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v11 1/6] avformat/subtitles: extend ff_subtitles_queue_insert() to support not yet available events 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: ZgbGt0nGA+LT If ff_subtitles_queue_insert() were given a NULL buffer with 0 length, it would still attempt to grow the packet or memcpy depending on if merge option is enabled. In this commit, allow passing a NULL buffer with 0 length without attempting to do such operations. This way, if a subtitle demuxer happens to pass an empty cue or wants to use av_get_packet() to read bytes, there are no unnecessary operations on the packet after it is allocated. Signed-off-by: Marth64 --- libavformat/subtitles.c | 23 +++++++++++++++-------- libavformat/subtitles.h | 2 +- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/libavformat/subtitles.c b/libavformat/subtitles.c index d7723c497f..69e4df88a3 100644 --- a/libavformat/subtitles.c +++ b/libavformat/subtitles.c @@ -21,6 +21,7 @@ #include "avformat.h" #include "subtitles.h" #include "avio_internal.h" +#include "libavutil/avassert.h" #include "libavutil/avstring.h" #include "libavutil/mem.h" @@ -112,15 +113,19 @@ AVPacket *ff_subtitles_queue_insert(FFDemuxSubtitlesQueue *q, { AVPacket **subs, *sub; + av_assert1(event || len == 0); + if (merge && q->nb_subs > 0) { /* merge with previous event */ int old_len; sub = q->subs[q->nb_subs - 1]; old_len = sub->size; - if (av_grow_packet(sub, len) < 0) - return NULL; - memcpy(sub->data + old_len, event, len); + if (event) { + if (av_grow_packet(sub, len) < 0) + return NULL; + memcpy(sub->data + old_len, event, len); + } } else { /* new event */ @@ -134,14 +139,16 @@ AVPacket *ff_subtitles_queue_insert(FFDemuxSubtitlesQueue *q, sub = av_packet_alloc(); if (!sub) return NULL; - if (av_new_packet(sub, len) < 0) { - av_packet_free(&sub); - return NULL; + if (event) { + if (av_new_packet(sub, len) < 0) { + av_packet_free(&sub); + return NULL; + } + memcpy(sub->data, event, len); } - subs[q->nb_subs++] = sub; sub->flags |= AV_PKT_FLAG_KEY; sub->pts = sub->dts = 0; - memcpy(sub->data, event, len); + subs[q->nb_subs++] = sub; } return sub; } diff --git a/libavformat/subtitles.h b/libavformat/subtitles.h index 88665663c5..ad6b96ca6a 100644 --- a/libavformat/subtitles.h +++ b/libavformat/subtitles.h @@ -112,7 +112,7 @@ typedef struct { /** * Insert a new subtitle event. * - * @param event the subtitle line, may not be zero terminated + * @param event the subtitle line (not zero terminated) or NULL on not yet available event * @param len the length of the event (in strlen() sense, so without '\0') * @param merge set to 1 if the current event should be concatenated with the * previous one instead of adding a new entry, 0 otherwise From patchwork Tue Apr 2 05:24:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marth64 X-Patchwork-Id: 47727 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9f96:b0:1a3:b6bb:3029 with SMTP id mm22csp1148987pzb; Mon, 1 Apr 2024 22:25:30 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWZkRClfhSygv26Mzt8U9lUTLi+qTna3GtgJNTlAbV/FF/6MtTuHf7adnTOAHUfJKq/2efYGeepdWkqZLCeyEY+eb5XKbIIywCYGg== X-Google-Smtp-Source: AGHT+IHetb3f0ybnUIJM15V0Bs19S37BrVMU5ICqgrQhFbq9/vXJGuBWg0gsCDI924egj3d6HNq7 X-Received: by 2002:a05:6402:40c4:b0:56d:cc5d:d750 with SMTP id z4-20020a05640240c400b0056dcc5dd750mr4004229edb.2.1712035530674; Mon, 01 Apr 2024 22:25:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1712035530; cv=none; d=google.com; s=arc-20160816; b=GalaiYUk7OIBc1/ZV1L85sPx8Vsuk2WUCsMusSQHwmpYmJ2McdjyCidJFK2+GKtra5 sfzymbb03ZYgKamvtUdmsa6vWw3hOj6HDcK1Di76pW6Z7zz4MnRINnmNxD14mt+lyTGa V0Tqbp1niqTE/oLJg4xm09ZZ+JZnM+POHK1f5wcua1zeMfNbORFR8LwULe/xf7oA/17P xl7BdVulWZ+cX8fPWxWOAqMJcgAZy9jyq2LbbmVN7BdRLGUTRTTwZzp5HffvzdHoE/zF ZxtgvoTfuqcspNLL2tBppH8h6cKxlDZ4Mcl6MmxP1SGZKz+SON1OaZm3Ner9baHznjdY jolw== 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=Rza7sFczrolFfPm0xjTBcbn9JCXinldCWwRu8NpMhXQ=; fh=PlWMzmI9LD2qGS7ipLrQl8z0iaQTLQLHzoGuXcBzpCg=; b=dFTkGt1Yz71lhyOhQRNfTPxysnn2GCDQLBzErW9nCphAePoUQq7ufwaCkAhdy/lvJ/ 8O50OBSWEKSmB1W6YbU72w5o4rS4dPtl17o/+XPALB5fI4aY5UbC2CwSOPUuUd8FXo6s 93/RCuVfMYE7o37zP6BXWcnWPIK5B7GnnZUyEpm7lqC5IMQi1hUjab330J0krKDRHL3C /59BRhEdiB0A82gDaM4sXBuoQRfmk7M2lqHNAIu3zJZruE4T5i0dM2+Pa246bfndkAcI vkxVGBivGTi+qoQ+gTwQTPIdgca6mKK02HZFVHn+PfqcnVW3Xlq/LuryFdOxyt1QvkE9 JXfw==; 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=guG8u3vh; 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 x19-20020a50d613000000b0056c2c543eb7si5154306edi.644.2024.04.01.22.25.30; Mon, 01 Apr 2024 22:25: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=@proxyid.net header.s=google header.b=guG8u3vh; 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 C922968D131; Tue, 2 Apr 2024 08:25:12 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f226.google.com (mail-pf1-f226.google.com [209.85.210.226]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1F81D68CF98 for ; Tue, 2 Apr 2024 08:25:05 +0300 (EEST) Received: by mail-pf1-f226.google.com with SMTP id d2e1a72fcca58-6e709e0c123so4126066b3a.1 for ; Mon, 01 Apr 2024 22:25:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxyid.net; s=google; t=1712035503; x=1712640303; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3wc0mTDEJmOcw2gH+rv3Val4QqTTuicwz/Y2FfEZ5WM=; b=guG8u3vhEooGnia5DMnkXHA6us/oEeb9J4URGZuvzNlDXFqu+XHAkAEfp6rJZH90kq EymXY6RWfvAKWtQIHgfBjzWK8ohcwx7ksnAHTgeYQXQUF0z68ey8NxjsKap99DGBa+Wz 2nMVjeHs7FIXRgoR4j4S5AYrJo/qIz62yURKpibhkFPtHl4UpKFkcq0lTRiTzGPOTZK8 /q6GZctVaWv5wDIjyHZMDn0SdFEqYVa8cLCXkoIiOg5Z1NBA7ZcgD8J0ug6fjqsOrKLG zSmpMZh0+8H9N9OLIRM4DxEQgJyyrvf87FbE3xA5odiUSV/1gmeprQtQo6/l28Dp/ILV gOXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712035503; x=1712640303; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3wc0mTDEJmOcw2gH+rv3Val4QqTTuicwz/Y2FfEZ5WM=; b=c3GnqPmRtC3PZp6UjkKU0jZFLHt6kv2wjMfgvv1T9aM6nzhoWXlKoKKfgETZZige8U phh9LPwcOGUhnc5wd8JBvZuCLuVocGFwNo5xECdK9SNohblRxldjEV0QYIuCYjra0VXD rfeKwhj7n42VK2m/57WzloXbI8O0g8OViJZDh/LBLnFlLfmZxqejfHCTRLVDTGyeyYU1 XtYqSrqQqqPplfnK8r9NlT2Zt7Kleu8yEYxFDxMl5LmrZyRk+u/8XnTzM5ySmauFSrgj YSIkg+pHFoeCm5TD2MuAPDKLhsGDDebLr8ULK5UORMG/p1VpbZSTADeXxgNwZ6QDa4/j OuRw== X-Gm-Message-State: AOJu0Ywpm05cALv8UmEsB73FJnm8fY23eeyiSNPsTyonCUGjxIAe/o8Z 5FxNXsVAaPFEUuCz3kaUrhGOQgyk9iQ+2SErtV3yL5MgwPu4ucYTEbVVnACVkpzx7eAUDeUx/8t P6rClHsFxsvHxRwxdmBvNlRNu5xzBOoTFYshcpiTS X-Received: by 2002:a05:6a00:138a:b0:6ea:7a14:2e20 with SMTP id t10-20020a056a00138a00b006ea7a142e20mr12348999pfg.3.1712035503253; Mon, 01 Apr 2024 22:25:03 -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 ka2-20020a056a00938200b006eabc5f5bbcsm760190pfb.8.2024.04.01.22.25.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Apr 2024 22:25:03 -0700 (PDT) X-Relaying-Domain: proxyid.net From: Marth64 To: ffmpeg-devel@ffmpeg.org Date: Tue, 2 Apr 2024 00:24:54 -0500 Message-Id: <20240402052458.2034678-3-marth64@proxyid.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240402052458.2034678-1-marth64@proxyid.net> References: <20240402052458.2034678-1-marth64@proxyid.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v11 2/6] avformat/rcwtdec: add RCWT Closed Captions demuxer 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: vkd+3pmOKlrF RCWT (Raw Captions With Time) is a format native to ccextractor, a commonly used OSS tool for processing 608/708 Closed Captions (CC). RCWT can be used to archive the original extracted CC bitstream. The muxer was added in January 2024. In this commit, add the demuxer. One can now demux RCWT files for rendering in ccaption_dec or interop with ccextractor (which produces RCWT). Using the muxer/demuxer combo, the CC bits can be kept for processing or rendering with either tool. This can be an effective way to backup an original CC stream, including format extensions like EIA-708 and overall original presentation. Signed-off-by: Marth64 --- doc/demuxers.texi | 30 ++++++++++ libavformat/Makefile | 1 + libavformat/allformats.c | 1 + libavformat/rcwtdec.c | 122 +++++++++++++++++++++++++++++++++++++++ 4 files changed, 154 insertions(+) create mode 100644 libavformat/rcwtdec.c diff --git a/doc/demuxers.texi b/doc/demuxers.texi index b70f3a38d7..04293c4813 100644 --- a/doc/demuxers.texi +++ b/doc/demuxers.texi @@ -1038,6 +1038,36 @@ the command: ffplay -f rawvideo -pixel_format rgb24 -video_size 320x240 -framerate 10 input.raw @end example +@anchor{rcwtdec} +@section rcwt + +RCWT (Raw Captions With Time) is a format native to ccextractor, a commonly +used open source tool for processing 608/708 Closed Captions (CC) sources. +For more information on the format, see @ref{rcwtenc,,,ffmpeg-formats}. + +This demuxer implements the specification as of March 2024, which has +been stable and unchanged since April 2014. + +@subsection Examples + +@itemize +@item +Render CC to ASS using the built-in decoder: +@example +ffmpeg -i CC.rcwt.bin CC.ass +@end example +Note that if your output appears to be empty, you may have to manually +set the decoder's @option{data_field} option to pick the desired CC substream. + +@item +Convert an RCWT backup to Scenarist (SCC) format: +@example +ffmpeg -i CC.rcwt.bin -c:s copy CC.scc +@end example +Note that the SCC format does not support all of the possible CC extensions +that can be stored in RCWT (such as EIA-708). +@end itemize + @section sbg SBaGen script demuxer. diff --git a/libavformat/Makefile b/libavformat/Makefile index 44aa485029..5d77cba7f1 100644 --- a/libavformat/Makefile +++ b/libavformat/Makefile @@ -493,6 +493,7 @@ OBJS-$(CONFIG_QOA_DEMUXER) += qoadec.o OBJS-$(CONFIG_R3D_DEMUXER) += r3d.o OBJS-$(CONFIG_RAWVIDEO_DEMUXER) += rawvideodec.o OBJS-$(CONFIG_RAWVIDEO_MUXER) += rawenc.o +OBJS-$(CONFIG_RCWT_DEMUXER) += rcwtdec.o subtitles.o OBJS-$(CONFIG_RCWT_MUXER) += rcwtenc.o subtitles.o OBJS-$(CONFIG_REALTEXT_DEMUXER) += realtextdec.o subtitles.o OBJS-$(CONFIG_REDSPARK_DEMUXER) += redspark.o diff --git a/libavformat/allformats.c b/libavformat/allformats.c index 9df42bb87a..ae925dcf60 100644 --- a/libavformat/allformats.c +++ b/libavformat/allformats.c @@ -391,6 +391,7 @@ extern const FFInputFormat ff_qoa_demuxer; extern const FFInputFormat ff_r3d_demuxer; extern const FFInputFormat ff_rawvideo_demuxer; extern const FFOutputFormat ff_rawvideo_muxer; +extern const FFInputFormat ff_rcwt_demuxer; extern const FFOutputFormat ff_rcwt_muxer; extern const FFInputFormat ff_realtext_demuxer; extern const FFInputFormat ff_redspark_demuxer; diff --git a/libavformat/rcwtdec.c b/libavformat/rcwtdec.c new file mode 100644 index 0000000000..f6a007cbdb --- /dev/null +++ b/libavformat/rcwtdec.c @@ -0,0 +1,122 @@ +/* + * RCWT (Raw Captions With Time) demuxer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * RCWT (Raw Captions With Time) is a format native to ccextractor, a commonly + * used open source tool for processing 608/708 Closed Captions (CC) sources. + * + * This demuxer implements the specification as of March 2024, which has + * been stable and unchanged since April 2014. + * + * A free specification of RCWT can be found here: + * @url{https://github.com/CCExtractor/ccextractor/blob/master/docs/BINARY_FILE_FORMAT.TXT} + */ + +#include "avformat.h" +#include "demux.h" +#include "internal.h" +#include "subtitles.h" +#include "libavutil/intreadwrite.h" + +#define RCWT_HEADER_SIZE 11 + +typedef struct RCWTContext { + FFDemuxSubtitlesQueue q; +} RCWTContext; + +static int rcwt_read_header(AVFormatContext *avf) +{ + RCWTContext *rcwt = avf->priv_data; + + AVStream *st; + uint8_t header[RCWT_HEADER_SIZE]; + int ret; + + /* read header */ + ret = ffio_read_size(avf->pb, header, RCWT_HEADER_SIZE); + if (ret < 0) + return ret; + + if (AV_RB16(header + 6) != 0x0001) { + av_log(avf, AV_LOG_ERROR, "RCWT format version is not compatible " + "(only version 0.001 is known)\n"); + return AVERROR_INVALIDDATA; + } + + av_log(avf, AV_LOG_DEBUG, "RCWT writer application: %02X version: %02x\n", + header[3], header[5]); + + /* setup stream */ + st = avformat_new_stream(avf, NULL); + if (!st) + return AVERROR(ENOMEM); + + st->codecpar->codec_type = AVMEDIA_TYPE_SUBTITLE; + st->codecpar->codec_id = AV_CODEC_ID_EIA_608; + + avpriv_set_pts_info(st, 64, 1, 1000); + + /* demux */ + while (!avio_feof(avf->pb)) { + AVPacket *sub; + int64_t cluster_pos = avio_tell(avf->pb); + int64_t cluster_pts = avio_rl64(avf->pb); + int cluster_nb_blocks = avio_rl16(avf->pb); + + if (cluster_nb_blocks == 0) + continue; + + sub = ff_subtitles_queue_insert(&rcwt->q, NULL, 0, 0); + if (!sub) + return AVERROR(ENOMEM); + + ret = av_get_packet(avf->pb, sub, cluster_nb_blocks * 3); + if (ret < 0) + return ret; + + sub->pos = cluster_pos; + sub->pts = cluster_pts; + } + + ff_subtitles_queue_finalize(avf, &rcwt->q); + + return 0; +} + +static int rcwt_probe(const AVProbeData *p) +{ + return p->buf_size > RCWT_HEADER_SIZE && + AV_RB16(p->buf) == 0xCCCC && + AV_RB8(p->buf + 2) == 0xED && + AV_RB16(p->buf + 6) == 0x0001 ? 50 : 0; +} + +const FFInputFormat ff_rcwt_demuxer = { + .p.name = "rcwt", + .p.long_name = NULL_IF_CONFIG_SMALL("RCWT (Raw Captions With Time)"), + .p.flags = AVFMT_TS_DISCONT, + .priv_data_size = sizeof(RCWTContext), + .flags_internal = FF_INFMT_FLAG_INIT_CLEANUP, + .read_probe = rcwt_probe, + .read_header = rcwt_read_header, + .read_packet = ff_subtitles_read_packet, + .read_seek2 = ff_subtitles_read_seek, + .read_close = ff_subtitles_read_close +}; From patchwork Tue Apr 2 05:24:55 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marth64 X-Patchwork-Id: 47728 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9f96:b0:1a3:b6bb:3029 with SMTP id mm22csp1149034pzb; Mon, 1 Apr 2024 22:25:38 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWUtVqVCMwx8UalFBqDC0pFoX4EwhpdlNM3/fV+nMiS4rIR1tca1dn4QzRU/h6jG7fAcZWXr+zBljqdLKvFoR+t7/GRbv24xD7lzg== X-Google-Smtp-Source: AGHT+IFg0OYgrIsCok3l/z3MwIvX+Q8cUOsmSqUZEUi7naJydpWR7xNkESBWRo059IzSUpqZUaIj X-Received: by 2002:a17:907:86ac:b0:a4e:5fff:5e3f with SMTP id qa44-20020a17090786ac00b00a4e5fff5e3fmr3634030ejc.6.1712035538270; Mon, 01 Apr 2024 22:25:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1712035538; cv=none; d=google.com; s=arc-20160816; b=CDoqufqTw99gOdk1Jzl+XO9RCa1hlgnHaOAXW/UYaIt0qunb3iHHsZe6o9L5klLn3/ 8OGY3yZj2Cr0LmZb47bfq4lQ4xfAOnPuQAE74TMAg25hgKRIYMU1nAWB/A6lCqMKMgoA cgZVFJ75ynK/aehD2bbO5VzzeDt5PCZZYfJmgyyOHkofHKQTSX5oYy8bKG0wkq2YTWlF 8C7GcycW1NoGr0OgfNHDS/Zx1K/VnCdF4OZhGmrWvlGLJ2YWUjFjKI+QLUtL0Bl5xb/Y tdczdk6gLO74AeFpffa0TndOkaskaELH6e+9yDwBbbrF0gmwcPg4zHbp00shssJhVNwQ T5HQ== 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=g9SAri5YPSOntuwG0Zb2l/0MQ/3b/JMzU+mX7Ol6HyY=; fh=PlWMzmI9LD2qGS7ipLrQl8z0iaQTLQLHzoGuXcBzpCg=; b=dF/nv/m1HtW7eL+DWuEdnmuoeZqnZLmezBxNYaLUQj841kMcAIEzCbKVtoNXabG4DG VDb17a6/hWuKNBJyc+4GsVvQSJQPuVNckAbBWwdb2GnH3QTZmTeaLqE+2Bix9BTOTmtv u6tc1it1VNZc7kVT+XWqyt6WPlX8ZGoE9hKZskTQ3iS5OtKXxdmNUmNbSXnPBjysxIQx EOJc6wZjCTEop2O4DV93hzkcMsWWed4mkb0O+wuQRVP1pxYGys6co+FndtWNcmjLFBqu Tr3i+d631pvvJjW+Bz7D755R4/WQYKbjVBez5RNiubqYg13N0fFUTJlffiZlVn0jZwuj eUSA==; 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=E8F2UHUP; 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 qk38-20020a1709077fa600b00a4e2b3eee05si4821717ejc.1013.2024.04.01.22.25.37; Mon, 01 Apr 2024 22:25:38 -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=E8F2UHUP; 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 C268A68D119; Tue, 2 Apr 2024 08:25:13 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f228.google.com (mail-oi1-f228.google.com [209.85.167.228]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6AE6768CF98 for ; Tue, 2 Apr 2024 08:25:05 +0300 (EEST) Received: by mail-oi1-f228.google.com with SMTP id 5614622812f47-3c4f61cc3e7so22265b6e.2 for ; Mon, 01 Apr 2024 22:25:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxyid.net; s=google; t=1712035504; x=1712640304; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2hdeasFMt4SRqE6lPMlUE06ihPd3k9ZdfUMvj+A1aiY=; b=E8F2UHUPFisSbP7qxCEOXZwPq6YmTArP1zRaxdpa0k6DceCQ0ZM0qCuaEJbp5ddTTP n0Uq4Il/yzcv1YSZIoWfXSkl7NBcn8w/Hk/n7yj04JzqoFrUj9G/nVtNRTMTYR8tjDiO LFhodi5EXinsU597vjDSeg7DCrV3on3osSn8FAwUu03wdkE3ubxdsrL/tf7jykCmvCBq AkP/GkjMG3bgWZ7QPJWoKympvGuMxwPt4bkVLcXQ9VbueuR1CR04FQ/SfSeyZoqqKgug STPlBqAeqxVlnFFT9+Lfqrn6FI4pfcXls5h+mco1caMA+TW0AJpB9Z1Ews0qJku8YuAC 8Ipg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712035504; x=1712640304; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2hdeasFMt4SRqE6lPMlUE06ihPd3k9ZdfUMvj+A1aiY=; b=EPCtpdZEfIebhECcwH05x3N8bkOErR/zxa27MkxNiNBinUhmwHGpqxCqXrFDa+vpd6 0oyE5V88rRn4fdq2HhvullEj3nqBkwPC/Oriznq5+dxpSptcwIVzBP2WkuHCt3B5iHpY S9QnVRNzWdwI9ZP+kGgbWkTeZylQGPlXw31b94CdL/8/HO/VjzI8/esDxguPrOaYtF+Q bA4wm5hRgGC2hF5DXqc4rnysh9QYxM1krd7YlFMIl2mRg3OKWOGqTgAjwzF8qnF54z9w CT0Y0p1QSvufYne4D4oyD3AccqOyVhCDh0a8Z0XQsPok2nmL3cCKa3uk8IKCJCmg/tU4 Pbpw== X-Gm-Message-State: AOJu0Yz68Rocb/LWCYeC223mBc/5S4EVhOQ7WHyc8MtZ4A0YvjaZG6VC cXEZznpi2cjH9INWr4iPO3+cDgOb9bHWtCsy0VTvKXaKYoKbR60PahVfk8+Dn3+DNfJeVC7zDE8 wFxQTlS+9JGjTi7GXpv+2ytCLoWJdj/bd2TORwWx1 X-Received: by 2002:a05:6808:21a0:b0:3c4:dca6:5a4f with SMTP id be32-20020a05680821a000b003c4dca65a4fmr10125270oib.54.1712035503963; Mon, 01 Apr 2024 22:25:03 -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 ka2-20020a056a00938200b006eabc5f5bbcsm760190pfb.8.2024.04.01.22.25.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Apr 2024 22:25:03 -0700 (PDT) X-Relaying-Domain: proxyid.net From: Marth64 To: ffmpeg-devel@ffmpeg.org Date: Tue, 2 Apr 2024 00:24:55 -0500 Message-Id: <20240402052458.2034678-4-marth64@proxyid.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240402052458.2034678-1-marth64@proxyid.net> References: <20240402052458.2034678-1-marth64@proxyid.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v11 3/6] avformat/rcwtenc: don't assume .bin extension 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: RRAxTVmHC4WR Signed-off-by: Marth64 --- libavformat/rcwtenc.c | 1 - 1 file changed, 1 deletion(-) diff --git a/libavformat/rcwtenc.c b/libavformat/rcwtenc.c index f2459ef1d3..ed613d45f5 100644 --- a/libavformat/rcwtenc.c +++ b/libavformat/rcwtenc.c @@ -159,7 +159,6 @@ static int rcwt_write_trailer(AVFormatContext *avf) const FFOutputFormat ff_rcwt_muxer = { .p.name = "rcwt", .p.long_name = NULL_IF_CONFIG_SMALL("RCWT (Raw Captions With Time)"), - .p.extensions = "bin", .p.flags = AVFMT_GLOBALHEADER | AVFMT_VARIABLE_FPS | AVFMT_TS_NONSTRICT, .p.video_codec = AV_CODEC_ID_NONE, .p.audio_codec = AV_CODEC_ID_NONE, From patchwork Tue Apr 2 05:24:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marth64 X-Patchwork-Id: 47729 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9f96:b0:1a3:b6bb:3029 with SMTP id mm22csp1149065pzb; Mon, 1 Apr 2024 22:25:46 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVcI4YHS9cUxr3cnzNqJnxXKMgSiVuw4BLv+nt4m9E9fSSb/dpoJQrwiVBrUWRBskBVOgA5ukcqbb4giSKfXygyEqee004GLpxnNA== X-Google-Smtp-Source: AGHT+IG6ZqZjSf2dry3dMebTIUXMxxlcKgu0j91atRC6jnIt2jL44/Y4ov7tYAQq+i45FjXv3lb7 X-Received: by 2002:a17:906:abc1:b0:a47:533f:2d0f with SMTP id kq1-20020a170906abc100b00a47533f2d0fmr6725176ejb.66.1712035546237; Mon, 01 Apr 2024 22:25:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1712035546; cv=none; d=google.com; s=arc-20160816; b=P8VdNJ7jUxzyag5SQYiYO7y9Tj6KTZvYqbZa88jS8nHzYE6cKwdPGfmMY2ZE6QlNDW vtR0XqwI+0ALLylW6cBQcc9IziNcuo6C2yupfa+ROiLZ3D7ISvwBMDdSlAbPjxDBGwBR XmFqsCVtcWQ1RtIZU7pCEZtK/5te5rkLs7jVJxeFgzBi2zR3YvkrV5of9TZ86J022O8g YFXwf04ockqg6lZlXXmISYcvNGWRWeQtbT6suCwlOovyfd8pE489xKv12B38tC/98vWV AYYvNp6waI1/ZsKsuRGyq7TTS8CYZFAe9hVQmAf2bugZzrXaI0uzVxsOdocWWeVxO9UI /OVQ== 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=h+Sxfdidc/R+YeE7xW+q1x3aFM/4PM8k/1nFH2zwu88=; fh=PlWMzmI9LD2qGS7ipLrQl8z0iaQTLQLHzoGuXcBzpCg=; b=0VWKouyExVlI1qGFiKD4IHBh+DT7IG7ZunQDTNXGVQoFqFzPd98xF5zCq67D4O4kdy uIgPTbIIUn5ubt6jW3NNWCV6SNEY7cQu7JNOvmkPaflztn3m8n39RgAVxf7iqC/sh+a0 8s9EezFADao/ToNxpb7ciovsHyeQCTwMyM8AGvmhYM3GMAq0sQCpAIIsPYXYIBU3pltM E3C98ZAHKNMrhKN8lCKCArL6E7T99KMtX23Afabkx0mb7Rk4FaBmp9E2xqEt2X5Vof9s FPydqLn4g7JqIhky1qFfaI1zyF5SwNCftCWSo061s6qfYfAWRhkEcSeIoHMejoShQKw9 Jpog==; 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=NyCH6o3V; 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 h18-20020a170906111200b00a4e25416e54si4865991eja.6.2024.04.01.22.25.45; Mon, 01 Apr 2024 22:25:46 -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=NyCH6o3V; 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 A99E568D15B; Tue, 2 Apr 2024 08:25:14 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi1-f225.google.com (mail-oi1-f225.google.com [209.85.167.225]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CA0B768D118 for ; Tue, 2 Apr 2024 08:25:06 +0300 (EEST) Received: by mail-oi1-f225.google.com with SMTP id 5614622812f47-3c4f61cc3e7so22277b6e.2 for ; Mon, 01 Apr 2024 22:25:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxyid.net; s=google; t=1712035505; x=1712640305; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QMEzQlKDXMwLOGjLOpLw96YtigIcO4fE92b45WYHJeo=; b=NyCH6o3VZRWf1v3NmIZuvtAaefliFfTMkbtOKi2TJH9tj2wgPnQz+TmfPAFMc8T1Of Bw3Blb42NRdgie9UsqyhOAiLQnxL1pvD63iD+s/s7wsvhOL2oqI0smdAeY1hQIe2PmL5 m6h6C/kWk8+7Q9sV/hawxnuPf9u3n6af8FxcyHrVVLJYCUSrOd8MKTby+mAnrTLxqhk/ MJd39XrCErGfvy7/eoe9aQ1xMnqP+hkmg81SEHY3Zd8F2b17hyGE15TvnM9p+ou+Ss3k ZWIH7bGWglG0hy+MKWFzAhKOnxO9f6oAhMCA8XmjgTmWdoKnnzoPIN2mS8Hft79aGo9K tABw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712035505; x=1712640305; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QMEzQlKDXMwLOGjLOpLw96YtigIcO4fE92b45WYHJeo=; b=LsK+Ten51txJnKY1Ank3DVmQ1YTmUGDnActTbqGr3R3opDHFcxle7xOqiepDND7Flz 2y94IqPKUVjE+kBkg+ifYtCugufQLX1xX9Bk5wBjdn35NuqrY5JvQotjFuAYk8ancvpz vTa5U9dAWdsVFdkjlRGO6QlFkznHM/UuhEo+rNtTOdm/lju/hSd4te9/x3SNIGsbFKTM D6aMj1C+kbsqRX+6XU/sDH/yjWnWzribnJcLOEMNdte5O2cYeXzb6GClYzqVuifFzp0c LOq1wGJglHyG2LO54RS4t4eOvOBJ9t0D6CABnSEE7KhMPQsB+HUSonVuENAOMX8zLvVE /Y0w== X-Gm-Message-State: AOJu0Ywlc6meCO37WKlkAq/ZEPT4gs6KotHM010VQC0858XnEcOi9UuD oxhGayv0U4ReimWfbFr/8D1EM3SCrviK5Q5iDFGFfKlVmizhSGi2oupI/U+5oqBO3tsw8wf9Bux 5lYPwZbcV3UhtFW4R+JUbomGviEPJ5PYU8TTKGVW0 X-Received: by 2002:a05:6808:1281:b0:3c3:e621:51e3 with SMTP id a1-20020a056808128100b003c3e62151e3mr14293587oiw.41.1712035504603; Mon, 01 Apr 2024 22:25:04 -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 ka2-20020a056a00938200b006eabc5f5bbcsm760190pfb.8.2024.04.01.22.25.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Apr 2024 22:25:04 -0700 (PDT) X-Relaying-Domain: proxyid.net From: Marth64 To: ffmpeg-devel@ffmpeg.org Date: Tue, 2 Apr 2024 00:24:56 -0500 Message-Id: <20240402052458.2034678-5-marth64@proxyid.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240402052458.2034678-1-marth64@proxyid.net> References: <20240402052458.2034678-1-marth64@proxyid.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v11 4/6] avformat/rcwtenc: remove repeated documentation 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: Cr1fDJIoGhWe The high level summary of RCWT can be delegated doc/muxers, which makes it easier to maintain and more consistent with the documentation of the demuxer. Signed-off-by: Marth64 --- libavformat/rcwtenc.c | 5 ----- 1 file changed, 5 deletions(-) diff --git a/libavformat/rcwtenc.c b/libavformat/rcwtenc.c index ed613d45f5..270154b701 100644 --- a/libavformat/rcwtenc.c +++ b/libavformat/rcwtenc.c @@ -21,11 +21,6 @@ /* * RCWT (Raw Captions With Time) is a format native to ccextractor, a commonly * used open source tool for processing 608/708 Closed Captions (CC) sources. - * It can be used to archive the original, raw CC bitstream and to produce - * a source file for later CC processing or conversion. As a result, - * it also allows for interopability with ccextractor for processing CC data - * extracted via ffmpeg. The format is simple to parse and can be used - * to retain all lines and variants of CC. * * This muxer implements the specification as of March 2024, which has * been stable and unchanged since April 2014. From patchwork Tue Apr 2 05:24:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marth64 X-Patchwork-Id: 47730 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9f96:b0:1a3:b6bb:3029 with SMTP id mm22csp1149109pzb; Mon, 1 Apr 2024 22:25:54 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWhCHpTeSb3iBKxPHf8oHkBrBTTauhglCUt7BTCurvnEL1EXOBWDu8258ugjC+IwCJ8pEE8YgAWNuQFZIt8BZhfznEZqszUMJ5P0Q== X-Google-Smtp-Source: AGHT+IEj/+mWbD0JijWRTRmCgj2KFZerGHoR8yPM2YXWGXlsYejsAALEG1wVDVvub/YdJT9WsP7M X-Received: by 2002:a2e:920f:0:b0:2d7:46b:79fb with SMTP id k15-20020a2e920f000000b002d7046b79fbmr365045ljg.15.1712035554221; Mon, 01 Apr 2024 22:25:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1712035554; cv=none; d=google.com; s=arc-20160816; b=w9YU8EMHRuZofEIUcN8j+YiiULtAhjMJ31HZRWUDwTBSlqvb8m/YLaFCqQRyJLb71o tdM+poKA7EVmNR/92dke849qNrkFOTmotVwXTNEqqurZxNox3vCl57SVWZJnAYkqbQIg VuanoOGIE+GJUldMvQoLtAhFISi9QMXrlFBvMFFLphnVOSH/5rMWdhU7a8qquXKyeJxd PYSsoZGZHn9UtPH9ITchDKk9FENTnJIzKVutUI7iIyoLdvf2froPGSVkd+eAVrZXDiyn vlXdjgeIvsMqzKW9GBUcrEPnOyxRRGuTRUPY4TYg39qVYlTE9yl4qikXI99anhYY4cWo 7ayQ== 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=yQsbF0KW+egp9ypWBlfadD+YpmrjmZ4Y7vBcIa7GViI=; fh=PlWMzmI9LD2qGS7ipLrQl8z0iaQTLQLHzoGuXcBzpCg=; b=GFVk60E0zkHeE80CammtM6Kjsp0ETAN7sO+YPIEvvMN6FGtSKzF5tuErLt238UJ3l4 tUMpejlRXWRrPS/2v5NveL90PNVBweI/Ej+0iz/1vj1eStcv5abvGTpTh/Wt4rSdwiYu ZClpX1wvJo2Wqe0Zgbv97HJMcwPF3DBnuZAUcYxWsEugcaBWg0PxgINUJr6h48j4Ge1A 1dRdxJjJQBvoddlRLvq2v/IsfMgPBMZSn/wWOA1ojp9xg7OzBtXTLNM75nTm75UYnKxH GaeAmk3YO14W0fEzqmiBz2OS4KKul+Rb74odB02rN6wojl/pp0RSaYU+1xxvIE1f20tu 7Wzg==; 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=deYSKYvY; 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 hr31-20020a1709073f9f00b00a4e52273a0asi2888682ejc.1027.2024.04.01.22.25.53; Mon, 01 Apr 2024 22:25:54 -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=deYSKYvY; 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 A97E868D170; Tue, 2 Apr 2024 08:25:15 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf1-f225.google.com (mail-pf1-f225.google.com [209.85.210.225]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DE3C568D11E for ; Tue, 2 Apr 2024 08:25:06 +0300 (EEST) Received: by mail-pf1-f225.google.com with SMTP id d2e1a72fcca58-6e6b729669bso4092552b3a.3 for ; Mon, 01 Apr 2024 22:25:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxyid.net; s=google; t=1712035505; x=1712640305; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=FCqnRztARe9+A7sjje+5DV1k4dAESun3ZIVNXX2RwIU=; b=deYSKYvYy1c/KpKK0pCWtCTz6Z7dXlWoiFCCNOgCyizuVBrpo9x4i3oVXuvwcLiDgv 2UvljJElVNoL5d+N12kXELvmNMKKDWtWKzpinvkTo6xY4FPy14GFfM+JkIiA/fwTzcd8 al4PsqluI8UVKOGi4zUI05ptvkcZsUiiOCR1U7EHi6zQhJ4BKEmeFCoAxTIluXiZ+t5M 3xgwgxUmbGrgLmtHgTP8tmeHY9Y49MN+959ertj/BN78rRNv7zY7DKieA7Kdlqq+Pl15 Vzht0CVlaIVj9xPw8SHXC6doBDHURqu5nMijDZo06zoziXaNVuaSubpPaObgtntvuDCx pbNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712035505; x=1712640305; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=FCqnRztARe9+A7sjje+5DV1k4dAESun3ZIVNXX2RwIU=; b=ivcEHus5XCocrTlWSl8EBDRsJVx8X3DJiTaw6vh28r4OEiX5uOFn0thAYmIC/PLWJy Xcbpz5VHt1VrhJCJyHi6xPtBXQkTRlNPj0sN6vQ1f8PLjNAGVMkpoO5spkdVsiT3tLd1 QFjZ+zyGFs2ALH59At97C8cO55D/1LM4KoDDAapHGZnv+iyVVDHUeVJc4T4NdHjHU/Fg TDNqYNLgtC4loYKN/Zn6RXQzSQGgkrOiyG0zVwRxOqMaYdS6+UzBHpuCJZQIgljKslg8 yIz4KbgxYCS5z48pmi8GGwOe9fqEbYX5hu5RS+eWwK4oGs/dmcqxa7Gi9+hlWuxgOWcR hYOQ== X-Gm-Message-State: AOJu0YxkQIaHSrLkI+koPlBGCw+/GjehQUCmDKhIubKHlhCypiDsRSzl X7eN28M6nW0dh76Y+YIliccwf+EbOlCIV7f2A0OOdu6siOUKD8zkm1hczoSD4nG7q28s/xTJ0hJ iBxYsBEPVpeyF97BwariQ4Hs7KhdTq+1XKOorjLbw X-Received: by 2002:a05:6a21:9214:b0:1a3:9f87:f389 with SMTP id tl20-20020a056a21921400b001a39f87f389mr15642272pzb.38.1712035505215; Mon, 01 Apr 2024 22:25:05 -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 ka2-20020a056a00938200b006eabc5f5bbcsm760190pfb.8.2024.04.01.22.25.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Apr 2024 22:25:05 -0700 (PDT) X-Relaying-Domain: proxyid.net From: Marth64 To: ffmpeg-devel@ffmpeg.org Date: Tue, 2 Apr 2024 00:24:57 -0500 Message-Id: <20240402052458.2034678-6-marth64@proxyid.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240402052458.2034678-1-marth64@proxyid.net> References: <20240402052458.2034678-1-marth64@proxyid.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v11 5/6] doc/muxers: refresh the RCWT muxer's doc to be consistent with the demuxer 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: R5sfuE1KIq2G Signed-off-by: Marth64 --- doc/muxers.texi | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/doc/muxers.texi b/doc/muxers.texi index a10a8e216f..c960af1bdc 100644 --- a/doc/muxers.texi +++ b/doc/muxers.texi @@ -3038,19 +3038,18 @@ ogg files can be safely chained. @end table -@anchor{rcwt} +@anchor{rcwtenc} @section rcwt -Raw Captions With Time (RCWT) is a format native to ccextractor, a commonly -used open source tool for processing 608/708 closed caption (CC) sources. -It can be used to archive the original, raw CC bitstream and to produce -a source file for later CC processing or conversion. As a result, -it also allows for interopability with ccextractor for processing CC data -extracted via ffmpeg. The format is simple to parse and can be used -to retain all lines and variants of CC. +RCWT (Raw Captions With Time) is a format native to ccextractor, a commonly +used open source tool for processing 608/708 Closed Captions (CC) sources. +It can be used to archive the original extracted CC bitstream and to produce +a source file for later processing or conversion. The format allows +for interoperability between ccextractor and FFmpeg, is simple to parse, +and can be used to create a backup of the CC presentation. -This muxer implements the specification as of 2024-01-05, which has -been stable and unchanged for 10 years as of this writing. +This muxer implements the specification as of March 2024, which has +been stable and unchanged since April 2014. This muxer will have some nuances from the way that ccextractor muxes RCWT. No compatibility issues when processing the output with ccextractor @@ -3060,6 +3059,16 @@ and outputs will not be a bit-exact match. A free specification of RCWT can be found here: @url{https://github.com/CCExtractor/ccextractor/blob/master/docs/BINARY_FILE_FORMAT.TXT} +@subsection Examples + +@itemize +@item +Extract Closed Captions to RCWT using lavfi: +@example +ffmpeg -f lavfi -i "movie=INPUT.mkv[out+subcc]" -map 0:s:0 -c:s copy -f rcwt CC.rcwt.bin +@end example +@end itemize + @anchor{segment} @section segment, stream_segment, ssegment From patchwork Tue Apr 2 05:24:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marth64 X-Patchwork-Id: 47731 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:9f96:b0:1a3:b6bb:3029 with SMTP id mm22csp1149138pzb; Mon, 1 Apr 2024 22:26:02 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCWCJlOdrZLT279536bWE1QcHPbttxmagHk8n8CiMDDnc1L28tZUmbjBv7Ws5oLNn0O9YK/6S7zeMzMURf/v2RzUwFMuMGP4iAhcUg== X-Google-Smtp-Source: AGHT+IHOWrGhLjvM/zX8ixKx7bcwSNjMm6YcuV7+IOQs0ymdnXtCm/Y56XQ6/v4auUq//fjxahgW X-Received: by 2002:a05:6402:348d:b0:56b:9f91:d0ee with SMTP id v13-20020a056402348d00b0056b9f91d0eemr8066385edc.2.1712035562201; Mon, 01 Apr 2024 22:26:02 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1712035562; cv=none; d=google.com; s=arc-20160816; b=L4jrChK8DMJMIjrTEOghIp9aODrYSfxWMRXCLOQdAkeCJhGKvJ6e7HTDE33Shd4GqX 2Ro3aHHZ2Du/u9h1FG9zOki5bwJwxMl2IkBv8b+6x2D0SiUwOjLBBAfeIxaIg3nk4+kx o/ixhSIpMgRLsVltKp7VrS/+mZfUd3Sk4o3oBA6hepBgeQDeoRert8AjmC7QD5cvRajb 24FOaLWMpT5mUfROwxOoXXOeaW6QjTrGBnZJOltNK8aJQxoJu+wZE6Ln0b5BtXy+TSV8 FYrz1mghwLRMiV+f53XC03SHn511Bg7SypDY0G2UJyS8vOFmQ3v4B32oSoyeiecxB0S9 HDJA== 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=3XJECDRuwR64LrapKhdXxBS9lXU36Qwyc5PfU0vGG3M=; fh=PlWMzmI9LD2qGS7ipLrQl8z0iaQTLQLHzoGuXcBzpCg=; b=MMD9wkCgAG/9tvRai/sg/9jYXmIBzTeSn+YxzfCHxCy4h9xDgdXKbxk/Rdrk8aD2R8 g4kmKq2ErsizkE02vIsUNzgC2ZVXQgbwNfCGtjfx113baw5eScs1el9sKo3MqDdR/9MA NaTtUU/yeUsA7tFeEJ7N2aQI8k2XrPa/i/2I8zmrI1NBmSFsokCDK9xp73NxopsP7LRk UvgWpUDV0biyOFjF/TaMB8aGH7T0yTBnkPkNIMq1qwt1V0VnfswbVe62Q35uzmT0BiJa MUfyAj9Iq/ikeC5fMgZu6Mgb/jpyBjmPlJKjsE3Rg5qDnwlb/zeRx8lTNoVDiIuOpWBj G3TA==; 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=AyLgG4gO; 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 t6-20020a50ab46000000b0056c492f1048si5260744edc.126.2024.04.01.22.26.01; Mon, 01 Apr 2024 22:26:02 -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=AyLgG4gO; 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 9616C68D18A; Tue, 2 Apr 2024 08:25:16 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oa1-f100.google.com (mail-oa1-f100.google.com [209.85.160.100]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6AEBB68D0EE for ; Tue, 2 Apr 2024 08:25:07 +0300 (EEST) Received: by mail-oa1-f100.google.com with SMTP id 586e51a60fabf-22a73f2d6adso2143751fac.3 for ; Mon, 01 Apr 2024 22:25:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=proxyid.net; s=google; t=1712035506; x=1712640306; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=2e9sQv3w702352aOPPNyRIMcYiSWmUkpNjdhVgNaPDY=; b=AyLgG4gO7TWsh99K3MAVDiESFDGSIFL5c1mkO9P6I05u0SuEuXJLM7QHnKG4znVTrB 6P4OwoG7Y/RMnJCgJYWoaKeGdaVHw7zqGSX8GMn24Drw1auBIDnbQWSoNWBO2o9Fvvh3 N/nO32cwzXCn5xkRmF2gZ2Y5puEv0YlAtlulVJS5OfPQpb9IZkLfIGg5giReTZN+pFpw KwIe45RuKgh0McZyCq/LoMfTG4D/CGy9OrT/jVMGwoYm6TStL4hca2LbNSVEd/ilP516 O7Et/99TLlBrxi/Lu3lB9ORPzWijrnJ/RsLS2VR1WzrmmFUD/3L75PSDV6nu+Q9x6QjO cgKA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712035506; x=1712640306; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2e9sQv3w702352aOPPNyRIMcYiSWmUkpNjdhVgNaPDY=; b=oryZXaskW4firVSWPfy2nCZQuRWJ9QBV40u0SxeaHndNBAFlVa2iBVofbh+d22mbJI 8w7ZPJwKhzyoN5DlqbVxTDoSImkcBHJwx/Do+ktyQ+gPAUwoJEQqmvUcFItg1coJGR09 eLGLt+Mf1BsuZKCjEVptE19LRPhgngZ7vv0a7pMItDWkYu2dc2N5H6WD+2YyN23yYLg1 +bwwIFQDRNERIMi3YMuYnuRjtqtkYIU4lDqvYDNmcmiug45A3vM0wBszU/e7URwqh+cK F4WWrQn6fvGfqRBgdb1x/1WN4hq6pThujfKGaO7TyTlpVv41a2/vl3AGdwqRRA9NPMts XzDA== X-Gm-Message-State: AOJu0YxR2NO9L7W6qPJQdu782z2TM/6862rkDuJXueExTxCmUa2eJGzm BE9qQImm3XmjitsbCCD0bcTMZlp94qvN5fKwQesqwzWjfXyYTzCm4iayRu6s5jrD8FHIP+WsxUU fnr1KG89Os2scCMHn1Sm8XCmqPcbUlGD6k5zpxxpu X-Received: by 2002:a05:6871:54d:b0:229:ec6d:9fb7 with SMTP id t13-20020a056871054d00b00229ec6d9fb7mr12534511oal.38.1712035505893; Mon, 01 Apr 2024 22:25:05 -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 ka2-20020a056a00938200b006eabc5f5bbcsm760190pfb.8.2024.04.01.22.25.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 01 Apr 2024 22:25:05 -0700 (PDT) X-Relaying-Domain: proxyid.net From: Marth64 To: ffmpeg-devel@ffmpeg.org Date: Tue, 2 Apr 2024 00:24:58 -0500 Message-Id: <20240402052458.2034678-7-marth64@proxyid.net> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20240402052458.2034678-1-marth64@proxyid.net> References: <20240402052458.2034678-1-marth64@proxyid.net> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v11 6/6] doc/indevs: update CC extraction example to use RCWT muxer 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: aW60sgMevWXV Signed-off-by: Marth64 --- doc/indevs.texi | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/indevs.texi b/doc/indevs.texi index d1b2bacf8b..734fc65752 100644 --- a/doc/indevs.texi +++ b/doc/indevs.texi @@ -1069,9 +1069,9 @@ ffplay -f lavfi "movie=test.avi[out0];amovie=test.wav[out1]" @end example @item -Dump decoded frames to images and closed captions to a file (experimental): +Dump decoded frames to images and Closed Captions to an RCWT backup: @example -ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rawvideo subcc.bin +ffmpeg -f lavfi -i "movie=test.ts[out0+subcc]" -map v frame%08d.png -map s -c copy -f rcwt subcc.bin @end example @end itemize