From patchwork Fri Apr 28 16:37:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Devin Heitmueller X-Patchwork-Id: 34920 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:dca6:b0:f3:34fa:f187 with SMTP id ky38csp1439013pzb; Fri, 28 Apr 2023 08:42:24 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7otXBRql0B8W8iuMBVIGB77YES3qpmXfUw+MI5RBlBiBXcxFo+s+SJQq4FWDQR2lBL/+V/ X-Received: by 2002:a17:907:8687:b0:953:7bb2:28d8 with SMTP id qa7-20020a170907868700b009537bb228d8mr5479885ejc.21.1682696543905; Fri, 28 Apr 2023 08:42:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1682696543; cv=none; d=google.com; s=arc-20160816; b=fr0+ypOjWGVqaPGmOopKmRCmddcbotoOGe0ogzEqp8zJefsmOlD9jytzWZJRjM3sUj 37pxqEVw7GUZ72ghJ4CsfPmedC/jA1odjoEvNotcOfJA/581RguhkdmX6oJRfFvBSTbJ EMqvdNftEiWiifcmFuGLI6nASvObKpHADt8t80qsGmToMlGyKkogoaQ3e2KJPobwtVVC SkBLEW9X8IXET8ytLgYHSy7jXNI4KnvIYwtpASFnpABx3vjVmrvI7AOehwG2tB3+XKGK KWVQUwlI+6WBfIpWfWUEgvqdQwHua6cPXC+g4bQXqNTvO07W/cutnDMc26hRPhwXNMB+ IvoQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to; bh=oBEK+j3eILWpwMQlkgjupPTiOe1bbt4eEzeQhb11KMk=; b=LqNqn0P01J6FYJw1CFTwIn05/Mz5SBxmgpccecJMkNnw7OsIoIPujB0q3zulwHfn51 m2xg5AvSuxrJA5JtPxaf50nKETg5fdYs+ndh/90YQo/ktzO1GmsCFQwruEVB4N0rz3+i nHT0hGt9ptbSByRs9sxwZY9ANfCkTWLMDoyojXZrtLy3Ls5hH/UXNQ5/y8yuEf/glPRt Rs9inMYdyzHtvatQ0DC0wBXcS6nOQN6KaiGLj12TEBpAflcQVYTNotUsAUsNc2+1L9Nf 3Qj8QvR18dZ5U4yxtSbKmJwNs6iBtAVixcOr8CmH/yM+36k0K2AqHIeNFVKP9GYL9uez TzEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@ltnglobal-com.20221208.gappssmtp.com header.s=20221208 header.b=XamFukBw; 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 u8-20020a05640207c800b00506997c6327si15663096edy.223.2023.04.28.08.42.23; Fri, 28 Apr 2023 08:42:23 -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=@ltnglobal-com.20221208.gappssmtp.com header.s=20221208 header.b=XamFukBw; 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 4BD9B68BFF4; Fri, 28 Apr 2023 18:42:18 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f177.google.com (mail-qk1-f177.google.com [209.85.222.177]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id EBEE668BF38 for ; Fri, 28 Apr 2023 18:42:11 +0300 (EEST) Received: by mail-qk1-f177.google.com with SMTP id af79cd13be357-74e462a540aso372671285a.1 for ; Fri, 28 Apr 2023 08:42:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ltnglobal-com.20221208.gappssmtp.com; s=20221208; t=1682696530; x=1685288530; h=message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Fkmq0gX6ubaLWSjK/vbNdoyvbTjnWz7fkEBGDJDddyU=; b=XamFukBwILyoun6zxak8ajsdnoZ/Ngrgn+XN53vC7RCAQ95wFsfFSCS7pCLGo+0Blu 8dbv3NDF4kIAfRLk9cgLlam+M5tjxXJMK2ZA44tZ2WMzCpfUqqlTcSMZYAByGYgFD8Jv fnDGjbZIWZ97EK5gTgnbN4hwxgDy8Hl+t60IjWr7JMpNcNX9A0vHDIt9Sy7p2KXFya6D soRcy0QLHAVTYvF8H2uZksVDkpqeOZKnQ0dR9mPCxnXSMRb4nocqCP3ImmM4oewzWYlJ wIzRn1DDcWs5655UfTl1PR4EplS17DQhjBgyLwJzEo7TvszX4SqUVAnpVki4sLIG+reN xSpA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1682696530; x=1685288530; h=message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Fkmq0gX6ubaLWSjK/vbNdoyvbTjnWz7fkEBGDJDddyU=; b=RvBZq6ZIImVAW6oRm3L1MtA2sAZ+Vn/9wgV7Hc9hn8JeAmD5UxyiK3odjv7plY5wHU d4vBmlb+pPObqNOO2VSQSJ3MhDv4OAh9tN90rGIorH+Xv9Wv0317Z1WjPVWUx5hDxUkW k06DeD8zKZFzmgOv+QTLVh6Xx+nTq1q0U7wf+W3uCUsh6j06NC0aP/uSUjXVVAQPl868 nwm5FR+5BCaUv1u+nhuOoWMkKaDvnrYnmuDjcetGDFYW0JMosHEOAcwOj563yJuJ8fYb TD7hmAokarxCI/bPJ1acVfmAo3tOwn/xpPIdMHSKgiaY1lxKtjmo1ZllRG1M4QX0Et0g 4seg== X-Gm-Message-State: AC+VfDzsnGnM0Nah5fOncWasJxN2Mrb0hZFVt2/PnT8ZX0Qtxq/3BQH7 NR3U3gOnP8pX64HFvpf6SYonlsiWMZsgdogcWGM= X-Received: by 2002:ac8:598e:0:b0:3ef:58ac:82f4 with SMTP id e14-20020ac8598e000000b003ef58ac82f4mr10741852qte.38.1682696530193; Fri, 28 Apr 2023 08:42:10 -0700 (PDT) Received: from ltnt-nyc-580testdevin.livetimenet.com (pool-71-105-132-214.nycmny.fios.verizon.net. [71.105.132.214]) by smtp.gmail.com with ESMTPSA id do54-20020a05620a2b3600b0074e13ed6ee9sm6733873qkb.132.2023.04.28.08.42.09 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 28 Apr 2023 08:42:09 -0700 (PDT) From: Devin Heitmueller X-Google-Original-From: Devin Heitmueller To: ffmpeg-devel@ffmpeg.org Date: Fri, 28 Apr 2023 12:37:45 -0400 Message-Id: <1682699871-22331-1-git-send-email-dheitmueller@ltnglobal.com> X-Mailer: git-send-email 1.8.3.1 Subject: [FFmpeg-devel] [PATCH v4 0/6] Add support for Closed Caption FIFO 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: Devin Heitmueller MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: bmaHcDU1sGGH This updated series includes fixes for feedback by Lance Wang, as well as a second set of inject/extract functions that let you pass the raw CC bytes as opposed to an AVFrame. This is used by the last patch in the series to playout e608 packets with the decklink output. Devin Heitmueller (6): ccfifo: Properly handle CEA-708 captions through framerate conversion vf_fps: properly preserve CEA-708 captions yadif: Properly preserve CEA-708 closed captions tinterlace: Properly preserve CEA-708 closed captions vf_ccrepack: Add new filter to repack CEA-708 side data decklink_enc: add support for playout of 608 captions in MOV files doc/filters.texi | 10 ++ libavdevice/Makefile | 1 + libavdevice/ccfifo.c | 24 +++++ libavdevice/decklink_common.h | 3 + libavdevice/decklink_enc.cpp | 66 ++++++++++++ libavdevice/decklink_enc_c.c | 2 +- libavfilter/Makefile | 2 + libavfilter/allfilters.c | 1 + libavfilter/ccfifo.c | 240 ++++++++++++++++++++++++++++++++++++++++++ libavfilter/ccfifo.h | 94 +++++++++++++++++ libavfilter/tinterlace.h | 2 + libavfilter/vf_bwdif.c | 7 ++ libavfilter/vf_ccrepack.c | 100 ++++++++++++++++++ libavfilter/vf_fps.c | 9 +- libavfilter/vf_tinterlace.c | 9 ++ libavfilter/vf_yadif.c | 6 ++ libavfilter/vf_yadif_cuda.c | 8 ++ libavfilter/yadif.h | 2 + libavfilter/yadif_common.c | 5 + 19 files changed, 589 insertions(+), 2 deletions(-) create mode 100644 libavdevice/ccfifo.c create mode 100644 libavfilter/ccfifo.c create mode 100644 libavfilter/ccfifo.h create mode 100644 libavfilter/vf_ccrepack.c