From patchwork Mon Jun 15 12:37:40 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Steven X-Patchwork-Id: 20417 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 449A944A33D for ; Mon, 15 Jun 2020 15:37:56 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1F63C68B5D8; Mon, 15 Jun 2020 15:37:56 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtpbgeu1.qq.com (smtpbgeu1.qq.com [52.59.177.22]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 33F8E6802C1 for ; Mon, 15 Jun 2020 15:37:49 +0300 (EEST) X-QQ-mid: bizesmtp4t1592224663tzpvouj6g Received: from localhost (unknown [103.107.216.233]) by esmtp6.qq.com (ESMTP) with id ; Mon, 15 Jun 2020 20:37:43 +0800 (CST) X-QQ-SSF: 01100000002000Y0ZXF0000A0000000 X-QQ-FEAT: Tp2hW+Mew+dwB/SvJLLhULGE1QrgLioGUl0LT9UiqA3yDtXPUKu5CRrAMi/Xb SXsrqdP48BueCX1f2sIcCbmrOI/5UKBQQlIb2G66cV1AcTnY874/uHT8BV0BpOlXz7ei2IN IWFT3Xu71xBIvdf08XzHDHoyKA5OEovKOUrXCZ7Y2CajIydIm0cX7IPwdem8KGLikiJWE/v cyRxBGxfJFNqp9oEUMG2vPDnpM7cfPX2jujZTH4ICZ+7htWYlPiQzwpeH3zyA2vBxSogJgD hSs1CrBnvPG8T+khhNpkcsieFVlgxejJ75aMJ2pCxRAuAbDqUUrBcNHFbq1Rjdw1+Y1Kz4T Hv8JBBH X-QQ-GoodBg: 0 From: Steven Liu To: ffmpeg-devel@ffmpeg.org Date: Mon, 15 Jun 2020 20:37:40 +0800 Message-Id: <20200615123741.55735-1-lq@chinaffmpeg.org> X-Mailer: git-send-email 2.25.0 MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:chinaffmpeg.org:qybgforeign:qybgforeign7 X-QQ-Bgrelay: 1 Subject: [FFmpeg-devel] [PATCH v2 1/2] avformat/hlsenc: check fragment size plus start_pos large than hls_segment_size 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 Cc: Steven Liu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" if vs->size + vs->start_pos > hls->max_seg_size, should split segment. Signed-off-by: Steven Liu --- libavformat/hlsenc.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/libavformat/hlsenc.c b/libavformat/hlsenc.c index 71fa3db060..ca2e1bb4a8 100644 --- a/libavformat/hlsenc.c +++ b/libavformat/hlsenc.c @@ -2392,7 +2392,7 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt) && (hls->flags & HLS_TEMP_FILE); } - if ((hls->max_seg_size > 0 && (vs->size >= hls->max_seg_size)) || !byterange_mode) { + if ((hls->max_seg_size > 0 && (vs->size + vs->start_pos >= hls->max_seg_size)) || !byterange_mode) { AVDictionary *options = NULL; char *filename = NULL; if (hls->key_info_file || hls->encrypt) { @@ -2487,14 +2487,15 @@ static int hls_write_packet(AVFormatContext *s, AVPacket *pkt) if (hls->flags & HLS_SINGLE_FILE) { vs->start_pos += vs->size; } else if (hls->max_seg_size > 0) { - vs->start_pos = new_start_pos; - if (vs->size >= hls->max_seg_size) { + if (vs->size + vs->start_pos >= hls->max_seg_size) { vs->sequence++; sls_flag_file_rename(hls, vs, old_filename); ret = hls_start(s, vs); vs->start_pos = 0; /* When split segment by byte, the duration is short than hls_time, * so it is not enough one segment duration as hls_time, */ + } else { + vs->start_pos = new_start_pos; } } else { vs->start_pos = new_start_pos; From patchwork Mon Jun 15 12:37:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Steven X-Patchwork-Id: 20418 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 552D244A961 for ; Mon, 15 Jun 2020 15:38:09 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 412B768B670; Mon, 15 Jun 2020 15:38:09 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtpbgsg2.qq.com (smtpbgsg2.qq.com [54.254.200.128]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B4CB868B66F for ; Mon, 15 Jun 2020 15:38:02 +0300 (EEST) X-QQ-mid: bizesmtp27t1592224666t6suodvv Received: from localhost (unknown [103.107.216.233]) by esmtp10.qq.com (ESMTP) with id ; Mon, 15 Jun 2020 20:37:46 +0800 (CST) X-QQ-SSF: 01100000002000Y0ZXF0000A0000000 X-QQ-FEAT: l6IKqkG+NbngIFgpiytsRcdJ6ndlNrd95ll1K5JHEBXOGIr/Ha08LD38IdKj9 XtEdzC09LXtDF7u5IfB0VnYAKCqLsXIfuoIrYriCrms+6KtPCIR0dZS/fO05FT7usaxETrW 63e6GIbpht6hoRWxyn+9RnUdwOZ9NQpWIcgrTa9I9Tk7l1GqAA035uxHPyBJiyWDVd2iwED P6p+mT7LlHDHmdbIM0ZF6sk5BvqH1ymvHca/y5tTFFx1ccAfq9uJ4xorqyWTAGqoXQmWDUz 0LSnso2a1nUS35oL9qUzSYRGmvLNLD+LY7OqfsTvk5fwkotSJHOsNY9NflRJOOdpl9nP3eG 08B3NLTujIdezDOo90= X-QQ-GoodBg: 0 From: Steven Liu To: ffmpeg-devel@ffmpeg.org Date: Mon, 15 Jun 2020 20:37:41 +0800 Message-Id: <20200615123741.55735-2-lq@chinaffmpeg.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200615123741.55735-1-lq@chinaffmpeg.org> References: <20200615123741.55735-1-lq@chinaffmpeg.org> MIME-Version: 1.0 X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:chinaffmpeg.org:qybgforeign:qybgforeign5 X-QQ-Bgrelay: 1 Subject: [FFmpeg-devel] [PATCH v2 2/2] tests/fate/hlsenc: add testcase of ac3 surround sound input in hlsenc 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 Cc: Steven Liu Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" add probeaudiostream for get audio stream's codec_name,codec_time_base, sample_fmt,channels and channel_layout. Signed-off-by: Steven Liu --- tests/fate-run.sh | 4 ++++ tests/fate/hlsenc.mak | 14 +++++++++++++- tests/ref/fate/hls-fmp4_ac3 | 9 +++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 tests/ref/fate/hls-fmp4_ac3 diff --git a/tests/fate-run.sh b/tests/fate-run.sh index 002944b010..414ac6f825 100755 --- a/tests/fate-run.sh +++ b/tests/fate-run.sh @@ -89,6 +89,10 @@ probefmt(){ run ffprobe${PROGSUF}${EXECSUF} -show_entries format=format_name -print_format default=nw=1:nk=1 -v 0 "$@" } +probeaudiostream(){ + run ffprobe${PROGSUF}${EXECSUF} -show_entries stream=codec_name,codec_time_base,sample_fmt,channels,channel_layout -v 0 "$@" +} + probetags(){ run ffprobe${PROGSUF}${EXECSUF} -show_entries format_tags -v 0 "$@" } diff --git a/tests/fate/hlsenc.mak b/tests/fate/hlsenc.mak index 43f93c8c5b..c56a541f43 100644 --- a/tests/fate/hlsenc.mak +++ b/tests/fate/hlsenc.mak @@ -97,5 +97,17 @@ FATE_HLSENC-$(call ALLYES, HLS_DEMUXER MPEGTS_MUXER MPEGTS_DEMUXER AEVALSRC_FILT fate-hls-fmp4: tests/data/hls_segment_type_fmp4.m3u8 fate-hls-fmp4: CMD = framecrc -flags +bitexact -i $(TARGET_PATH)/tests/data/hls_fmp4.m3u8 -vf setpts=N*23 -FATE_FFMPEG += $(FATE_HLSENC-yes) +tests/data/hls_fmp4_ac3.m3u8: TAG = GEN +tests/data/hls_fmp4_ac3.m3u8: ffmpeg$(PROGSSUF)$(EXESUF) | tests/data + $(M)$(TARGET_EXEC) $(TARGET_PATH)/$< \ + -stream_loop 4 -i $(SAMPLES)/ac3/monsters_inc_5.1_448_small.ac3 -c copy -map 0 \ + -hls_segment_type fmp4 -hls_fmp4_init_filename now.mp4 -hls_list_size 0 \ + -hls_time 2 -hls_segment_filename "$(TARGET_PATH)/tests/data/hls_fmp4_%d.m4s" \ + $(TARGET_PATH)/tests/data/hls_fmp4_ac3.m3u8 2>/dev/null + +FATE_HLSENC-$(call ALLYES, HLS_DEMUXER EAC3_DEMUXER) += fate-hls-fmp4_ac3 +fate-hls-fmp4_ac3: tests/data/hls_fmp4_ac3.m3u8 +fate-hls-fmp4_ac3: CMD = probeaudiostream $(TARGET_PATH)/tests/data/now.mp4 + +FATE_SAMPLES_FFMPEG += $(FATE_HLSENC-yes) fate-hlsenc: $(FATE_HLSENC-yes) diff --git a/tests/ref/fate/hls-fmp4_ac3 b/tests/ref/fate/hls-fmp4_ac3 new file mode 100644 index 0000000000..1f45172a0e --- /dev/null +++ b/tests/ref/fate/hls-fmp4_ac3 @@ -0,0 +1,9 @@ +[STREAM] +codec_name=ac3 +codec_time_base=1/48000 +sample_fmt=fltp +channels=6 +channel_layout=5.1(side) +[SIDE_DATA] +[/SIDE_DATA] +[/STREAM]