From patchwork Sat Dec 17 07:58:14 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Robert Nagy X-Patchwork-Id: 1841 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.65.86 with SMTP id o83csp217401vsa; Fri, 16 Dec 2016 23:58:25 -0800 (PST) X-Received: by 10.28.92.21 with SMTP id q21mr6049988wmb.71.1481961505046; Fri, 16 Dec 2016 23:58:25 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id i7si10840133wjl.146.2016.12.16.23.58.24; Fri, 16 Dec 2016 23:58:25 -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; 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 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 90E26689B99; Sat, 17 Dec 2016 09:58:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io0-f171.google.com (mail-io0-f171.google.com [209.85.223.171]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1E54168065C for ; Sat, 17 Dec 2016 09:58:09 +0200 (EET) Received: by mail-io0-f171.google.com with SMTP id p42so116257954ioo.1 for ; Fri, 16 Dec 2016 23:58:16 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=a4TTecUu4tem69DO3ZeVGNPy5LmMESBKqRoYEq/2Otw=; b=LP0yHkgtsAXYXT+u6VrH/MCSSeUW7fPNfoIkmD2ntXWgbic3zJDTqzc4ZT0rrHiIhG ECp0whhh7/0fJYJfWhSH14X21CSt3KHlIDEwOwM5j3nopb2FdkRr210rHEPJ+bcfaXQU v8jnmeAqs4450AGhjzsZ7RcfM3pqmeMvP3OhjQJfKleeCHPSsa8vpLGefZJR7mvJhbmB i1fe6C07YYG6wu8RqNNuEZxGwuvcXQSQzj+L4mCjb10bU+plSi0DogtD/+SAN+kOK0VI PV/L/z51Jdttd5ErGdLrU2ppvGoxq8HtrTf3oSyTtVy6MVvWSvBORrXuWMqS1wPN/7QU fpuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=a4TTecUu4tem69DO3ZeVGNPy5LmMESBKqRoYEq/2Otw=; b=igEmDyApFRfATzl/BeXMAjwKhdurncWqQNKxXld09GwTCUkqpA8te0dK0UHgiNgZfj 3fshaq31H6ubnoBdgctZCpCiQ9RZe0viGN+AfS+UCzF627NCVYxe3ZFZKOTyPuMZvAqW ub6xrYINe84uyXdQZRboQU+EiNtx1aZBUdg88EEIEauyq/LA6cC5TYBouWq8kC19qRLM Gw9scnFI2A9Cac910RLbAKt8HxOblbQBhg2OkSNG2SY/TgbzCyP1Sgvh4rnYF1z8+SqH oVd8gFvmCkBw2IktYcrXcOKuHKwo+3TjpwYfGykwFn2nwFlDAidCvSYeu2BggIrzJQ3z FFpw== X-Gm-Message-State: AIkVDXIMHVBNdk7lAifsu8EXde9sUXWROnLQ2dnQTJHp9PGiFAab7fNAHc5d+LDlfibevWkJSC26Z1L6cg/02w== X-Received: by 10.107.197.197 with SMTP id v188mr6555778iof.119.1481961494614; Fri, 16 Dec 2016 23:58:14 -0800 (PST) MIME-Version: 1.0 Received: by 10.64.68.37 with HTTP; Fri, 16 Dec 2016 23:58:14 -0800 (PST) From: Robert Nagy Date: Sat, 17 Dec 2016 08:58:14 +0100 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.20 Subject: [FFmpeg-devel] [PATCH] Add initial program date time option (hls_init_prog_time) 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From 14da4c9610ac0cf257b2c28f21899e854592e646 Mon Sep 17 00:00:00 2001 From: Jesper Ek Date: Wed, 7 Dec 2016 16:01:08 +0100 Subject: [PATCH] Add initial program date time option (hls_init_prog_time) It is often useful to specify the initial program date time, rather than relying on the current system time. This commit adds an argument option to specify the number of seconds since epoch. --- libavformat/hlsenc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) time(&now0); hls->initial_prog_date_time = now0; @@ -1101,6 +1101,7 @@ static const AVOption options[] = { {"start_number", "set first number in the sequence", OFFSET(start_sequence),AV_OPT_TYPE_INT64, {.i64 = 0}, 0, INT64_MAX, E}, {"hls_time", "set segment length in seconds", OFFSET(time), AV_OPT_TYPE_FLOAT, {.dbl = 2}, 0, FLT_MAX, E}, {"hls_init_time", "set segment length in seconds at init list", OFFSET(init_time), AV_OPT_TYPE_FLOAT, {.dbl = 0}, 0, FLT_MAX, E}, + {"hls_init_prog_time", "set initial program date time in seconds since epoch", OFFSET(initial_prog_date_time), AV_OPT_TYPE_DOUBLE, {.dbl = 0}, 0, DBL_MAX, E}, {"hls_list_size", "set maximum number of playlist entries", OFFSET(max_nb_segments), AV_OPT_TYPE_INT, {.i64 = 5}, 0, INT_MAX, E}, {"hls_ts_options","set hls mpegts list of options for the container format used for hls", OFFSET(format_options_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E}, {"hls_vtt_options","set hls vtt list of options for the container format used for hls", OFFSET(vtt_format_options_str), AV_OPT_TYPE_STRING, {.str = NULL}, 0, 0, E}, diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index d03cf02..a0c8cfc 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -791,7 +791,7 @@ static int hls_write_header(AVFormatContext *s) hls->recording_time = (hls->init_time ? hls->init_time : hls->time) * AV_TIME_BASE; hls->start_pts = AV_NOPTS_VALUE; - if (hls->flags & HLS_PROGRAM_DATE_TIME) { + if (hls->flags & HLS_PROGRAM_DATE_TIME && hls->initial_prog_date_time == 0) { time_t now0;