From patchwork Thu Sep 26 07:28:35 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jonathan Baecker X-Patchwork-Id: 51909 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:d8ca:0:b0:48e:c0f8:d0de with SMTP id dy10csp910805vqb; Sat, 28 Sep 2024 03:36:13 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCW97InaF9Bs1JiAyDd8Fl4/Qjf0ACDbDva4rpT2JcThdq/wX6siRHZZj9/x65AnhJSdhyAKpn86CW+8TtMXBu85@gmail.com X-Google-Smtp-Source: AGHT+IFyeN7t2dk5i3glIVnOTx3iHGYKXy2gBOQ+S4inOBdjza7rvIA1KDp7mNJg+71kwIeWXdWD X-Received: by 2002:a2e:a9a2:0:b0:2fa:c5b0:39a3 with SMTP id 38308e7fff4ca-2fac5b03cd7mr450161fa.14.1727519772792; Sat, 28 Sep 2024 03:36:12 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1727519772; cv=none; d=google.com; s=arc-20240605; b=ZEfKYKEvo5ZDeHxQiCqTwr7BaRDMiCfpNY6EyV060ZkEo9pH9h302dh6ZKB26mK5Pp kMJ8ptKYe07DgL+PdFEQYwmUugDHQ/oSKfUqr8SFhSOYy7FTPg61QVCANZ1m+b4FE3Br Xw8aa0qjwyud8PGFeoSS8ELy2fxbSIkSqVSb2lKyiauqOXJq7OCFciC40bgeN6/w51Z+ lLFw1PDszjzTWedHzQfqZzqB8kQcPIHeraiha8/dghF23p35xGjwuEamgerTpW8ylG78 YjWyNjobItA7c/gTy1fZeH3wwA4Tn/2JdKA/Wtp8YIyM3pZFH0Fieto56lwAdUx14MW6 JtqA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; 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=6AEEVTatDDK/ad9EP9xJz2Vbv8Fks5txvbR5oYmhRwA=; fh=udbWTKW8aqy7AKmYMFgRGUA/O1EYzhLFgrzYSGtDXQc=; b=goXd+3YhvSBvcUdoRmoe6gXBEiLV/t0QwdfLR06PrQ1zHRXJZ3fuw9dhpDdu3GEi+9 j2onAabsgJOYajT+lhOcEhac3iN0g0Yqx9tpF6IDZpeSK/bpVbwC/1X2i4ZlNh9Bp0yx j1tWg2iZG6T8jtgbpWjnqT6df2Q0zQJNh6VUOm10wXRClo+mg/0skk3UMfshF1n9+TDE 2S9mUxtFLd6yChWGTY7kVtmPswb38HbZUyF7kG0hxC+TXgEH2yPJ0hxw0OMdoGCo0xNr 7ZXqD8OPOCzqD5NeAb9O5223q+dl3w8+u3JrDW8+uCISFVwN6qWC1x45xg+zAoYEetUR rX7g==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20230601 header.b=DKCOyTEU; 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; dara=fail header.i=@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 38308e7fff4ca-2f9d45d6e40si12577891fa.167.2024.09.28.03.36.12; Sat, 28 Sep 2024 03:36:12 -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=@gmail.com header.s=20230601 header.b=DKCOyTEU; 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; dara=fail header.i=@gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id D16A068D892; Thu, 26 Sep 2024 10:29:06 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BC66768D892 for ; Thu, 26 Sep 2024 10:28:59 +0300 (EEST) Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-37a33e55d01so426395f8f.3 for ; Thu, 26 Sep 2024 00:28:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1727335739; x=1727940539; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=8R3PJ3zjx78k3Gft/bA6a8JgpFG56BDSAv+KxUBWQA4=; b=DKCOyTEUuEh4qn6l8CbU80LYoZMIRd/OHFojZ09aHsAV1dV2+ckey0Z6ClyO7U3Oxu F3LLMzEiJnpnH7tIni7MWIZ1Ptqzd3eblSbPQqF2z5ffs5EaE4vmqBNYDS7cZt9I/7mF s9OX6k/BmKHwiFFQQleJnvF5Y4Cjkb3Gbst+19QbK328nuP98nb2NK7+58EwJVu5Z440 9wagnaZIaTwZ1tqwZChtrG5X211t8mDnPS0R0WyAlYZQfmJ/2/1V3TVJIb5KfhzEpyrK DQeMmSAsxcT+FJ6MzSoT9ZPXHoozUWqqfUs5P+Np2WgkE6AbkXyu5QbEeIp27hhxbTrt l9ag== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1727335739; x=1727940539; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=8R3PJ3zjx78k3Gft/bA6a8JgpFG56BDSAv+KxUBWQA4=; b=p9lwMYEnB6Ahn80VzpuzDPviMted6hjXOn0v2Xb5foS+vO3SbP8GY5VCS/vw20JfoL UQNMhYTpY9AV6apuJt1w4OYcrYKBiIR7pcLo916v+uk6N3aET4odR1m4iGhCGrapZRSa I9DtLnt9F6QXG3HKwwjVbsM40bWLByp1BDrxML0yC/acsCatvUyg5siLwIC5Ou6MkBr3 72ZcqRp5Xw75bIpus4mPhC/b4h4p8I0vhkpHq5HRDkgF631v40kpjYPb4fiZkIC3GOMB rMwFmjur9VGLl+Bx9oN7dJKZWms5D1mC6pmzUdGqm47vIcHXmsxg/vGoy7GtdtgjY6U0 +8Bw== X-Gm-Message-State: AOJu0YyVjM0XbsDWrC3Q+AIZzsaiAWrzmNWvdAIiKgrEFUTmZ3l2vEIX ppHGaDBwNUqfDkPofE8w55z5Y8JTg2jM1jcvYJb3wqu3RNJCKSUS9efjxw== X-Received: by 2002:a05:6000:cca:b0:374:c621:62a6 with SMTP id ffacd0b85a97d-37cc24b2d5dmr2830379f8f.47.1727335738747; Thu, 26 Sep 2024 00:28:58 -0700 (PDT) Received: from jonathan-nix-lan-daswort-media.. (p509896f1.dip0.t-ipconnect.de. [80.152.150.241]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-37cbc31f3cesm5713348f8f.98.2024.09.26.00.28.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 26 Sep 2024 00:28:58 -0700 (PDT) From: Jonathan Baecker To: ffmpeg-devel@ffmpeg.org Date: Thu, 26 Sep 2024 09:28:35 +0200 Message-ID: <20240926072835.384728-1-jonbae77@gmail.com> X-Mailer: git-send-email 2.46.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avformat/hlsplaylist: set stream name according to var_stream_map varname 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: jb-alvarado Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: tPIiNYjnF5En From: jb-alvarado If name:* is set in var_stream_map variable, take that as NAME= variable. This helps gives better stream names in html players. --- libavformat/hlsenc.c | 2 +- libavformat/hlsplaylist.c | 9 +++++++-- libavformat/hlsplaylist.h | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) -- 2.46.1 diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 1e932b7..8e01721 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -1533,7 +1533,7 @@ static int create_master_playlist(AVFormatContext *s, break; } - ff_hls_write_subtitle_rendition(hls->m3u8_out, sgroup, vtt_m3u8_rel_name, vs->language, i, hls->has_default_key ? vs->is_default : 1); + ff_hls_write_subtitle_rendition(hls->m3u8_out, sgroup, vtt_m3u8_rel_name, vs->language, vs->varname, i, hls->has_default_key ? vs->is_default : 1); } if (!hls->has_default_key || !hls->has_video_m3u8) { diff --git a/libavformat/hlsplaylist.c b/libavformat/hlsplaylist.c index f8a6977..2eedc32 100644 --- a/libavformat/hlsplaylist.c +++ b/libavformat/hlsplaylist.c @@ -57,13 +57,18 @@ void ff_hls_write_audio_rendition(AVIOContext *out, const char *agroup, void ff_hls_write_subtitle_rendition(AVIOContext *out, const char *sgroup, const char *filename, const char *language, - int name_id, int is_default) + const char *varname, int name_id, int is_default) { if (!out || !filename) return; avio_printf(out, "#EXT-X-MEDIA:TYPE=SUBTITLES,GROUP-ID=\"%s\"", sgroup); - avio_printf(out, ",NAME=\"subtitle_%d\",DEFAULT=%s,", name_id, is_default ? "YES" : "NO"); + if (varname) { + avio_printf(out, ",NAME=\"%s\",", varname); + } else { + avio_printf(out, ",NAME=\"subtitle_%d\",", name_id); + } + avio_printf(out, "DEFAULT=%s,", is_default ? "YES" : "NO"); if (language) { avio_printf(out, "LANGUAGE=\"%s\",", language); } diff --git a/libavformat/hlsplaylist.h b/libavformat/hlsplaylist.h index d7aa44d..f181182 100644 --- a/libavformat/hlsplaylist.h +++ b/libavformat/hlsplaylist.h @@ -41,7 +41,7 @@ void ff_hls_write_audio_rendition(AVIOContext *out, const char *agroup, int name_id, int is_default, int nb_channels); void ff_hls_write_subtitle_rendition(AVIOContext *out, const char *sgroup, const char *filename, const char *language, - int name_id, int is_default); + const char *varname, int name_id, int is_default); void ff_hls_write_stream_info(AVStream *st, AVIOContext *out, int bandwidth, int avg_bandwidth, const char *filename, const char *agroup,