From patchwork Fri Mar 23 05:27:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Dixit, Vishwanath" X-Patchwork-Id: 8116 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp19867jad; Thu, 22 Mar 2018 22:27:51 -0700 (PDT) X-Google-Smtp-Source: AG47ELuYtcm6C6xyqMgQgfNX0D3FKT0Inu7BIDctIfqqZhQUz3de+riVowujhW9UvWjM7L6RdHqE X-Received: by 10.223.151.193 with SMTP id t1mr11859589wrb.206.1521782871368; Thu, 22 Mar 2018 22:27:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521782871; cv=none; d=google.com; s=arc-20160816; b=Y3Oas3K5KKSz1TKmJ1rNc5FC3B9Z8vloNap4Q2wDug7P8q26l0W5cOcKjTafmX2JzT 6iHL6wpgOC2/iNqVxNJOBZEMgRsox571gxM2PDOE/Sq4PML2QH9V9RTurv1j9R56ZIK0 IAEA8dNAg9OSKWWcTt3ZiAS+tiP9LfgsJyqVH23zgSDEDEvU6kruk4KHzv/t3ZOruuus 2bSEDad85U4HKGrYJLQvelp3HBvW/OWUFP+V0lpXxYX0M016THKfFDRWFl7I0R0J4nLx N/UMljW8yJt/RCiB24RR1sRVli0rBq8vHOKyrr0VujYbcCaAhzffFggDuZVozELH+xhg EfgA== 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:feedback-id:message-id:date:to:from :dkim-signature:delivered-to:arc-authentication-results; bh=TjqSUZ5i9SIw5ZzF8SEnnHdqoVFwCYwr2fHtChT7CLE=; b=sh9vWOQPwPiLniksNxVvnX9j6JCywl6A5lEBwkRWgupT1OqLGePULmUAhQqQdcosMb y9KSPsHmg4g1c/PzrgMSQ0g0En0d1rlnqperuKhLmCJuhPSru++2pt2Pi2wpsIEW2f4U 3h+nucHxdGGzogokHGuYlDmr2OANSpTxAyCqd3ilE/P5T5nIvBuyYHWj4SX+v/VFQTm5 MMm4L/5z0Fwam/cy+t2UveA5LUir338hTCB8Z/LiVlfLBNPGOzA7tQ9IlVYC9ITQJt/W x+DTDBLDZinWn6wEruFC/xpoEFW1P4HPc4XS/BdzHN25qZp6DY9Ev+vO/UPZDMRZouLu GtnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@smtpservice.net header.s=m78bu0.a1-4.dyn header.b=eslofSxo; 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=QUARANTINE sp=NONE dis=NONE) header.from=akamai.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c127si5425740wme.67.2018.03.22.22.27.50; Thu, 22 Mar 2018 22:27:51 -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; dkim=neutral (body hash did not verify) header.i=@smtpservice.net header.s=m78bu0.a1-4.dyn header.b=eslofSxo; 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=QUARANTINE sp=NONE dis=NONE) header.from=akamai.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BCF3B689983; Fri, 23 Mar 2018 07:27:30 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from a2i831.smtp2go.com (a2i831.smtp2go.com [103.47.207.63]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8256B689951 for ; Fri, 23 Mar 2018 07:27:29 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpservice.net; s=m78bu0.a1-4.dyn; x=1521783765; h=Feedback-ID: X-Smtpcorp-Track:Message-Id:Date:Subject:To:From:Reply-To:Sender: List-Unsubscribe; bh=rP+R57N9KO4D7lWuAqw1gf+3rcbx4mKzKflBzYsLYBs=; b=eslofSxo oIW9XJ8HTf9J3wf6GPzQqyIW4lCTcO+bJI6xF0k3zynB2IVze9y70l2fIZI5nxRg6fx4KStPb547Y 9lK+hv+5uWRYo1Hg5+HRhDeAZhRgArppu9gGF2Lpmv34sCpATkgFllAP/QmLGfSfVDkAJtU3g6LbS xlkYyuVoJI9QflyT9bsd62o8JRfP64RYN+q4VwtxitZTBoMuPjW5GyqIoCKHd/o8CStZ1o6PrPXU9 dshehBpQAuTwoJ0nHhetogkThq3+DSkqSLVSuc+E6SnZY8iRpbmc0yXsw+UP2fwdJeKioetNNr/DM rPTwnKFqbV4dVpwZ66EV4Qdy7g==; From: vdixit@akamai.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 23 Mar 2018 10:57:34 +0530 Message-Id: <1521782854-27249-1-git-send-email-vdixit@akamai.com> X-Mailer: git-send-email 1.9.1 X-Smtpcorp-Track: 1-zFEqRyIeNHHx.tNUNcpEdx Feedback-ID: 337386m:337386asVRLGB:337386s7GaUn95YI:SMTPCORP X-Report-Abuse: Please forward a copy of this message, including all headers, to Subject: [FFmpeg-devel] [PATCH 09/11] avformat/dashenc: constructing MPD's bandwidth string locally 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: Vishwanath Dixit MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Vishwanath Dixit --- libavformat/dashenc.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index 294999a..b0ed890 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -78,7 +78,6 @@ typedef struct OutputStream { int64_t first_pts, start_pts, max_pts; int64_t last_dts; int bit_rate; - char bandwidth_str[64]; char codec_str[100]; int written_len; @@ -546,20 +545,25 @@ static int write_adaptation_set(AVFormatContext *s, AVIOContext *out, int as_ind for (i = 0; i < s->nb_streams; i++) { OutputStream *os = &c->streams[i]; + char bandwidth_str[64] = {'\0'}; if (os->as_idx - 1 != as_index) continue; + if (os->bit_rate > 0) + snprintf(bandwidth_str, sizeof(bandwidth_str), " bandwidth=\"%d\"", + os->bit_rate); + if (as->media_type == AVMEDIA_TYPE_VIDEO) { AVStream *st = s->streams[i]; avio_printf(out, "\t\t\tformat_name, os->codec_str, os->bandwidth_str, s->streams[i]->codecpar->width, s->streams[i]->codecpar->height); + i, os->format_name, os->codec_str, bandwidth_str, s->streams[i]->codecpar->width, s->streams[i]->codecpar->height); if (st->avg_frame_rate.num) avio_printf(out, " frameRate=\"%d/%d\"", st->avg_frame_rate.num, st->avg_frame_rate.den); avio_printf(out, ">\n"); } else { avio_printf(out, "\t\t\t\n", - i, os->format_name, os->codec_str, os->bandwidth_str, s->streams[i]->codecpar->sample_rate); + i, os->format_name, os->codec_str, bandwidth_str, s->streams[i]->codecpar->sample_rate); avio_printf(out, "\t\t\t\t\n", s->streams[i]->codecpar->channels); } @@ -908,10 +912,7 @@ static int dash_init(AVFormatContext *s) char filename[1024]; os->bit_rate = s->streams[i]->codecpar->bit_rate; - if (os->bit_rate) { - snprintf(os->bandwidth_str, sizeof(os->bandwidth_str), - " bandwidth=\"%d\"", os->bit_rate); - } else { + if (!os->bit_rate) { int level = s->strict_std_compliance >= FF_COMPLIANCE_STRICT ? AV_LOG_ERROR : AV_LOG_WARNING; av_log(s, level, "No bit rate set for stream %d\n", i); @@ -1226,11 +1227,8 @@ static int dash_flush(AVFormatContext *s, int final, int stream) int64_t bitrate = (int64_t) range_length * 8 * AV_TIME_BASE / av_rescale_q(os->max_pts - os->start_pts, st->time_base, AV_TIME_BASE_Q); - if (bitrate >= 0) { + if (bitrate >= 0) os->bit_rate = bitrate; - snprintf(os->bandwidth_str, sizeof(os->bandwidth_str), - " bandwidth=\"%d\"", os->bit_rate); - } } add_segment(os, os->filename, os->start_pts, os->max_pts - os->start_pts, os->pos, range_length, index_length); av_log(s, AV_LOG_VERBOSE, "Representation %d media segment %d written to: %s\n", i, os->segment_index, os->full_path);