From patchwork Tue Sep 26 19:54:59 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Rodger Combs X-Patchwork-Id: 5298 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.36.26 with SMTP id f26csp4217218jaa; Tue, 26 Sep 2017 12:55:18 -0700 (PDT) X-Received: by 10.28.66.65 with SMTP id p62mr4178048wma.159.1506455718777; Tue, 26 Sep 2017 12:55:18 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1506455718; cv=none; d=google.com; s=arc-20160816; b=IKu85GAmD7JCAAsqe/EgRxWLazh9YaKzSGBqMOqKuD4qWzn6ae+JKiCRzfhh0X1kbQ ewf7COJYw1K4s9RUM1cz2Hx4IK4+RBkjhoS16HHooKpF80pLHfDeIsaUpbFaV+GRk5MI jQmsph3GV31fPBCVKz1FMGHudBuPRh3+7BrVjF2q92PvslfHPKI6b4H2o98PGZzcCghJ IfuUwZtSNc3O6KcrITMFlGcRQRNoEgOw6v+eBPTWy6as0svcPQIRptkBL7CldHcNlHgF MzfKhb6+SJ+1nvLAMrGCwN7Dwv23gaQaGbZLbGJiGX6sgsv6clfteNnIucxNxXCYVuHE 6IhA== 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:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=jIjyns4CJANYpkRy4K83q8lfbj19OhKMf2zurSBr4Sc=; b=lEU0381ROpp8oBSBHLo1fVG2XAwj95KUFx21Vw3ymK590bsqwTlu5Lp4aiJ8YSYSG7 3jtkkJqpcGPMoRkwPl9ChDpCnbtmaYe2QibzY6sVX29j39Jl6fjaHSJkWbt/UAqOwoGQ 4Pi6dXk4qzYcB9Y7ulwjYAC+Hmq9aYsFFtvC4hkJpCpcIRGaQnAdknX3ZgnabrhFS9Zm /jWPBRo4wMQOd2srBE7ydNve/4LLNoixqBXtq4kbHyTkrUH3Wqo/PFmDQfUXrGtDdQVa fRoxTEm/ipA39nqRZ4QxR4yyf5n8T0SSuQadO/Sp/Ds1SGgDXk4ZkBbdyRURNedUZ44z vUlw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=hUuaaiFI; 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=NONE 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 p17si2184752wmd.161.2017.09.26.12.55.18; Tue, 26 Sep 2017 12:55:18 -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=20161025 header.b=hUuaaiFI; 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=NONE 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 358AE680CF2; Tue, 26 Sep 2017 22:55:01 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-it0-f65.google.com (mail-it0-f65.google.com [209.85.214.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 489C96805BF for ; Tue, 26 Sep 2017 22:54:54 +0300 (EEST) Received: by mail-it0-f65.google.com with SMTP id v140so1474630ita.4 for ; Tue, 26 Sep 2017 12:55:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=qbAF5rYrmhvp9HYdhYTGwG1JealmuGC/GjPsEqyXK4g=; b=hUuaaiFIcajoh8/EhJey7d4dSp8eEaKQPiBl4qDr9gzWQfbZrh+TsIm8X1la1yR2NT sRNVvqF2iVmFrG0jKD2LrkdozMFPKUjgj69zqrUWl/vQrkUNNp6C4g+zeAb/koLPg6cp v3BK/5KMk+hDQJGKGD2NyOU2tRT5xpDo7tm3rC8ThBZYbsYgtagOXMeq0v+mCS3vsrpz +3KGPnwnqXZNGHXibjQ8XDHBrQdGdm/SgYtXFZPn/Jv2+fQ0aym8hTdijYQEeT8p0M2e BHPyg7ZJXeJbF318554ZQ3AzFsInw3OiPqjFOUu5RjhB0EeaAsm/9tvv1l6C4Q/Qi4Ak jFsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=qbAF5rYrmhvp9HYdhYTGwG1JealmuGC/GjPsEqyXK4g=; b=OQiwK228AsN2eHHxRLYw38bDrC55DLtyCieL1PUVWE9oXrZDHptlcgYfSNJNulTVz2 olo7WMf4s5SMHKvSIodruLWMviztN46UI95GCDkQYyiaaTrvZ47fXjaUQAG6O01/xB2o gwwAx/Ge7AhSpyesJKQYW87gYOoy6uW+KQveZhNr0zVIBu20i5bUKaZ6QC/rxQUVb6ng r9+lCEiEmV/e+QVppKcHKCIgnygYwGta9vCeLIgbtb0kw5cydGbl8tRizET3+qDFDTn9 9UvoLrwJoq28UH0xwV/Ioxm1WrI+j4p/ho5RTwojW86UkqBiZ0rasWL6lPOS9A5uuUih j+yA== X-Gm-Message-State: AHPjjUhbOUyIHY1mJUjX1Zevi5QT965dBQVx1kS3ktOvzqofqH/y8Pdh 2yZSKwBT3xBMjtkC6uYOPIzzxYCV X-Google-Smtp-Source: AOwi7QAg3xHEP4QrDPoa2DS6NEASsJdO7gYff883C/HZZb7uH6yJkTWrdW5rJ3JLwhxoobx1NjBPSQ== X-Received: by 10.36.146.196 with SMTP id l187mr8194512itd.85.1506455704855; Tue, 26 Sep 2017 12:55:04 -0700 (PDT) Received: from Rodgers-MacBook-Pro.local.net (c-73-75-100-12.hsd1.il.comcast.net. [73.75.100.12]) by smtp.gmail.com with ESMTPSA id t70sm4568914ioi.80.2017.09.26.12.55.03 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 26 Sep 2017 12:55:03 -0700 (PDT) From: Rodger Combs To: ffmpeg-devel@ffmpeg.org Date: Tue, 26 Sep 2017 14:54:59 -0500 Message-Id: <20170926195500.88129-2-rodger.combs@gmail.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170926195500.88129-1-rodger.combs@gmail.com> References: <20170926195500.88129-1-rodger.combs@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/3] lavf/dashenc: add format_options option, mirroring segment.c X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- libavformat/dashenc.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index 92d398ab50..7ed48905f5 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -100,6 +100,7 @@ typedef struct DASHContext { AVRational min_frame_rate, max_frame_rate; int ambiguous_frame_rate; const char *utc_timing_url; + const char *format_options_str; } DASHContext; static struct codec_string { @@ -785,6 +786,17 @@ static int dash_init(AVFormatContext *s) dict_set_int(&opts, "cluster_time_limit", c->min_seg_duration / 1000, 0); dict_set_int(&opts, "cluster_size_limit", 5 * 1024 * 1024, 0); // set a large cluster size limit } + + if (c->format_options_str) { + ret = av_dict_parse_string(&opts, c->format_options_str, "=", ":", 0); + if (ret < 0) { + av_log(s, AV_LOG_ERROR, "Could not parse format options list '%s'\n", + c->format_options_str); + av_dict_free(&opts); + return ret; + } + } + if ((ret = avformat_init_output(ctx, &opts)) < 0) return ret; os->ctx_inited = 1; @@ -1190,6 +1202,7 @@ static const AVOption options[] = { { "init_seg_name", "DASH-templated name to used for the initialization segment", OFFSET(init_seg_name), AV_OPT_TYPE_STRING, {.str = "init-stream$RepresentationID$.m4s"}, 0, 0, E }, { "media_seg_name", "DASH-templated name to used for the media segments", OFFSET(media_seg_name), AV_OPT_TYPE_STRING, {.str = "chunk-stream$RepresentationID$-$Number%05d$.m4s"}, 0, 0, E }, { "utc_timing_url", "URL of the page that will return the UTC timestamp in ISO format", OFFSET(utc_timing_url), AV_OPT_TYPE_STRING, { 0 }, 0, 0, E }, + { "format_options", "set list of options for the underlying mp4 muxer", OFFSET(format_options_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E }, { NULL }, };