From patchwork Mon Apr 15 11:18:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Liu Steven X-Patchwork-Id: 12751 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id B3D5F447B95 for ; Mon, 15 Apr 2019 14:18:45 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7ECCA68AA02; Mon, 15 Apr 2019 14:18:45 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from smtpproxy19.qq.com (smtpproxy19.qq.com [184.105.206.84]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E46A568A9AD for ; Mon, 15 Apr 2019 14:18:37 +0300 (EEST) X-QQ-mid: bizesmtp20t1555327112tlnn0zfx Received: from localhost (unknown [43.247.177.226]) by esmtp6.qq.com (ESMTP) with id ; Mon, 15 Apr 2019 19:18:32 +0800 (CST) X-QQ-SSF: 01100000002000K0ZOF1000A0000000 X-QQ-FEAT: lSEbf7prIX4egMAqs2ymx87u97Ea1BlJxt4Umycxmiz/Ay1CiK6siJxJYRYV3 9hg8zxu96B9soPMCIbtE/ksHBtK6K386aL4K7ejy/mFyhtQveejuJ1iHpYOYfsCbg6PaMi5 ZTm1otTt2DrpstfamwQeROxzmS6vlS2SkXrIxrovDDhOV+q9H5QYttIDIRWm1K6+ewnJ7cM VylRK411IeGMP97bCRwIhaiPmhyKVWRRslwOQiXEtkpsbRsOUZbtAVwFZ8MkmuooSXRjgiH ZtfXNMhd+JTbDcCIY5WC9OwV5bAShM1zBYjZI4c0IRfl3u X-QQ-GoodBg: 0 From: Steven Liu To: ffmpeg-devel@ffmpeg.org Date: Mon, 15 Apr 2019 19:18:30 +0800 Message-Id: <20190415111830.37036-1-lq@chinaffmpeg.org> X-Mailer: git-send-email 2.17.2 (Apple Git-113) In-Reply-To: References: X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:chinaffmpeg.org:qybgforeign:qybgforeign4 X-QQ-Bgrelay: 1 Subject: [FFmpeg-devel] [PATCH v2] avformat/dashdec: add ProgramInformation parser 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: Steven Liu MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Steven Liu --- libavformat/dashdec.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index eed149cd1a..6e3e7e4f1e 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -1161,6 +1161,34 @@ static int parse_manifest_adaptationset(AVFormatContext *s, const char *url, return 0; } +static int parse_programinformation(AVFormatContext *s, xmlNodePtr node) +{ + xmlChar *val = NULL; + + node = xmlFirstElementChild(node); + while (node) { + if (!av_strcasecmp(node->name, "Title")) { + val = xmlNodeGetContent(node); + if (val) { + av_dict_set(&s->metadata, "Title", val, 0); + } + } else if (!av_strcasecmp(node->name, "Source")) { + val = xmlNodeGetContent(node); + if (val) { + av_dict_set(&s->metadata, "Source", val, 0); + } + } else if (!av_strcasecmp(node->name, "Copyright")) { + val = xmlNodeGetContent(node); + if (val) { + av_dict_set(&s->metadata, "Copyright", val, 0); + } + } + node = xmlNextElementSibling(node); + xmlFree(val); + } + return 0; +} + static int parse_manifest(AVFormatContext *s, const char *url, AVIOContext *in) { DASHContext *c = s->priv_data; @@ -1310,6 +1338,8 @@ static int parse_manifest(AVFormatContext *s, const char *url, AVIOContext *in) if (c->period_start > 0) c->media_presentation_duration = c->period_duration; } + } else if (!av_strcasecmp(node->name, "ProgramInformation")) { + parse_programinformation(s, node); } node = xmlNextElementSibling(node); }