From patchwork Fri Mar 23 05:27:15 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Dixit, Vishwanath" X-Patchwork-Id: 8114 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp19656jad; Thu, 22 Mar 2018 22:27:30 -0700 (PDT) X-Google-Smtp-Source: AG47ELuXPyfFL4byicSdAM7shYOG6puNsqqib1MX63oJHVrghz0VASwmSmLOVYxXyIvX9sPvZdV4 X-Received: by 10.28.232.200 with SMTP id f69mr7129307wmi.32.1521782850207; Thu, 22 Mar 2018 22:27:30 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521782850; cv=none; d=google.com; s=arc-20160816; b=I2T+LeiQ0GeaGAB8YRBLPDfd79K2p7ZByIKxJqOyLRmRFBoddhquGko8Tzlate0WWs oyfkok7HtG3I4fXuA+WQ/6vbbD+vlW+jnEfE4eaJMAc87QU3fzIw0ZMKVUaL+oT0m3aA 3c/b5ycUl9M9CzPwnr+xI7h52KLQDb0Arp+oG36kt0J8zk52THYBEDeHANxVskW/eo4X uavnAfqogzUkSPVUPDm140xcTRNJ6qU0VZKEeiljteuv0gx/UfsNcytewBmX1pSFYXbY f2tQnQItHzNF0r5PULVboVVFE0tB5eZjmahQS/GJwnZbfGAgg28dw5xYQpt9M6g4PmRl 87ug== 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=vDWKyir4mlBU4QTUlP5WHruUzGMeWxaxzwqBb6QOlnE=; b=WlBa8o7fvWXwRHgZFAWdXwSEyc8taxRep+DEok4voO4rjz5pL6AlNpUBo7oDArJ+66 D4XJwxaXIJySUohbmxPkeMyu+o3dGpNVEGXv9/ZWA0/ziQ249zFQG4WmdUuidu6yCVql MISsp+ZOqNIx7DU2L88ZqSmsuM5ob9S7uWkiG+NUtNb0ULqSEtSgqr1Ruf5jUFNPqRJi apwuuBR00GX2JTCx+1xWlnoIBaOaSZ2gmxFEkA8AhiWyJV/k3Xm7/b86C5iNtJKOpMHX gN7XNUbs1tw8jh79nD82dSLf1f5O3S7J9RpLN+svchyF15MkMxX01atym7rQnbfvjAAW l1Pw== 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=0+iEkyMk; 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 n20si5237030wmh.72.2018.03.22.22.27.29; Thu, 22 Mar 2018 22:27:30 -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=0+iEkyMk; 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 82295689936; Fri, 23 Mar 2018 07:27:11 +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 D8FB2689896 for ; Fri, 23 Mar 2018 07:27:09 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=smtpservice.net; s=m78bu0.a1-4.dyn; x=1521783745; h=Feedback-ID: X-Smtpcorp-Track:Message-Id:Date:Subject:To:From:Reply-To:Sender: List-Unsubscribe; bh=THWMYrPWCm2WFU2fL213IpCVkg/jnY7FJ38zCNXnaxA=; b=0+iEkyMk Uuqoe1axd8wrS/AbVCqwW2z4E2JlUAmJaV7X4T7yypvNVFBsNTI0drWO1RDRYitLmommV4u399LOE sZyUGQRFWSDw7Q2pgx6bvApD4xGcZjOKT+gJXlhTxOIqJ/JW9C4H912jK8ZSK1fF6EuZKEzxFcz87 NPgUMKqm8tWGKJkFemc1aHS1PRlHmsg+ekudrA0QCqSxRIwlY2+OcBJ3xbXVi4T5Pa1RbywZZGaFE 8Q89hIOs4rjDNDHgITH6dg/xTl2gwQ934Ld71cNnHXa+cZZQ6oUWrmLB/8IIq/kyPQH85By0zel+l uxmmezbjjE5ssy8x9gchl40t2w==; From: vdixit@akamai.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 23 Mar 2018 10:57:15 +0530 Message-Id: <1521782835-26884-1-git-send-email-vdixit@akamai.com> X-Mailer: git-send-email 1.9.1 X-Smtpcorp-Track: 1-zFEWRyIeFhRd.tNj5twyBz Feedback-ID: 337386m:337386asVRLGB:337386sSOc52_QgO:SMTPCORP X-Report-Abuse: Please forward a copy of this message, including all headers, to Subject: [FFmpeg-devel] [PATCH 07/11] avformat/dashenc: logic to compute bitrate overhead 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 | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c index d20bdba..0ba9f55 100644 --- a/libavformat/dashenc.c +++ b/libavformat/dashenc.c @@ -86,6 +86,8 @@ typedef struct OutputStream { char full_path[1024]; char temp_path[1024]; int64_t chunk_duration; + int total_pkt_size; + int bitrate_overhead; } OutputStream; typedef struct DASHContext { @@ -1209,6 +1211,13 @@ static int dash_flush(AVFormatContext *s, int final, int stream) } } + if (!os->bitrate_overhead) + os->bitrate_overhead = ((int64_t) (range_length - os->total_pkt_size) * + 8 * AV_TIME_BASE) / + av_rescale_q(os->max_pts - os->start_pts, + st->time_base, AV_TIME_BASE_Q); + os->total_pkt_size = 0; + if (!os->bit_rate) { // calculate average bitrate of first segment int64_t bitrate = (int64_t) range_length * 8 * AV_TIME_BASE / av_rescale_q(os->max_pts - os->start_pts, @@ -1340,6 +1349,7 @@ static int dash_write_packet(AVFormatContext *s, AVPacket *pkt) else os->max_pts = FFMAX(os->max_pts, pkt->pts + pkt->duration); os->packets_written++; + os->total_pkt_size += pkt->size; if ((ret = ff_write_chained(os->ctx, 0, pkt, s, 0)) < 0) return ret;