From patchwork Thu Dec 2 04:41:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 31874 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:d206:0:0:0:0:0 with SMTP id q6csp10250206iob; Wed, 1 Dec 2021 20:41:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJxGQfzRZa1A/XVogrhJMmE8gMpCPS42s6t0FwuYd9dOqAvyu9NVFHaBatkmqcTHoY6UXsNK X-Received: by 2002:a17:906:b01:: with SMTP id u1mr12332263ejg.504.1638420117094; Wed, 01 Dec 2021 20:41:57 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1638420117; cv=none; d=google.com; s=arc-20160816; b=FBiQ4DEFuuBO8cMlHyM3tJmANc4P8GoJpWPrIJD0SbP8OH3d8wnWMt/jaWsSaIioMI qVV37TvZFN5SNqI40UEO/sybUZ34e+Gdf3ScYjDnaFTAq2weX+y4EOTWWK9jCqNSNuGe 26yEg115AKAz99fpSXRj9j3h0zoluMyA0nZ38c5tg+NgiIDNEMWhgbjnJzr0APBz7M1e Yf9/J9815bXPNYYx1kCZ/jVHUCCdJFmRrlOBRaksBckWvM4Rp6y63sBuIET2uYJhO82J H3Ge5oAKAPahz6pwdjQWZsPAT6OofvPLWikaqD3ODfQ2JW56Fwh3md7MPcU67kUJ/4nV JReQ== 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:cc: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; bh=nVpS3bl9GJnuKfYCgdebXX71CkLglXyL2gxssJOS/V0=; b=W+HyvbnZ+d15wyMCJGZ6GVPd2LUUjG29Zk/ntTnEst0flcMD4fMurUvaG0z9mUyLpY ZL3wllMVL/irsFFckzccFOjjy1LDHjnLHm15SE1Bg4C3G9JpIxofn69G4yBCVxUU1rRF Ur6BOvL0F72lmF/Xqw2dK0Rqhl4QZ9LjxT5C50bJzT3ab/rgtrySZz3sCUd3YK824Ov2 cpGVCAjRiJpuTZEkta0nJEzret4FHvJ9RAWNo0GwrYmVaDkVEapVcyz8IxzOl7jvmKin 5HpATeelenINM7gd8mlDRa+Fe2RXH4dDGBStNav0/YWnR/g7nPtLKgw4ctO+vNcHkiaS sBYA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=S3TAVLB5; 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=QUARANTINE 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 w18si2848368edq.29.2021.12.01.20.41.56; Wed, 01 Dec 2021 20:41:57 -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 header.s=20210112 header.b=S3TAVLB5; 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=QUARANTINE 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 EA12568AD0C; Thu, 2 Dec 2021 06:41:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 91B9368A7A1 for ; Thu, 2 Dec 2021 06:41:44 +0200 (EET) Received: by mail-pj1-f51.google.com with SMTP id n15-20020a17090a160f00b001a75089daa3so1476907pja.1 for ; Wed, 01 Dec 2021 20:41:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=vCC/dRcIsx3/vNp+lsMwhanRpzQuR0TdMMx1x5FPvAk=; b=S3TAVLB5sJN/oiDqFWLp5ODofygfXjGVOonJg7/5uRTQpQn1+0+sXp8VPyZDhpX6z4 dgeyxLPuNwQiwZV84e+JseKnBJQNTx1qszagbJIgd+f4SD1uu/08iBMq3wPf5YdoyGF4 0RKih/6brG/iCcrU15wrSK6NurXG7q225lcFgrdRJFf+2zXGjUPELj0Tm6uOE3RJZzIx fBJ9RtYNCDTRAJxBvuN/XXxabxwVR5u12GBVPw9nH7BFCBKfOrFLu/OmG2RUfajfLD/r FPwKAFKf8uJrLWfiq1GuLTwJjoJr3kcNduaZgvbqrxtoLXwj1/4Hz1sda3u1bL4HfbYx KSiA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=vCC/dRcIsx3/vNp+lsMwhanRpzQuR0TdMMx1x5FPvAk=; b=I5V9Z9pcWDLIRtbV3R2CFYU+/qTlvlWHqV65IA+sLHqePbmuhTjuQEjqaFCzV+cmt4 SRiUlGPXTOtEmY5n0ORr/RjW2gHyM22mRF5raM7kFzbkHbgpHDA8lR9g+aJW2vH6Ktqa IPj83STiA1xtZAAba9sxktP46NHnMknMT2j4vv+jsvdKMBNx21lCdy/yaOkMnn95SkOG /RVIze8ytMIN6C8+R0e8uvnRSjb1Tm87W1W2/JFeuF0h2h8L/wmR3c8ciM1ZFepMS3yx wnmCjA6tEMk17n+r2ahG4FW+51kc9Z6XVtlIcGiHKcAXhK3Uq8hsgjFq5PiUvek+J4uX Lk5A== X-Gm-Message-State: AOAM532KHxvxsjrT2lOMr6F2dLkNnE/BCgx6p7t012QQwFzMDfB9DiHv MHKcFU10bTyt+69fMaZ7hbUk54Qw844= X-Received: by 2002:a17:903:185:b0:141:f5f3:dae with SMTP id z5-20020a170903018500b00141f5f30daemr12956951plg.56.1638420102196; Wed, 01 Dec 2021 20:41:42 -0800 (PST) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id x18sm1408964pfh.210.2021.12.01.20.41.41 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 01 Dec 2021 20:41:41 -0800 (PST) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Dec 2021 12:41:38 +0800 Message-Id: <1638420098-14559-1-git-send-email-lance.lmwang@gmail.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1638365954-29420-1-git-send-email-lance.lmwang@gmail.com> References: <1638365954-29420-1-git-send-email-lance.lmwang@gmail.com> Subject: [FFmpeg-devel] [PATCH v2] avformat/rtsp: load the sdp file with avio_read_to_bprint() 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: Limin Wang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 6Wq2Wnenjill From: Limin Wang Signed-off-by: Limin Wang --- libavformat/rtsp.c | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index e6a4993..249a019 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -2373,9 +2373,10 @@ static int sdp_read_header(AVFormatContext *s) { RTSPState *rt = s->priv_data; RTSPStream *rtsp_st; - int size, i, err; + int i, err; char *content; char url[MAX_URL_SIZE]; + AVBPrint bp; if (!ff_network_init()) return AVERROR(EIO); @@ -2386,22 +2387,16 @@ static int sdp_read_header(AVFormatContext *s) rt->lower_transport = RTSP_LOWER_TRANSPORT_CUSTOM; /* read the whole sdp file */ - /* XXX: better loading */ - content = av_malloc(SDP_MAX_SIZE); - if (!content) { + av_bprint_init(&bp, 0, AV_BPRINT_SIZE_UNLIMITED); + err = avio_read_to_bprint(s->pb, &bp, INT_MAX); + if (err < 0 ) { ff_network_close(); - return AVERROR(ENOMEM); + av_bprint_finalize(&bp, NULL); + return err; } - size = avio_read(s->pb, content, SDP_MAX_SIZE - 1); - if (size <= 0) { - av_free(content); - ff_network_close(); - return AVERROR_INVALIDDATA; - } - content[size] ='\0'; - + content = bp.str; err = ff_sdp_parse(s, content); - av_freep(&content); + av_bprint_finalize(&bp, NULL); if (err) goto fail; /* open each RTP stream */