From patchwork Mon Jun 15 12:16:42 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Steven X-Patchwork-Id: 20415 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 3F2F744B74D for ; Mon, 15 Jun 2020 15:16:57 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1706D68B4FB; Mon, 15 Jun 2020 15:16:57 +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 ED2BD68B1DC for ; Mon, 15 Jun 2020 15:16:50 +0300 (EEST) X-QQ-mid: bizesmtp20t1592223405to5xpemi Received: from localhost (unknown [103.107.216.233]) by esmtp6.qq.com (ESMTP) with id ; Mon, 15 Jun 2020 20:16:44 +0800 (CST) X-QQ-SSF: 01100000002000Y0ZXF0B00A0000000 X-QQ-FEAT: MEYFfnITSQHCxANk+/VlS3BJ5CPBm3PrcgEjvyMpfJV0zBa+astsWXXHdC3fP p6WN3GcK98vlu8O2uhUgi0BArMBZYQpoKoTeNH/VNm3cG7Hd/vfrFqCPp7EQJPBdOpRVaLp wr0B5HGRcugOoleU1yGrXz+M9BVIe/ri6JugvWRB6HjxlQlonmUphVVuCoR90pc9XF/3Lj3 gN6ojTTEbMshrZ/sVefNfWfZvhmYz0TP02n8sf+aaoZwljTtZkOfbk8CY1k8nW1QrYPDP3D o68Zl2kAD/+QTiy0bLDRnpWTlFbVTrDSIGUvGMabevsKu4AErhZoRSb7g= X-QQ-GoodBg: 0 From: Steven Liu To: ffmpeg-devel@ffmpeg.org Date: Mon, 15 Jun 2020 20:16:42 +0800 Message-Id: <20200615121643.55510-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:qybgforeign5 X-QQ-Bgrelay: 1 Subject: [FFmpeg-devel] [PATCH 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:16:43 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Steven X-Patchwork-Id: 20416 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 6285F44A1C4 for ; Mon, 15 Jun 2020 15:29:09 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2FD4868B581; Mon, 15 Jun 2020 15:29:09 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from qq.com (smtpbg454.qq.com [183.3.255.96]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 816F768B1AA for ; Mon, 15 Jun 2020 15:29:02 +0300 (EEST) X-QQ-mid: bizesmtp6t1592224024tl0rsbncf Received: from localhost (unknown [103.107.216.233]) by esmtp6.qq.com (ESMTP) with id ; Mon, 15 Jun 2020 20:27:03 +0800 (CST) X-QQ-SSF: 01100000002000Y0ZXF0000A0000000 X-QQ-FEAT: kuhMzgBNbeKaGhlhEY5eJROuhJdN3Xq4pTDjbyXq4gg8T5E21RHx6lSiMPqGG /l516XsNVTqDxaIkUivKu0KR/7VJhUPNMGrzGam33S/M7fM1l6L+E6ZWOzpA0WTf0NpaIdG +p5IxmSLYws//N2Di/a09clZWIA0oqDqGv7YZpe3wPDSygZd3Dz75xdwaLKVoQi8vcReT49 A8TsPhB20hhZCk35gU96L4CGurVOqLBJKiKekUYQwp75EU2+yifpsHUs1JkxXVbnD/tHLpQ UFHnqmw13ioKnV1oNRGZCMOJUGRQdDrwpue234t4NSEdyi2In4k6lBRyd8XC2x3SxVT0vw0 K/7KhnmeiYNovoScj8= X-QQ-GoodBg: 0 From: Steven Liu To: ffmpeg-devel@ffmpeg.org Date: Mon, 15 Jun 2020 20:16:43 +0800 Message-Id: <20200615121643.55510-2-lq@chinaffmpeg.org> X-Mailer: git-send-email 2.25.0 In-Reply-To: <20200615121643.55510-1-lq@chinaffmpeg.org> References: <20200615121643.55510-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 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 +++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) 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)