From patchwork Sat Jul 17 02:38:26 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: zheng qian X-Patchwork-Id: 28949 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a5d:965a:0:0:0:0:0 with SMTP id d26csp2348156ios; Fri, 16 Jul 2021 19:38:55 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxRIJDTxZH8mpOgdlBI9uqzrUcWb0WneJgqVbYIsQF/kst/CArtyLOu/6sifvwfSro4Ro6X X-Received: by 2002:a05:6402:615:: with SMTP id n21mr19249219edv.139.1626489535075; Fri, 16 Jul 2021 19:38:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1626489535; cv=none; d=google.com; s=arc-20160816; b=mqTFINPVqADg9uM9m7E/mtwQJmsF6lafm3WeiNeCc433nKZJyqoMXfDBeLuE+JEa9t rvxzu3VoE5cObtMrdYPoVzfYFDddythUY91MMlULQGglfHtmYCZ0nTMAXHljyS8tZ7FN T3eoAuyfcGn6GHr0oTDeL+auHo4iD2sQIuE2Hg7L0LncoDZMbmzAkdfGjZRyttDIg01r 95OJZ8Syb7ayFBs0GsfmzsxtV85+GgM/tD32cDAHseuaQJAvaA6+AKDxsW2r+ILqpC+n HS1pB1WLIEoTXrKoC8tbo4jbeMJcDPhEZmBNravsWR2J3KGAvpszHcuRnGpnTPzadSsb OgSQ== 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=QxRBkSYXbajLPh8G/A5ER2c3OoQF/rykO6zobl+wJqM=; b=cmm/sY0o0BWoVVIm8Li8J4lZw8xdrdCYDTKKfP2bJp1rtyYJF4QO8t/0EkGu2x4NsW pPPsVoKwLaPtQZyExeLzP5wCVoYASx4bl3j/lbrObD1NXdqiBbY/ml8Ix1U6Jqta1Ilo zaf1e148EvfBldk3lmzgoDMkNyBgV0lYabOGPNfADb+rvJEO7YqCx6bvVsTFjtlQWghw 24HRGQ/r23va81y4im+ngW8scZViII8chTEqFHmcmHBCzJSVr6wO3e0ZVS9ZDlbbDyUN AJHmNBfs23FbzsMQoBLnYVK8WOjZc25znlMPJMPUhPMJ+wHKigMzDyYDBNw4Qhcogzb8 Jcew== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@xqq-im.20150623.gappssmtp.com header.s=20150623 header.b=ZbXIkdwM; 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 gf1si13328039ejb.318.2021.07.16.19.38.54; Fri, 16 Jul 2021 19:38:55 -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=@xqq-im.20150623.gappssmtp.com header.s=20150623 header.b=ZbXIkdwM; 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 306F668A7C3; Sat, 17 Jul 2021 05:38:50 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f47.google.com (mail-pj1-f47.google.com [209.85.216.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B0EE868A1D4 for ; Sat, 17 Jul 2021 05:38:43 +0300 (EEST) Received: by mail-pj1-f47.google.com with SMTP id v18-20020a17090ac912b0290173b9578f1cso8517795pjt.0 for ; Fri, 16 Jul 2021 19:38:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xqq-im.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=rYXPDXSKGfV8cJLW+wjoLfPrFgTso6qUc6YzT+k+xVo=; b=ZbXIkdwMr3sYJYrMSYdczWFhEuS0eue1pb04ViE3Iy/4zqybTnvsvrSydlvFb7MvvK wV7HR6H1YbCaMohIJe8Uq+aFaLBUQsRYRxzSzsTGeWRK6gXrwipCjNOWNiLmReci4RHd DDlyMM/u0dNsS7VZaCEyJd+16qLi7b8iH/4QrOcnJ5hDVxF3LYF26d3n+7HnGup2eipx Bfybqr0tEpwAYRkhwRrsrkbCNv8lRnwJUWxKnvq20A181VnEbHgLeuIJS18FNlZphk2w xk/qrZnsPT4OUtESbwAPC8LjMDCmN9VQwTv2fpY2cS2snSaJapwHQidy6Ap9v7jMz0eA ciAQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=rYXPDXSKGfV8cJLW+wjoLfPrFgTso6qUc6YzT+k+xVo=; b=KbkQ3lLpcZVnHKIYa4mgW536v7nYvQNi/6/hbWot96yJKbs0hypWfzqhMJU5KedxbF nnvxS1dg0onMVclNmpke55V1utGzgTZZljidA6bModZEsvodlaTP/je5txw/2JQBIyfr ueuNV03mp3LKdoNY+6AAkOZhHuHZoi983ceLk1AhNGhnh+siPEN7GG54LNo72YXJZStq nsOje2sjtX2Ef2JPf3qzLx2htnFAUm4bzKb2FY+FrU/qMe2VnWiur/3TjSRmfft1eeXM HlPoAr2EoY+idEKbtmCf1S4TimSZPy6ogO1XbI3YrARYxaJP2v8Cy9YOfBzCkJZjrrpz mFcw== X-Gm-Message-State: AOAM530ePFXyHynjnYHsmKEvS2V/6esUvD6Ibgc0heWjf+oHKrjQ5G58 rq46YPXEF6UIc1lO1NqCOdZ/b0U4nwT/lQ== X-Received: by 2002:a17:90a:3b4e:: with SMTP id t14mr12691005pjf.62.1626489521390; Fri, 16 Jul 2021 19:38:41 -0700 (PDT) Received: from zhengqian-xps.lan (ngn-nat1.v4.open.ad.jp. [202.222.12.138]) by smtp.gmail.com with ESMTPSA id q18sm12909263pgj.8.2021.07.16.19.38.40 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 16 Jul 2021 19:38:40 -0700 (PDT) From: zheng qian To: ffmpeg-devel@ffmpeg.org Date: Sat, 17 Jul 2021 11:38:26 +0900 Message-Id: <20210717023829.84846-1-xqq@xqq.im> X-Mailer: git-send-email 2.29.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 1/4] avformat: Introduce AV_DISPOSITION_URGENT disposition flag for emergency alert 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: zheng qian Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: S73cwSM3Vc7X This patchset introduces AV_DISPOSITION_URGENT disposition flag for marking stuffs which is expected to be shown immediately as received, and adds recognization/remuxing support for ARIB superimpose stream. ARIB superimpose is almost same as ARIB caption but is utilized to transmit emergency alert and newsflash in Japan DTV. Since superimpose is designed to be displayed immediately as received, ARIB superimpose utilizes mpegts private_stream_2 rather than the private_stream_1 that is used by arib_caption, which means superimpose packet doesn't have PTS/DTS (AV_NOPTS_VALUE). Purpose of introducing AV_DISPOSITION_URGENT is mainly: 1) To be able to mark stuffs as "show as received", which could be NOPTS 2) Let ffmpeg-based player to be able to recognize these stuffs such as ARIB superimpose stream, and extract data to render it onto screen 3) Let mpegtsenc to be able to remux ARIB superimpose stream correctly Signed-off-by: zheng qian --- libavformat/avformat.h | 1 + libavformat/dump.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/libavformat/avformat.h b/libavformat/avformat.h index 81d2ac38d0..6c7d3fb3a5 100644 --- a/libavformat/avformat.h +++ b/libavformat/avformat.h @@ -831,6 +831,7 @@ typedef struct AVStreamInternal AVStreamInternal; #define AV_DISPOSITION_METADATA 0x40000 #define AV_DISPOSITION_DEPENDENT 0x80000 ///< dependent audio stream (mix_type=0 in mpegts) #define AV_DISPOSITION_STILL_IMAGE 0x100000 ///< still images in video stream (still_picture_flag=1 in mpegts) +#define AV_DISPOSITION_URGENT 0x200000 ///< stream which is expected to be shown immediately as received (emergency alert) /** * Options for behavior on timestamp wrap detection. diff --git a/libavformat/dump.c b/libavformat/dump.c index cf892de107..a987d097dc 100644 --- a/libavformat/dump.c +++ b/libavformat/dump.c @@ -610,6 +610,8 @@ static void dump_stream_format(const AVFormatContext *ic, int i, av_log(NULL, AV_LOG_INFO, " (dependent)"); if (st->disposition & AV_DISPOSITION_STILL_IMAGE) av_log(NULL, AV_LOG_INFO, " (still image)"); + if (st->disposition & AV_DISPOSITION_URGENT) + av_log(NULL, AV_LOG_INFO, " (urgent)"); av_log(NULL, AV_LOG_INFO, "\n"); dump_metadata(NULL, st->metadata, " ");