From patchwork Fri Aug 20 04:08:56 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kim Hwan X-Patchwork-Id: 29628 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp892885iov; Thu, 19 Aug 2021 21:09:17 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyTkRtmXz+1P/7bZLrvT6+qy1bx/o4CC8kPkU3CwT7jXTuhfS7al+aPqZz5oMMBJE7tLhZ4 X-Received: by 2002:a17:907:c12:: with SMTP id ga18mr11758765ejc.107.1629432557119; Thu, 19 Aug 2021 21:09:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629432557; cv=none; d=google.com; s=arc-20160816; b=bkMg7AotSKBfzffMF6bJBRooKtOJn51Ylu5dqxSy+wCDeaQJuBD+fCLqEcih96NSZX gwffyQ3hJXolRkQPCqBMxd46UnwGf5Eq9oy0QqvjJc8NS5MdQM5PPCg6rDMYnfeUFpAU dJUkS1HWa6Pp8bDfS4I/8f+p1ViumlUSW4mbE1NgNk6qpkt0/tCYTt9j+0Se/UCHqNds 2kaE2KrODqUkX27idw1gIG9FL4PoJsljDEv7XtdJ3n2LLvGG2BPcvoa7lrDMnIEw4e/S uLCcH6RCunvhT79+jEE1RZ7cLWuHrRwCfE3Atq3N5HHVnhMhtKvfATz418mh1Q5RAhR9 /gug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; 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 :delivered-to; bh=xgvUUuvu4wYXsxWeZzIK2a26hUkBVUq+A5DV3t9iWt0=; b=L6B34OoBSLMCQ7JrpR8ssMlgai+bkb/NGsyhF+PbzZKopvS3nWfYXFXZa7IWYNg9Nz Cqi/NHgwdafV+I5GVvKDfOzpog6BLo5qB5TJ+wvgR+Ock39M22/+MrJ5eX61QjiqOOd0 YEfFr0uxMuMoRK2yB//tSSbZwqLycCRY0gq5jFRhsILXJUgBUVk/aP51CwGlh+M1k0KS Rum8VFwKeIGeCQl7JlTsetdnUunh5Qv3mWyqUeJfeqI44FA4O9Wkmob0o74mpvo2VbFu Bo4Jj49qQREeME90s5b5+Xce2QWAC4BS7fSK++136AUwDeyLc3kqgvLWBTvXGMYYEqcc D0+A== ARC-Authentication-Results: i=1; mx.google.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 sp=NONE dis=NONE) header.from=naver.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id dn7si5057960edb.544.2021.08.19.21.09.16; Thu, 19 Aug 2021 21:09:17 -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; 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=naver.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 63A4368A044; Fri, 20 Aug 2021 07:09:12 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from kimhwan.kimhwan.kr (unknown [121.172.19.146]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B57DB687F99 for ; Fri, 20 Aug 2021 07:09:04 +0300 (EEST) Received: from kimhwan.kr (localhost [127.0.0.1]) by kimhwan.kimhwan.kr (8.15.2/8.15.2/Debian-18) with ESMTP id 17K4911V2983677; Fri, 20 Aug 2021 13:09:01 +0900 Received: (from kimhwan@localhost) by kimhwan.kr (8.15.2/8.15.2/Submit) id 17K490Pg2983606; Fri, 20 Aug 2021 13:09:00 +0900 From: Kim Hwan To: ffmpeg-devel@ffmpeg.org Date: Fri, 20 Aug 2021 13:08:56 +0900 Message-Id: <20210820040857.2983507-1-akon47@naver.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avformat/rtsp: If the rtcp port is specified in the sdp file, set rtcpport when creating the RTP stream 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: Kim Hwan Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: Hg4k8nJ6IxT+ Signed-off-by: Kim Hwan --- libavformat/rtsp.c | 8 +++++++- libavformat/rtsp.h | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index 9869e1b72e..9fa6861c2a 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -586,6 +586,10 @@ static void sdp_parse_line(AVFormatContext *s, SDPParseState *s1, av_strlcpy(rtsp_st->control_url, p, sizeof(rtsp_st->control_url)); } + } else if (av_strstart(p, "rtcp:", &p) && s->nb_streams > 0) { + get_word(buf1, sizeof(buf1), &p); + rtsp_st = rt->rtsp_streams[rt->nb_rtsp_streams - 1]; + rtsp_st->rtcp_port = atoi(buf1); } else if (av_strstart(p, "rtpmap:", &p) && s->nb_streams > 0) { /* NOTE: rtpmap is only supported AFTER the 'm=' tag */ get_word(buf1, sizeof(buf1), &p); @@ -2422,8 +2426,10 @@ static int sdp_read_header(AVFormatContext *s) } ff_url_join(url, sizeof(url), "rtp", NULL, namebuf, rtsp_st->sdp_port, - "?localport=%d&ttl=%d&connect=%d&write_to_source=%d", + "?localport=%d&ttl=%d&%srtcpport=%d&connect=%d&write_to_source=%d", rtsp_st->sdp_port, rtsp_st->sdp_ttl, + ff_is_multicast_address((struct sockaddr *)&rtsp_st->sdp_ip) ? "" : "local", + rtsp_st->rtcp_port <= 0 ? (rtsp_st->sdp_port + 1) : rtsp_st->rtcp_port, rt->rtsp_flags & RTSP_FLAG_FILTER_SRC ? 1 : 0, rt->rtsp_flags & RTSP_FLAG_RTCP_TO_SOURCE ? 1 : 0); diff --git a/libavformat/rtsp.h b/libavformat/rtsp.h index 4ec974ed73..001ec3c962 100644 --- a/libavformat/rtsp.h +++ b/libavformat/rtsp.h @@ -457,6 +457,7 @@ typedef struct RTSPStream { /** The following are used only in SDP, not RTSP */ //@{ int sdp_port; /**< port (from SDP content) */ + int rtcp_port; /**< rtcp port (from SDP content) */ struct sockaddr_storage sdp_ip; /**< IP address (from SDP content) */ int nb_include_source_addrs; /**< Number of source-specific multicast include source IP addresses (from SDP content) */ struct RTSPSource **include_source_addrs; /**< Source-specific multicast include source IP addresses (from SDP content) */ From patchwork Fri Aug 20 04:08:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Kim Hwan X-Patchwork-Id: 29627 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp893001iov; Thu, 19 Aug 2021 21:09:29 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwBCf9qLqoi0NHv8IqLYfnXPGChUhbmRo4uIUjl3fO8v0y7/heha1j4BtaF8TpIFaYshcIF X-Received: by 2002:a50:cd18:: with SMTP id z24mr940856edi.14.1629432569017; Thu, 19 Aug 2021 21:09:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1629432569; cv=none; d=google.com; s=arc-20160816; b=HyF6rWFMpXdhrWiGpucK9b52S/JfBqat+T3MZgyZz/4raw3aZLvaRMBNkQmLSr8hDI pYxUF3jU3i0MF5F7SMT0u98DReqX/b6lasMOijpgvRO5OZhciV0eQtbVDTln/ksMjc/D FzEzyf/R04UGPS/ZTmOn3Wu/3YUSe3CA8qPd5Dlob03ZEImu9hvZHKWagZn47ifqDitI 1v2cAzpMFJfwnaYvhTEiqPUSVfBcuKO7HVdCLcJCf+Mrmtxuvvl/w9pxrGszHQkjCZC+ xump9PX+xyDAC7yImrzf2B+r07slaD2BTo4LeZzkIoQPZqoW2TswlchouPENg6NcTIg0 /33Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; 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:references:in-reply-to :message-id:date:to:from:delivered-to; bh=qHOatRUWTE3Dmdu4kVaPTnYWSPP24973Yq+B1wyVJFA=; b=IUc4m2SfE8czeegOAxzBRKBXgYdAds2aGqO41bJVYFrlhBlCgIH5LFX735qHdvd+7s Idnx1MDv8f2VAJs7fC/3kSfg/TBIH5GvUsm5fXIOIdoGOZEd8UDdwcd6FUbrfHw2TnSk KG+fa98HzM+fS9YvyM8NV60gwPzrPnUjTIjh/yjpHwGyHo4bbQP94J5c5fMnGEMk+ehO QvMLpSMg1okRmOFH8FkONEIGWL/EA4gczBauokKo8Ee3c6rCgbJ3bedq3XHzKkmOMwK7 rHU8yJlXZxe1icD9kShxdo3KsyI3gIFjSQnZxLqe3dqDj8c8ReZAj+0tOBhknY+XIUke 99+Q== ARC-Authentication-Results: i=1; mx.google.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 sp=NONE dis=NONE) header.from=naver.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o18si5320895edt.101.2021.08.19.21.09.28; Thu, 19 Aug 2021 21:09:29 -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; 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=naver.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C3D9C68A2F6; Fri, 20 Aug 2021 07:09:24 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from kimhwan.kimhwan.kr (unknown [121.172.19.146]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 17F5C689D6F for ; Fri, 20 Aug 2021 07:09:16 +0300 (EEST) Received: from kimhwan.kr (localhost [127.0.0.1]) by kimhwan.kimhwan.kr (8.15.2/8.15.2/Debian-18) with ESMTP id 17K49E1w2983736; Fri, 20 Aug 2021 13:09:14 +0900 Received: (from kimhwan@localhost) by kimhwan.kr (8.15.2/8.15.2/Submit) id 17K49EW72983735; Fri, 20 Aug 2021 13:09:14 +0900 From: Kim Hwan To: ffmpeg-devel@ffmpeg.org Date: Fri, 20 Aug 2021 13:08:57 +0900 Message-Id: <20210820040857.2983507-2-akon47@naver.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210820040857.2983507-1-akon47@naver.com> References: <20210820040857.2983507-1-akon47@naver.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avformat/dashenc: changed all filename lengths to MAX_URL_SIZE declared in internal.h. 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: Kim Hwan Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: ld635BNs7ua/ Signed-off-by: Kim Hwan --- libavformat/dashenc.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index 679e30611c..2f1275b1ec 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -71,7 +71,7 @@ enum { #define MPD_PROFILE_DVB 2 typedef struct Segment { - char file[1024]; + char file[MAX_URL_SIZE]; int64_t start_pos; int range_length, index_length; int64_t time; @@ -104,7 +104,7 @@ typedef struct OutputStream { AVCodecParserContext *parser; AVCodecContext *parser_avctx; int packets_written; - char initfile[1024]; + char initfile[MAX_URL_SIZE]; int64_t init_start_pos, pos; int init_range_length; int nb_segments, segments_size, segment_index; @@ -126,9 +126,9 @@ typedef struct OutputStream { char codec_str[100]; int written_len; - char filename[1024]; - char full_path[1024]; - char temp_path[1024]; + char filename[MAX_URL_SIZE]; + char full_path[MAX_URL_SIZE]; + char temp_path[MAX_URL_SIZE]; double availability_time_offset; AVProducerReferenceTime producer_reference_time; char producer_reference_time_str[100]; @@ -161,7 +161,7 @@ typedef struct DASHContext { char availability_start_time[100]; time_t start_time_s; int64_t presentation_time_offset; - char dirname[1024]; + char dirname[MAX_URL_SIZE]; const char *single_file_name; /* file names as specified in options */ const char *init_seg_name; const char *media_seg_name; @@ -507,8 +507,8 @@ static void write_hls_media_playlist(OutputStream *os, AVFormatContext *s, char *prefetch_url) { DASHContext *c = s->priv_data; int timescale = os->ctx->streams[0]->time_base.den; - char temp_filename_hls[1024]; - char filename_hls[1024]; + char temp_filename_hls[MAX_URL_SIZE]; + char filename_hls[MAX_URL_SIZE]; AVDictionary *http_opts = NULL; int target_duration = 0; int ret = 0; @@ -592,7 +592,7 @@ static int flush_init_segment(AVFormatContext *s, OutputStream *os) os->pos = os->init_range_length = range_length; if (!c->single_file) { - char filename[1024]; + char filename[MAX_URL_SIZE]; snprintf(filename, sizeof(filename), "%s%s", c->dirname, os->initfile); dashenc_io_close(s, &os->out, filename); } @@ -1133,7 +1133,7 @@ static int write_manifest(AVFormatContext *s, int final) { DASHContext *c = s->priv_data; AVIOContext *out; - char temp_filename[1024]; + char temp_filename[MAX_URL_SIZE]; int ret, i; const char *proto = avio_find_protocol_name(s->url); int use_rename = proto && !strcmp(proto, "file"); @@ -1246,7 +1246,7 @@ static int write_manifest(AVFormatContext *s, int final) } if (c->hls_playlist) { - char filename_hls[1024]; + char filename_hls[MAX_URL_SIZE]; // Publish master playlist only the configured rate if (c->master_playlist_created && (!c->master_publish_rate || @@ -1377,7 +1377,7 @@ static int dash_init(AVFormatContext *s) DASHContext *c = s->priv_data; int ret = 0, i; char *ptr; - char basename[1024]; + char basename[MAX_URL_SIZE]; c->nr_of_streams_to_flush = 0; if (c->single_file_name) @@ -1489,7 +1489,7 @@ static int dash_init(AVFormatContext *s) AVFormatContext *ctx; AVStream *st; AVDictionary *opts = NULL; - char filename[1024]; + char filename[MAX_URL_SIZE]; os->bit_rate = s->streams[i]->codecpar->bit_rate; if (!os->bit_rate) { @@ -2316,7 +2316,7 @@ static int dash_write_trailer(AVFormatContext *s) dashenc_delete_media_segments(s, os, os->nb_segments); dashenc_delete_segment_file(s, os->initfile); if (c->hls_playlist && os->segment_type == SEGMENT_TYPE_MP4) { - char filename[1024]; + char filename[MAX_URL_SIZE]; get_hls_playlist_name(filename, sizeof(filename), c->dirname, i); dashenc_delete_file(s, filename); } @@ -2324,7 +2324,7 @@ static int dash_write_trailer(AVFormatContext *s) dashenc_delete_file(s, s->url); if (c->hls_playlist && c->master_playlist_created) { - char filename[1024]; + char filename[MAX_URL_SIZE]; snprintf(filename, sizeof(filename), "%s%s", c->dirname, c->hls_master_name); dashenc_delete_file(s, filename); }