From patchwork Fri Dec 23 12:51:55 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 34871 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:bc95:b0:ad:ade2:bfd2 with SMTP id fx21csp450941pzb; Fri, 23 Dec 2022 04:52:16 -0800 (PST) X-Google-Smtp-Source: AMrXdXukZhGK+ds+rUL3FqQxW2ZNIT63NpGpseMDpIJYhiPP2AGsC4Pw5mqRII5d7UYZ3dHi1sff X-Received: by 2002:a17:906:6807:b0:7c0:9805:4060 with SMTP id k7-20020a170906680700b007c098054060mr10544212ejr.38.1671799936770; Fri, 23 Dec 2022 04:52:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671799936; cv=none; d=google.com; s=arc-20160816; b=LU+1UJywMGF2GBhHVCoOWagyu9ZPkSVR4FOnWI9kOechwZTnol1/i22hUNkqqQ2iqY kwzFIDDuj2RGlaglivkkdMxcR532ddbA6+ufkYQQXkMPXtlC2l+U9linJgaDxtdcAmIZ FhCUYDIJsuctcJAuM3lcPomwWYB1lqYjsYngPYEHC+P+4ykbm59PboIvDkgrL/nbSLZC Yr3GNJ+PTgjiSkKJ/GrcJSMkJkuM38ZISD3golh7crF/FPMljBClIwJ7gUu9KA/vzxyo lwLQCcKuHoTt8Vrz8nf7qzNP6PBWGk+R6erKxjUpJBkVWnjTMZ4Fo2bMLxdF2knlefDS EJvA== 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:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=8OjuA3Em6we0k7oM7GquO/P8mkACJ0UW7hiX8YVEXN0=; b=P3LXxN+6/pdtSO7vB0BMmWWiNVCvrzHWLVu9QFEJncq9nox13qBXwd/Zj9yDDy9jIA D6nz8YDsDrM7ujnKCSmlT6opfOTXNzX8HwtfFvVIOOWYVNfic0rV8567oDhFMjrTz7Au JPeBURr5ZiVXYbPTdhd/QZVyHZ0oQSE2WyZbfyqvNC25DLPPoqL4MrFziJZumNSwoNK0 oIRTwDJ7HRcD9OxYXW5B/5AwGmMQXfkPpnNFmmWVCN7vV/uC7ag9bmIZGEHPA5xTM1e5 AhtviQ9SaQFIykXqpnfofLmvVVuSLhVP7Ad4WtzfqdDvGzaEOHqKCBSefbNlnLgt4HDY ifmw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=XI7h9Hfa; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id xe2-20020a170907318200b0080b2de32a22si2678021ejb.454.2022.12.23.04.52.16; Fri, 23 Dec 2022 04:52:16 -0800 (PST) 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=@gmail.com header.s=20210112 header.b=XI7h9Hfa; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 771A66806E2; Fri, 23 Dec 2022 14:52:12 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f46.google.com (mail-lf1-f46.google.com [209.85.167.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B67D06806E2 for ; Fri, 23 Dec 2022 14:52:05 +0200 (EET) Received: by mail-lf1-f46.google.com with SMTP id b13so7026432lfo.3 for ; Fri, 23 Dec 2022 04:52:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=28lgr4y63KDEqhV11U7Y2hmtIt8nD7K1VbMewJ+4yz0=; b=XI7h9Hfag8qKbpZckuk+OWZJpV7FzoqjCKLM8RLA5Vh2sCVS4nimiUfERwIJY3Vdci ryS5yQmheXo2KB1gkemR0ntzYKlHtN6Cw4/tYBO2hwbWC1v1x9VqinDYGBrUz0OlRGke Hh/9t8DzCxhyD/j3fwJ2goOFEQg7N0DYJQ6ozGSS2DNsD7XAJA/A1/hrum51mvmIKN4k VFP98GkMbJ7TzI0CdfLB2Uccf84G/+YRaL5b2hJbdU+ZsQON2LlKuKTsLGOzDk35yP3I Nqq78czo4mZB6gy9zTXrallfK1r/2oisZrKZrEXmkFBqpPR4DGV7TqD4YPZDguhQr07z rtEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=28lgr4y63KDEqhV11U7Y2hmtIt8nD7K1VbMewJ+4yz0=; b=ADpch5xw22TQOiLYc6EJ3L0fdreEam5XHFBMJ4dfFr+sc3KViQHpB5/d9mEyzXtWA6 kBw+Fx77LxqNNrNAOZyxEsfsy6Mb/YWCscue1x+xJb76TYBy0iLuk2uSY8KE+Oiu0DpE Dgz4YcnE6sXrJrKqgoc2oOsY7pAot1SJmFSNe4RNkc2V2mHp5c8jr7Sx4Nkgs6OiC5B/ A11KVGw7DMIPrJdqhg1rX4VApeT2HfqgxhvDH1TtdUXB4vrvm7NdHmlOF0ypvY5ppwOw Tt28T3I/yCsxNFKie51LoYfiAsh5x1PHKqIlWUoxMfbYSvs0u2/T4lSXKBFNDY4xaeOf Jiew== X-Gm-Message-State: AFqh2kpyNT9jtIX3Nx3w4cNtalMY/cFI60v9kr7HA7E+KoUSS1xoUSHW wCBs4CePU7rnIU9tzx40Kx4irjWALiY= X-Received: by 2002:a19:f011:0:b0:4a4:68b7:f895 with SMTP id p17-20020a19f011000000b004a468b7f895mr2880895lfc.57.1671799924923; Fri, 23 Dec 2022 04:52:04 -0800 (PST) Received: from localhost.localdomain (91-153-198-187.elisa-laajakaista.fi. [91.153.198.187]) by smtp.gmail.com with ESMTPSA id x14-20020a056512078e00b004b4f1ea713csm512600lfr.73.2022.12.23.04.52.04 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 23 Dec 2022 04:52:04 -0800 (PST) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Fri, 23 Dec 2022 14:51:55 +0200 Message-Id: <20221223125157.83340-1-jeebjp@gmail.com> X-Mailer: git-send-email 2.38.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 0/2] Initial support for fragmented TTML muxing 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: JuRY7gjgDM6I This enables pushing TTML together with another track (usually video) as part of CMAF Ingest, as defined by the DASH-IF Live Media Ingest Protocol. Currently does not function well with just the subtitle track unless the API user explicitly requests fragmentation with a nullptr packet, as the generic fragmentation decision logic is based on tracks which do not require squashing. Currently does support overlapping subtitles, but the implementation utilizes another packet queue for it, which is probably not optimal. Recommendations on how to improve things are welcome. Jan Ekström (2): avcodec/avpacket: add functionality to prepend to AVPacketLists avformat/movenc: add support for fragmented TTML muxing libavcodec/avpacket.c | 20 +++-- libavcodec/packet_internal.h | 2 + libavformat/movenc.c | 9 -- libavformat/movenc_ttml.c | 163 ++++++++++++++++++++++++++++++++++- 4 files changed, 176 insertions(+), 18 deletions(-)