From patchwork Wed Apr 11 07:02:11 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Dixit, Vishwanath" X-Patchwork-Id: 8395 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp369929jad; Wed, 11 Apr 2018 00:02:34 -0700 (PDT) X-Google-Smtp-Source: AIpwx49lHhAeI9yqXFW1do35XgtqJglSloDn5AMgFrgFrhWIqhAUSWY86h9oozCZj5KhxxYquDBZ X-Received: by 10.223.173.42 with SMTP id p39mr552606wrc.146.1523430154042; Wed, 11 Apr 2018 00:02:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1523430153; cv=none; d=google.com; s=arc-20160816; b=mB/+2/s0V10+neL8Iw34kO5FxdxWr/+qziLQWU63OxWesrJL7xddVysnl6UQR4Jij2 iHPnC1uxK4FTJi1Y/Zi/Qvl3FvErds6T2kn0OclkCvt1VGptTxgB0dglL/T5Rjq/mXNb bSI+9jb6KpbuaHqTVmkMf9eU7ysDIRxKXHpQZYfCjyW+rLNBHFC1CcSQIRGTY9IghvCq webj23MLR6pmumgPdC4nu4TY+F/W2iu8Su0ZKGZKQkWJcZNo3aUJFu3OKqCsJisQ8jQO bXGlXjMyqnsLxHptUl1sUhNNUf0JVYvyS2Ai/ewnM5rvJyuch6jdgc8CkAvzurDh02WV IcgA== 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:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to :arc-authentication-results; bh=CE9lUrKjrA2zuSclOh5Ao92dAYnDxw9pThdQSMcrsiw=; b=Kwo2i596cv+k73ds+BdwSUJ0e4rFvw/FxpiCzt3tnFhhoBtKrBFJjrav2GuK9p8j17 7ipqb9cePkvtAM059s+5qZlTpEOwn5o3ET8lI1qW+kcF3ov501pnFfs5Ry8qsRHbQNdu Yf6dFhczU100JhV9vMw0ZgeI9bRDdnaXd4a7tr26oVKN8lQ8ss82gUqmJ1OhAsFCszi9 507I0rYi4/+XvW99luHbnoT1+0cecgP4PKVZl3kIuFwYmRKAdvE7DULWcJcioDXULnKD PZ4j49Mpll/Bl1LffKFt+oj91FiAINpm4IQODFlaqP0Yb9yI3KrHIphrSKvpnGGZsL2i Cq3A== 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=WBAoZmU3; 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 l15si344811wrb.494.2018.04.11.00.02.33; Wed, 11 Apr 2018 00:02:33 -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=WBAoZmU3; 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 9212E68A28B; Wed, 11 Apr 2018 10:01:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from a1i318.smtp2go.com (a1i318.smtp2go.com [43.228.185.62]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 58A3E689B7C for ; Wed, 11 Apr 2018 10:01:53 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpservice.net; s=m78bu0.a1-4.dyn; x=1523431037; h=Feedback-ID: X-Smtpcorp-Track:Message-Id:Date:Subject:To:From:Reply-To:Sender: List-Unsubscribe; bh=oYOUz+2NHgOFvpXtORUkB9TZtfYBWE5TAZt6uxhL+7U=; b=WBAoZmU3 fXJfHn0hALdRsDuz5Nc9N74LVuubm572p7Q9JRJATL22u35NYmFk4yYkqZ6KiIZBQDyp8+By16/mK Ml0GnEU8/6GY81a8wCCPbLeO5j7aZdwOWigXx4+82zeUhN/KpjusV9tPcTFD1n9jzVCZt9DZ+egqE gNr635MqUAr/rcwLOA9SrzNBvCSceHq3Pc8wAseq899WBeclg+Un38mytHr2OD0AAJG6exTD4UIRH Mbr/wEdZCWvBxgefjDFclWolSyT++pRLOELgBaNpf1XXboUGHSw8kmlI48NIVpaba9vyz889lWAXP XT4fMAGadP/k3y91Ev8DZGwjig==; From: vdixit@akamai.com To: ffmpeg-devel@ffmpeg.org Date: Wed, 11 Apr 2018 12:32:11 +0530 Message-Id: <1523430131-17515-1-git-send-email-vdixit@akamai.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1522831084-7508-1-git-send-email-vdixit@akamai.com> References: <1522831084-7508-1-git-send-email-vdixit@akamai.com> X-Smtpcorp-Track: 1f69__NmF5pH7H.zfL0OqW2_ Feedback-ID: 337386m:337386asVRLGB:337386syLyPhXgnu:SMTPCORP X-Report-Abuse: Please forward a copy of this message, including all headers, to Subject: [FFmpeg-devel] [PATCH v3 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 1d34bb9..6d06486 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; @@ -549,20 +548,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); } @@ -918,10 +922,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); @@ -1236,11 +1237,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);