From patchwork Mon Sep 26 22:10:21 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 740 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.66 with SMTP id o63csp2151449vsd; Mon, 26 Sep 2016 15:21:53 -0700 (PDT) X-Received: by 10.28.217.136 with SMTP id q130mr145111wmg.131.1474928513741; Mon, 26 Sep 2016 15:21:53 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l3si21491607wje.49.2016.09.26.15.21.53; Mon, 26 Sep 2016 15:21:53 -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=@gmail.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 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 F0119689E04; Tue, 27 Sep 2016 01:21:33 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf0-f67.google.com (mail-lf0-f67.google.com [209.85.215.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 51834689BA5 for ; Tue, 27 Sep 2016 01:21:27 +0300 (EEST) Received: by mail-lf0-f67.google.com with SMTP id b71so10431768lfg.1 for ; Mon, 26 Sep 2016 15:21:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Ws8GZDyDgMzUcfxipsPEfJER0tjDrxJ2tBA+L6MqN30=; b=06Z8VmOpCLdXVd0hqqVks0Qnrpa8/IQ8Tm1JDVCxSyDPsefxZTLfkoGhsd8ycFl46y 1Qt8yF9JB8Tl+l6ueHnHHzY5SvXSmvyub31A/Hh+/ZG9CEq8FK1C2ltN+ypfu/RifXTZ Vv/vn1yzJBx7LbJClqM1T99ytWxEqmyUdw0Sdr7J8tDKsksI3mTWHSPeLycGq2WHwow8 h774HR2lD8lVkjJVdxtoeFKpoY4jqaSnUGwmt4YSzmLxg6tR6r2c05r1/BLI4ELakAse XSxlvrByA50+gcB6jnu1hZ9lXXK/Q2oEMSZTVGEB+aQCpCAaYQPExKM7ReRPHeWSt5g2 izuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ws8GZDyDgMzUcfxipsPEfJER0tjDrxJ2tBA+L6MqN30=; b=D88iIfolrcueRdGC74H5Buhp56XzkQOKnrWsxWdWSEY2O+s+tUUpLpAWyPbCRAjzTR lTTd5KWIzMRsiA7u3CAeQO6F/qj5+4MGswMMEB6niHL9zXwVP/YrR7NtaG3KUgSfWkWG 6V/vk5SXS1r8YmuoUacOuHyAHHeCSv5t3GeWwNhRvnPs8yvor+Tcbk8kDmPQDplc5LwW lNMpprVEUyUJXwTXoDmLsAfGqAt8aSe8XV4rNYab1dTdPY4Qp66XhiJ21I2MZ2U2lD9f jhd89N0WinhA8VsRYgMOBN01YbQo9JmOWG3hel5QQoqE4S9KQ2awmnkRG/Izo/vrOZgv WKPA== X-Gm-Message-State: AA6/9RlxpTS3ccCV08vcVaE5jiTtsWhgcCBohyhHn84C4qt0rrA1IKyiEE7C7pjJ45Xiyw== X-Received: by 10.28.87.16 with SMTP id l16mr134299wmb.75.1474927825707; Mon, 26 Sep 2016 15:10:25 -0700 (PDT) Received: from saten.lan (dsl-hkibrasgw4-50df5e-23.dhcp.inet.fi. [80.223.94.23]) by smtp.gmail.com with ESMTPSA id gg10sm24493796wjd.4.2016.09.26.15.10.24 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 26 Sep 2016 15:10:25 -0700 (PDT) From: =?UTF-8?q?Jan=20Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Tue, 27 Sep 2016 01:10:21 +0300 Message-Id: <1474927822-6802-2-git-send-email-jeebjp@gmail.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1474927822-6802-1-git-send-email-jeebjp@gmail.com> References: <1474927822-6802-1-git-send-email-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] movenc: use similar logic to DASH when writing bit rate to ISML 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This way, in case of bit rate not being set, max_bitrate will be used instead. This enables, for example, re-using max_bitrate information from the input or doing transcoding with a rate control mode that is not bit rate based. Signed-off-by: Jan Ekström --- libavformat/movenc.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/libavformat/movenc.c b/libavformat/movenc.c index 449d0b5..d5ed1dd 100644 --- a/libavformat/movenc.c +++ b/libavformat/movenc.c @@ -3581,6 +3581,9 @@ static int mov_write_isml_manifest(AVIOContext *pb, MOVMuxContext *mov, AVFormat { int64_t pos = avio_tell(pb); int i; + int64_t manifest_bit_rate = 0; + AVCPBProperties *props = NULL; + static const uint8_t uuid[] = { 0xa5, 0xd4, 0x0b, 0x30, 0xe8, 0x14, 0x11, 0xdd, 0xba, 0x2f, 0x08, 0x00, 0x20, 0x0c, 0x9a, 0x66 @@ -3615,9 +3618,17 @@ static int mov_write_isml_manifest(AVIOContext *pb, MOVMuxContext *mov, AVFormat } else { continue; } + + props = (AVCPBProperties*)av_stream_get_side_data(track->st, AV_PKT_DATA_CPB_PROPERTIES, NULL); + + if (track->par->bit_rate) + manifest_bit_rate = track->par->bit_rate; + else if (props) + manifest_bit_rate = props->max_bitrate; + avio_printf(pb, "<%s systemBitrate=\"%"PRId64"\">\n", type, - (int64_t)track->par->bit_rate); - param_write_int(pb, "systemBitrate", track->par->bit_rate); + (int64_t)manifest_bit_rate); + param_write_int(pb, "systemBitrate", manifest_bit_rate); param_write_int(pb, "trackID", track_id); if (track->par->codec_type == AVMEDIA_TYPE_VIDEO) { if (track->par->codec_id == AV_CODEC_ID_H264) {