From patchwork Mon Jan 8 02:48:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Steven X-Patchwork-Id: 7190 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.78.2 with SMTP id r2csp2142140jaa; Sun, 7 Jan 2018 18:49:25 -0800 (PST) X-Google-Smtp-Source: ACJfBovQ6o8wo2W4CfSzIkjOSL+K1HNK6tXAg0Zr2oWkIog0TfSwRZgMA44WiGaTc5OXMEkqNP6N X-Received: by 10.223.134.147 with SMTP id 19mr9076685wrx.225.1515379765087; Sun, 07 Jan 2018 18:49:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1515379765; cv=none; d=google.com; s=arc-20160816; b=sZrreDrJbWPVV4YO6FL5+wJio3MKnkgrwHzGIhgvSZHpjqkTtjaXRIMiXhplkhtEXf 0eMI+R8CVgHwPYiX+mMB2x5wvA7OkUT8+MimefDGntzUEXn2GW6S9hvypDFn49772AZW 3NwmAcYSVn5SSLcHBN99U9I0IlWqo/R61odMKw0zmseavVbzzPRFUpS6lCxYxsKPqT4w W5xdoAnj1zuqz9Y4skT5NUMkHdHAvwv+GTtKDNOBibPnON0z8PGofHEez9QIdk9GBQlR cWq+TCQdOyrhDDlQjeq0V8Nej/CyGvmjDWurQdGWJw+JCerVtac/WYn0G/PgyyiRANbQ 4z0A== 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:feedback-id:to:references:message-id :date:in-reply-to:from:mime-version:delivered-to :arc-authentication-results; bh=qsb21vEw2t4olgXWoP7M6YFgZahwTzUKV/0KpZG+eI4=; b=rYjOv0EVMB4ahoPv1eXipnTPcr/9iY3NXZn+pMaaxmTa9ttUpxH2Z3hFcHrq51xTkC w0skNUx4nhZBo17HaJlBQ0vLXwswrSMeouRbQx8yggUFtcSx6yui1HfkmIGMvsr8kfWu 0zeXlCHC+csrxj5bMZthHL6/+8UGkyaucqd0Zpkqf8RRHChwrACvDEFdhVMN8EuwDjVM zQsXzClRAzZnrap2yxjaS3veQXYi/NgX9ZC+aiRqUrdkbH94Zpaht/Qfp9fdCRSpQLRA YwQfyCFXK6liEyKdfChgONiVXUL16Uj3vo9ZpWSEde3i/HCZ7J1wnC/joQ5bkHpk+dsD xzzg== ARC-Authentication-Results: i=1; mx.google.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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 33si8113048wrn.66.2018.01.07.18.49.24; Sun, 07 Jan 2018 18:49:25 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0344E689FC0; Mon, 8 Jan 2018 04:49:23 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtpbg339.qq.com (smtpbg339.qq.com [14.17.44.34]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5901E689F44 for ; Mon, 8 Jan 2018 04:49:15 +0200 (EET) X-QQ-mid: bizesmtp1t1515379717tob062mxd Received: from [192.168.3.21] (unknown [121.69.97.6]) by esmtp4.qq.com (ESMTP) with id ; Mon, 08 Jan 2018 10:48:36 +0800 (CST) X-QQ-SSF: 01100000004000F0FKF0B00A0000000 X-QQ-FEAT: Oab6VyED0GqiBvHOVG67j1hYXSzLJfW4M1LgoBbA17G06RPmfpE59KwShtikE S74MOkglIm4JXGAyC751MnscpvHcv93/TSw44crYbHsWJQUGX327dQKI+J9SNvnreDGIH04 NlycILRFF+jFDBhg5OTo8AEsRGY1aKSXb+jQfbGRULqRKg/teQ+M/iz46Of+WWidd0DfcwB POEafo68DyGmm7eDtjMb8cZCai3L8p43Ds8AvMA5JIYdCTKLib0L3igwuPn0vOyOkKXTJeX mNAIdWSc7qHbBa5M8mJkg3ByM= X-QQ-GoodBg: 0 Mime-Version: 1.0 (Mac OS X Mail 11.1 \(3445.4.7\)) From: =?utf-8?B?5YiY5q2n?= In-Reply-To: Date: Mon, 8 Jan 2018 10:48:34 +0800 Message-Id: <2AD9AC27-FE59-471E-AB16-0FAB9928B572@chinaffmpeg.org> References: To: FFmpeg development discussions and patches X-Mailer: Apple Mail (2.3445.4.7) X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:chinaffmpeg.org:qybgforeign:qybgforeign2 X-QQ-Bgrelay: 1 Subject: Re: [FFmpeg-devel] [PATCH 1/6] dashdec: Expose bandwidth and representation ID as metadata 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: =?utf-8?B?5YiY5q2n?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" > On 8 Jan 2018, at 02:46, Stefan _ wrote: > > <0001-dashdec-Expose-bandwidth-and-representation-ID-as-me.patch> >From ba640900c260f8b5b1919c4274b2c2e3e57e2546 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Thu, 4 Jan 2018 23:45:26 +0100 Subject: [PATCH 1/6] dashdec: Expose bandwidth and representation ID as metadata --- libavformat/dashdec.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index 0e3afd2a3..1a18ab021 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -84,6 +84,8 @@ struct representation { int stream_index; enum AVMediaType type; + char id[20]; + int bandwidth; int n_fragments; struct fragment **fragments; /* VOD list of fragment for profile */ @@ -801,6 +803,8 @@ static int parse_manifest_representation(AVFormatContext *s, const char *url, if (rep) { if (rep->fragment_duration > 0 && !rep->fragment_timescale) rep->fragment_timescale = 1; + rep->bandwidth = rep_bandwidth_val ? atoi(rep_bandwidth_val) : 0; + strncpy(rep->id, rep_id_val ? rep_id_val : "", sizeof(rep->id)); if (type == AVMEDIA_TYPE_VIDEO) { rep->rep_idx = video_rep_idx; c->cur_video = rep; @@ -1650,10 +1654,20 @@ static int dash_read_header(AVFormatContext *s) } if (c->cur_video) { - av_program_add_stream_index(s, 0, c->cur_video->stream_index); + int stream_index = c->cur_video->stream_index; + av_program_add_stream_index(s, 0, stream_index); + if (c->cur_video->bandwidth > 0) + av_dict_set_int(&s->streams[stream_index]->metadata, "variant_bitrate", c->cur_video->bandwidth, 0); + if (c->cur_video->id[0]) + av_dict_set(&s->streams[stream_index]->metadata, "id", c->cur_video->id, 0); } if (c->cur_audio) { - av_program_add_stream_index(s, 0, c->cur_audio->stream_index); + int stream_index = c->cur_audio->stream_index; + av_program_add_stream_index(s, 0, stream_index); + if (c->cur_audio->bandwidth > 0) + av_dict_set_int(&s->streams[stream_index]->metadata, "variant_bitrate", c->cur_audio->bandwidth, 0); + if (c->cur_audio->id[0]) + av_dict_set(&s->streams[stream_index]->metadata, "id", c->cur_audio->id, 0); } }