From patchwork Mon Mar 14 16:32:22 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Daniel Riehm X-Patchwork-Id: 34730 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6838:3486:0:0:0:0 with SMTP id ek6csp2316322nkb; Mon, 14 Mar 2022 09:32:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyj6ki7uWWZxtwBjjTqqTXU88PhaopXccfFBF+8ewdufkOvUEPBZkBdbyb0UU5QPbasQLdu X-Received: by 2002:a05:6402:2365:b0:415:ed07:70de with SMTP id a5-20020a056402236500b00415ed0770demr21698164eda.150.1647275570771; Mon, 14 Mar 2022 09:32:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1647275570; cv=none; d=google.com; s=arc-20160816; b=MNXScfFuBJX9Ma7xVDHUj+ko/l8rEBz18E7xaI48HXROW6ZYn9VmV0aXn1+EXqEai6 aoQvsWETw6B8h5K+QcYTAxYGpIvBCXMaxbNc6c80+dFu27ebYSZ3c5sfmfWYn8UYmuaT nr2wBzeDWiQ4POTK7heWKSZBt4FjmmLWD5Gk5siDlY2myuzcduzr1+G56YGdbs0V8gVp Xio2ZzF0mROUHm+j3jvTlaOaJnqfvajkT+Jr9bFUomjH6sfFcVRT9k+HMYNzr50sCmNA m3E3zuatdjmG1wChF/X3MYmHFvRsDGBHZFJtZMCYJis6Xh/b38/vifoOXSc+2u2HLqjI pjPQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:to:message-id:date:from:mime-version :dkim-signature:delivered-to; bh=/eNgOi8IWbSeAyScy6LAGKip874Bli9hpkOu1vTYN70=; b=mYXskEn/+eihjLWFXwYi/2p8ECj92SgzopQ6soChjwd+SKH5HyLtwA4losO2vYXqi5 jYgjy7B6KTybETzKrQpsIp7LWtzgtaHHQL4lf7z3GRvbi2gZj6cgwHB8MdCHZuLoE/Iy mf81k7zoljcESHJausdNNy2M2/Rg53U2RS9mxmvivEqYZZyP3TGSfQVt/gdOYkduriCV eRLh7VPJQOfTTzK8qQ5aTJPRIRxt/sKB7BqYTy5PM971uoyzgZZAlGdkI8z21XrfSc5B 5AeHGQBlbv1s5eMnqY5/weediVishFRoPWa3gDU8wxNR3jlB6t0jvxoyf+9hUVXmyTeL pZ2A== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@kitware.com header.s=google header.b=PvuKYS0W; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=kitware.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id a23-20020a509b57000000b00415f93566b3si11530599edj.29.2022.03.14.09.32.49; Mon, 14 Mar 2022 09:32:50 -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=@kitware.com header.s=google header.b=PvuKYS0W; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=kitware.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3138B68A115; Mon, 14 Mar 2022 18:32:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-yw1-f178.google.com (mail-yw1-f178.google.com [209.85.128.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5749368A115 for ; Mon, 14 Mar 2022 18:32:39 +0200 (EET) Received: by mail-yw1-f178.google.com with SMTP id 00721157ae682-2e57826a10bso12294057b3.7 for ; Mon, 14 Mar 2022 09:32:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kitware.com; s=google; h=mime-version:from:date:message-id:subject:to; bh=F/nE9iSYkjWjVRmSXnoyAR8gM1kaEB91zky/n5E/5+E=; b=PvuKYS0WPQk+Li1F4P9XKHOBZZ2dROeEjEqUkX80otbGrJfPJqbEIfYoAyWuXkRiL3 nj+ghq9d+7U81rXRxoplSC2CYVVk1B64fzR7sN9kVQ05IHIcPvIzpWAD7YHinJRpBL8p NjbwkPFQjtyYmirYd9yJq/76hY4W1CB3uYrqM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=F/nE9iSYkjWjVRmSXnoyAR8gM1kaEB91zky/n5E/5+E=; b=IlfSwJNad7gulsgDK+nYqMchLOMntLP9zwMHqA4TKaw5aJA+A4Eo4Iuh5AKHVWWs81 T/36Las8tlNz53bjrMJGG/ByiX4qUJuzNmtuLMqAFzLhVv+15/o7Y+h5Dg1kL9e0HOCY 5xvHf1ucy5otZjmSdUpBnBvcEcaT4AtjlOT0ARXw/0tseeQb4wIEJx/d1aehhURtblDv +QuhfSCcb1GuXKS94T2u1GL98WXLxgsfBC54Xzv4M+kaByG35locUIOfV5Rg7sDyOUaL R4oPUonL8TSw4ImtwnEEZ9T3OfV70sXrFj43hSoG8exPVPSqgHQX0aOxXyjg2612/WjL R3Xg== X-Gm-Message-State: AOAM532JeOQjhgcWdtkj0Jj+iwoW5O/h05b/HODPA5SG248i3jqaSckZ NdEsF5W3c4zdo3LCZsJNoeiYQc7upzfel3UOJxQaf8QrJKuIzQ== X-Received: by 2002:a81:6857:0:b0:2dc:241d:b388 with SMTP id d84-20020a816857000000b002dc241db388mr19512469ywc.442.1647275557555; Mon, 14 Mar 2022 09:32:37 -0700 (PDT) MIME-Version: 1.0 From: Daniel Riehm Date: Mon, 14 Mar 2022 12:32:22 -0400 Message-ID: To: ffmpeg-devel@ffmpeg.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: [FFmpeg-devel] [PATCH] avformat/mpegtsenc: add descriptors to synchronous KLV in mpegts 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: h3i7oYTkPbft The metadata_descriptor and metadata_std_descriptor structures are defined by ISO/IEC 13818-1, Sections 2.6.61 and 2.6.62. Their inclusion in the PMT is motivated and required by MISB ST1402.2: Section 9.4.1: Requirements 15, 16, 17. Signed-off-by: Daniel Riehm --- libavformat/mpegtsenc.c | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) + } } else if (codec_id == AV_CODEC_ID_TIMED_ID3) { const char *tag = "ID3 "; *q++ = METADATA_DESCRIPTOR; diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c index 20dce56122..0f11f0827d 100644 --- a/libavformat/mpegtsenc.c +++ b/libavformat/mpegtsenc.c @@ -797,6 +797,29 @@ static int mpegts_write_pmt(AVFormatContext *s, MpegTSService *service) case AVMEDIA_TYPE_DATA: if (codec_id == AV_CODEC_ID_SMPTE_KLV) { put_registration_descriptor(&q, MKTAG('K', 'L', 'V', 'A')); + + if(st->codecpar->profile == FF_PROFILE_KLVA_SYNC) { + const char *tag = "KLVA"; + *q++ = METADATA_DESCRIPTOR; + *q++ = 9; /* descriptor_length */ + put16(&q, 0x0100); /* metadata_application_format */ + *q++ = 0xff; /* metadata_format */ + putbuf(&q, tag, strlen(tag)); /* metadata_format_identifier */ + *q++ = 0x00; /* metadata_service_id */ + *q++ = 0x0f; /* decoder_config_flags|DSM-CC_flag|reserved */ + + *q++ = METADATA_STD_DESCRIPTOR; + *q++ = 9; /* descriptor_length */ + *q++ = 0xc0; /* reserved|metadata_input_leak_rate */ + *q++ = 0x00; + *q++ = 0x00; + *q++ = 0xc0; /* reserved|metadata_buffer_size */ + *q++ = 0x00; + *q++ = 0x00; + *q++ = 0xc0; /* reserved|metadata_output_leak_rate */ + *q++ = 0x00; + *q++ = 0x00;