From patchwork Thu Dec 2 10:37:38 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Lance Wang X-Patchwork-Id: 31878 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:d206:0:0:0:0:0 with SMTP id q6csp215960iob; Thu, 2 Dec 2021 02:37:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJzqcb1dy6lRZLmP02Mlsn6Xf9iSni4DtQlMCU2ItfueV/ed4sQ94nN+riNC6fIWpCYEHd/w X-Received: by 2002:a17:906:538d:: with SMTP id g13mr14629237ejo.62.1638441476614; Thu, 02 Dec 2021 02:37:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1638441476; cv=none; d=google.com; s=arc-20160816; b=Ys1e4/WKuGYuNo2LKH09YHQVlyzFPHEzl1ypAmrGnOJg5tNchavG8WFxSlXA4oIQAF q1EDgTKWbX+5dzhW9lEgtlyo9D9leoFDFS5pmraedIP4f5U8KNXUGe7tBJnIhPtkjAHM vW1Sel8SpssI+c+2zTDBpRsbg77hiD6OXML/sVKO4dYg03vTGznhSivO4bNiEp1E6hCz SniFFtvsDN2F8HxlTQbWJZfS3nd+IadJXiUIktGtExqvomfWmFcB659M68rkFPEIF38V 4OgrGK/9mYa/PLV8/BwCVwP428y17KDXZ2zrovAFGlE8ujZ70XQ5PuDISAIXLitDMdQ/ hgpA== 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:dkim-signature:delivered-to; bh=a8hYG1DSDHWo8wl0lBADubZwXAPW9/QyEUqOPnvKxtk=; b=O/y6SYhq27YW8VvGGkQ41Kyo6wwb3nwgPSoRje0oQ6pqzfPNfL4zBh4ESgLL3xbwTf 9EGI2hexyjh1TYT9mleyIRLgH5xOcE3OqkLQT2HV5xi3qvW15bQsGwPGATc41Oklj0sQ KBUnSue/kqLedSvLwww+MGD9wMJcVUKs5uR+PUbNgH2s4j6PEX6q8dPMZwKf/WcA/Zh/ x/yg+Bs98dFdjS9J8JxZBdYLFDM6iCqYvXu239HQjLCU737oGcILeP10fCDxSYi9o/YI 9p7Bkep6qmWydz61GwKEDaHSkETUY/liq01lvJvQrDWJm53eKulDlVtyKX1e/c4ggz+j r4Ig== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20210112 header.b=Rz8JzmG6; 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 lv19si3963655ejb.604.2021.12.02.02.37.55; Thu, 02 Dec 2021 02:37:56 -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=Rz8JzmG6; 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 90BFD689B39; Thu, 2 Dec 2021 12:37:52 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl1-f173.google.com (mail-pl1-f173.google.com [209.85.214.173]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 64E6968AC6A for ; Thu, 2 Dec 2021 12:37:45 +0200 (EET) Received: by mail-pl1-f173.google.com with SMTP id k4so19902032plx.8 for ; Thu, 02 Dec 2021 02:37:45 -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 :mime-version:content-transfer-encoding; bh=TT7z053g2CnTzI5eH5cTngTMPaBDWGifTlF8qqRLd2Y=; b=Rz8JzmG6v1RbEHX4LAXUC5JQ8VqVzpbHAqcZJJtLAhYVSs1zjIbqsndueluz1isawM 69XaCBKh2KNW5ZV+f7lk8NZ78cdDV6iHiy0qKnIrigvLT2bAW9kuDghlPnmvL7FOsVuw jpLts8lFZsCx6xvwDZPIfenMiX8khHRTlvRFeG9hiHTS0ut97zFjOzYLNZ5VhNoQ8N0a RtM2MvUExWD/EGD8fuu561hqTpp127kjlt5oidFVJ01MpIsJs6wEwdzQjFfc/3vlzToQ 013kcGhnR0TWtIQVeVbwEUI+ysqyhw6yHFR1ZFM1YEZym9nrkVu75VMER3nqa/s8Sdzz FWYg== 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:mime-version:content-transfer-encoding; bh=TT7z053g2CnTzI5eH5cTngTMPaBDWGifTlF8qqRLd2Y=; b=rwpwCBemFtCIDxP1Y8OmFDVj8yu+NZQPvuXZMeVxnGRAG0cUL9bFOVs4dFh240euvz DqmiRhmSyS7P+m2AvAALc4EK0oM7iprMUoAoup+9Z0FDvoJc7O2ivJ1D1535do7WmD/q E3duTag3uVcSZ7eHLKI/ZnKu+CAPFhiFg8XycX3eBHb8U1yuIyrkJy4SvCeA5ouQL8eT +ZzleubzbYJO5phBfUUfbSO2iKSKC+90x6s1uKzqqg9jzL7XCXMAfDD9A0q8aQvIBaz/ uibKqTL/9w1/r5XcToj7W538zEyXeuwMtu4i+TjZONbUPyxqALKyvvkrBUEC2q7zqe6w ztNA== X-Gm-Message-State: AOAM530z2kwsx1Xcu3lBQVf6MZYYBB1+eLmNmhqUYo+8aphHvvglPxs6 5P2GuY6pDxFnfVk/o99tbxz/Hod6nNw= X-Received: by 2002:a17:902:cecf:b0:141:e15d:4a2a with SMTP id d15-20020a170902cecf00b00141e15d4a2amr14528202plg.66.1638441463521; Thu, 02 Dec 2021 02:37:43 -0800 (PST) Received: from vpn2.localdomain ([161.117.202.209]) by smtp.gmail.com with ESMTPSA id f1sm3275191pfj.184.2021.12.02.02.37.42 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 02 Dec 2021 02:37:43 -0800 (PST) From: lance.lmwang@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Thu, 2 Dec 2021 18:37:38 +0800 Message-Id: <1638441459-21819-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> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 1/2] 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: iCTHhhhmsthh From: Limin Wang this allows getting rid of the hardcoded max size of SDP. Reviewed-by: Martin Storsjö Signed-off-by: Limin Wang --- libavformat/rtsp.c | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/libavformat/rtsp.c b/libavformat/rtsp.c index e6a4993..17ffac2 100644 --- a/libavformat/rtsp.c +++ b/libavformat/rtsp.c @@ -2373,9 +2373,9 @@ static int sdp_read_header(AVFormatContext *s) { RTSPState *rt = s->priv_data; RTSPStream *rtsp_st; - int size, i, err; - char *content; + int i, err; char url[MAX_URL_SIZE]; + AVBPrint bp; if (!ff_network_init()) return AVERROR(EIO); @@ -2386,22 +2386,15 @@ 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'; - - err = ff_sdp_parse(s, content); - av_freep(&content); + err = ff_sdp_parse(s, bp.str); + av_bprint_finalize(&bp, NULL); if (err) goto fail; /* open each RTP stream */