From patchwork Thu Jun 11 04:43:08 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 20275 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 1CC59448CDE for ; Thu, 11 Jun 2020 07:43:44 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F20AD68B474; Thu, 11 Jun 2020 07:43:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from so254-54.mailgun.net (so254-54.mailgun.net [198.61.254.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D287268AFF5 for ; Thu, 11 Jun 2020 07:43:37 +0300 (EEST) DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=rcombs.me; q=dns/txt; s=mx; t=1591850620; h=Content-Transfer-Encoding: MIME-Version: Message-Id: Date: Subject: To: From: Sender; bh=uKvdsNlY8mkgfoZqaoGfwJexq24lmDAZcor2VbEzWHc=; b=TEHqTwYswKMj2aebtvJh7l1V+qNxtWvGbbRc9AIBZ+O5N2Ju8Gyq/Bu9ffDnCIJJjp5RErLW 4CVXOvTypI0QWL3rWKWL4C35ZOP+XjfFBkzRSKhAO/BkEW2zHb+2AghMCgysG3R5C5eowQJv u4PEnrAYVzIspH5cnoEBKnhGIfs= X-Mailgun-Sending-Ip: 198.61.254.54 X-Mailgun-Sid: WyJiZDU1MSIsICJmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZyIsICJiMGJhIl0= Received: from rcombs-mbp.localdomain ( [24.14.135.13]) by smtp-out-n12.prod.us-west-2.postgun.com with SMTP id 5ee1b666f3deea03f39781e5 (version=TLS1.2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256); Thu, 11 Jun 2020 04:43:18 GMT From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Wed, 10 Jun 2020 23:43:08 -0500 Message-Id: <20200611044312.38981-1-rcombs@rcombs.me> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/5] lavf/dashdec: fix 'adaption' typo 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" --- libavformat/dashdec.c | 96 +++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/libavformat/dashdec.c b/libavformat/dashdec.c index 1bd070c7cb..c94ce2caca 100644 --- a/libavformat/dashdec.c +++ b/libavformat/dashdec.c @@ -148,7 +148,7 @@ typedef struct DASHContext { uint64_t period_start; /* AdaptationSet Attribute */ - char *adaptionset_lang; + char *adaptationset_lang; int is_live; AVIOInterruptCB *interrupt_callback; @@ -822,16 +822,16 @@ end: static int parse_manifest_representation(AVFormatContext *s, const char *url, xmlNodePtr node, - xmlNodePtr adaptionset_node, + xmlNodePtr adaptationset_node, xmlNodePtr mpd_baseurl_node, xmlNodePtr period_baseurl_node, xmlNodePtr period_segmenttemplate_node, xmlNodePtr period_segmentlist_node, xmlNodePtr fragment_template_node, xmlNodePtr content_component_node, - xmlNodePtr adaptionset_baseurl_node, - xmlNodePtr adaptionset_segmentlist_node, - xmlNodePtr adaptionset_supplementalproperty_node) + xmlNodePtr adaptationset_baseurl_node, + xmlNodePtr adaptationset_segmentlist_node, + xmlNodePtr adaptationset_supplementalproperty_node) { int32_t ret = 0; int32_t subtitle_rep_idx = 0; @@ -866,9 +866,9 @@ static int parse_manifest_representation(AVFormatContext *s, const char *url, // try get information from contentComponen if (type == AVMEDIA_TYPE_UNKNOWN) type = get_content_type(content_component_node); - // try get information from adaption set + // try get information from adaptation set if (type == AVMEDIA_TYPE_UNKNOWN) - type = get_content_type(adaptionset_node); + type = get_content_type(adaptationset_node); if (type == AVMEDIA_TYPE_UNKNOWN) { av_log(s, AV_LOG_VERBOSE, "Parsing '%s' - skipp not supported representation type\n", url); } else if (type == AVMEDIA_TYPE_VIDEO || type == AVMEDIA_TYPE_AUDIO || type == AVMEDIA_TYPE_SUBTITLE) { @@ -878,8 +878,8 @@ static int parse_manifest_representation(AVFormatContext *s, const char *url, ret = AVERROR(ENOMEM); goto end; } - if (c->adaptionset_lang) { - rep->lang = av_strdup(c->adaptionset_lang); + if (c->adaptationset_lang) { + rep->lang = av_strdup(c->adaptationset_lang); if (!rep->lang) { av_log(s, AV_LOG_ERROR, "alloc language memory failure\n"); av_freep(&rep); @@ -894,7 +894,7 @@ static int parse_manifest_representation(AVFormatContext *s, const char *url, baseurl_nodes[0] = mpd_baseurl_node; baseurl_nodes[1] = period_baseurl_node; - baseurl_nodes[2] = adaptionset_baseurl_node; + baseurl_nodes[2] = adaptationset_baseurl_node; baseurl_nodes[3] = representation_baseurl_node; ret = resolve_content_path(s, url, &c->max_url_size, baseurl_nodes, 4); @@ -907,7 +907,7 @@ static int parse_manifest_representation(AVFormatContext *s, const char *url, if (representation_segmenttemplate_node || fragment_template_node || period_segmenttemplate_node) { fragment_timeline_node = NULL; fragment_templates_tab[0] = representation_segmenttemplate_node; - fragment_templates_tab[1] = adaptionset_segmentlist_node; + fragment_templates_tab[1] = adaptationset_segmentlist_node; fragment_templates_tab[2] = fragment_template_node; fragment_templates_tab[3] = period_segmenttemplate_node; fragment_templates_tab[4] = period_segmentlist_node; @@ -964,11 +964,11 @@ static int parse_manifest_representation(AVFormatContext *s, const char *url, av_log(s, AV_LOG_TRACE, "rep->first_seq_no = [%"PRId64"]\n", rep->first_seq_no); xmlFree(startnumber_val); } - if (adaptionset_supplementalproperty_node) { - if (!av_strcasecmp(xmlGetProp(adaptionset_supplementalproperty_node,"schemeIdUri"), "http://dashif.org/guidelines/last-segment-number")) { - val = xmlGetProp(adaptionset_supplementalproperty_node,"value"); + if (adaptationset_supplementalproperty_node) { + if (!av_strcasecmp(xmlGetProp(adaptationset_supplementalproperty_node,"schemeIdUri"), "http://dashif.org/guidelines/last-segment-number")) { + val = xmlGetProp(adaptationset_supplementalproperty_node,"value"); if (!val) { - av_log(s, AV_LOG_ERROR, "Missing value attribute in adaptionset_supplementalproperty_node\n"); + av_log(s, AV_LOG_ERROR, "Missing value attribute in adaptationset_supplementalproperty_node\n"); } else { rep->last_seq_no =(int64_t) strtoll(val, NULL, 10) - 1; xmlFree(val); @@ -981,7 +981,7 @@ static int parse_manifest_representation(AVFormatContext *s, const char *url, if (!fragment_timeline_node) fragment_timeline_node = find_child_node_by_name(fragment_template_node, "SegmentTimeline"); if (!fragment_timeline_node) - fragment_timeline_node = find_child_node_by_name(adaptionset_segmentlist_node, "SegmentTimeline"); + fragment_timeline_node = find_child_node_by_name(adaptationset_segmentlist_node, "SegmentTimeline"); if (!fragment_timeline_node) fragment_timeline_node = find_child_node_by_name(period_segmentlist_node, "SegmentTimeline"); if (fragment_timeline_node) { @@ -1013,7 +1013,7 @@ static int parse_manifest_representation(AVFormatContext *s, const char *url, // http://www-itec.uni-klu.ac.at/dash/ddash/mpdGenerator.php?fragmentlength=15&type=full xmlNodePtr fragmenturl_node = NULL; segmentlists_tab[0] = representation_segmentlist_node; - segmentlists_tab[1] = adaptionset_segmentlist_node; + segmentlists_tab[1] = adaptationset_segmentlist_node; segmentlists_tab[2] = period_segmentlist_node; duration_val = get_val_from_nodes_tab(segmentlists_tab, 3, "duration"); @@ -1052,7 +1052,7 @@ static int parse_manifest_representation(AVFormatContext *s, const char *url, if (!fragment_timeline_node) fragment_timeline_node = find_child_node_by_name(fragment_template_node, "SegmentTimeline"); if (!fragment_timeline_node) - fragment_timeline_node = find_child_node_by_name(adaptionset_segmentlist_node, "SegmentTimeline"); + fragment_timeline_node = find_child_node_by_name(adaptationset_segmentlist_node, "SegmentTimeline"); if (!fragment_timeline_node) fragment_timeline_node = find_child_node_by_name(period_segmentlist_node, "SegmentTimeline"); if (fragment_timeline_node) { @@ -1118,21 +1118,21 @@ end: return ret; } -static int parse_manifest_adaptationset_attr(AVFormatContext *s, xmlNodePtr adaptionset_node) +static int parse_manifest_adaptationset_attr(AVFormatContext *s, xmlNodePtr adaptationset_node) { DASHContext *c = s->priv_data; - if (!adaptionset_node) { - av_log(s, AV_LOG_WARNING, "Cannot get AdaptionSet\n"); + if (!adaptationset_node) { + av_log(s, AV_LOG_WARNING, "Cannot get AdaptationSet\n"); return AVERROR(EINVAL); } - c->adaptionset_lang = xmlGetProp(adaptionset_node, "lang"); + c->adaptationset_lang = xmlGetProp(adaptationset_node, "lang"); return 0; } static int parse_manifest_adaptationset(AVFormatContext *s, const char *url, - xmlNodePtr adaptionset_node, + xmlNodePtr adaptationset_node, xmlNodePtr mpd_baseurl_node, xmlNodePtr period_baseurl_node, xmlNodePtr period_segmenttemplate_node, @@ -1142,39 +1142,39 @@ static int parse_manifest_adaptationset(AVFormatContext *s, const char *url, DASHContext *c = s->priv_data; xmlNodePtr fragment_template_node = NULL; xmlNodePtr content_component_node = NULL; - xmlNodePtr adaptionset_baseurl_node = NULL; - xmlNodePtr adaptionset_segmentlist_node = NULL; - xmlNodePtr adaptionset_supplementalproperty_node = NULL; + xmlNodePtr adaptationset_baseurl_node = NULL; + xmlNodePtr adaptationset_segmentlist_node = NULL; + xmlNodePtr adaptationset_supplementalproperty_node = NULL; xmlNodePtr node = NULL; - ret = parse_manifest_adaptationset_attr(s, adaptionset_node); + ret = parse_manifest_adaptationset_attr(s, adaptationset_node); if (ret < 0) return ret; - node = xmlFirstElementChild(adaptionset_node); + node = xmlFirstElementChild(adaptationset_node); while (node) { if (!av_strcasecmp(node->name, (const char *)"SegmentTemplate")) { fragment_template_node = node; } else if (!av_strcasecmp(node->name, (const char *)"ContentComponent")) { content_component_node = node; } else if (!av_strcasecmp(node->name, (const char *)"BaseURL")) { - adaptionset_baseurl_node = node; + adaptationset_baseurl_node = node; } else if (!av_strcasecmp(node->name, (const char *)"SegmentList")) { - adaptionset_segmentlist_node = node; + adaptationset_segmentlist_node = node; } else if (!av_strcasecmp(node->name, (const char *)"SupplementalProperty")) { - adaptionset_supplementalproperty_node = node; + adaptationset_supplementalproperty_node = node; } else if (!av_strcasecmp(node->name, (const char *)"Representation")) { ret = parse_manifest_representation(s, url, node, - adaptionset_node, + adaptationset_node, mpd_baseurl_node, period_baseurl_node, period_segmenttemplate_node, period_segmentlist_node, fragment_template_node, content_component_node, - adaptionset_baseurl_node, - adaptionset_segmentlist_node, - adaptionset_supplementalproperty_node); + adaptationset_baseurl_node, + adaptationset_segmentlist_node, + adaptationset_supplementalproperty_node); if (ret < 0) goto err; } @@ -1182,7 +1182,7 @@ static int parse_manifest_adaptationset(AVFormatContext *s, const char *url, } err: - av_freep(&c->adaptionset_lang); + av_freep(&c->adaptationset_lang); return ret; } @@ -1233,7 +1233,7 @@ static int parse_manifest(AVFormatContext *s, const char *url, AVIOContext *in) xmlNodePtr period_baseurl_node = NULL; xmlNodePtr period_segmenttemplate_node = NULL; xmlNodePtr period_segmentlist_node = NULL; - xmlNodePtr adaptionset_node = NULL; + xmlNodePtr adaptationset_node = NULL; xmlAttrPtr attr = NULL; char *val = NULL; uint32_t period_duration_sec = 0; @@ -1374,18 +1374,18 @@ static int parse_manifest(AVFormatContext *s, const char *url, AVIOContext *in) goto cleanup; } - adaptionset_node = xmlFirstElementChild(period_node); - while (adaptionset_node) { - if (!av_strcasecmp(adaptionset_node->name, (const char *)"BaseURL")) { - period_baseurl_node = adaptionset_node; - } else if (!av_strcasecmp(adaptionset_node->name, (const char *)"SegmentTemplate")) { - period_segmenttemplate_node = adaptionset_node; - } else if (!av_strcasecmp(adaptionset_node->name, (const char *)"SegmentList")) { - period_segmentlist_node = adaptionset_node; - } else if (!av_strcasecmp(adaptionset_node->name, (const char *)"AdaptationSet")) { - parse_manifest_adaptationset(s, url, adaptionset_node, mpd_baseurl_node, period_baseurl_node, period_segmenttemplate_node, period_segmentlist_node); + adaptationset_node = xmlFirstElementChild(period_node); + while (adaptationset_node) { + if (!av_strcasecmp(adaptationset_node->name, (const char *)"BaseURL")) { + period_baseurl_node = adaptationset_node; + } else if (!av_strcasecmp(adaptationset_node->name, (const char *)"SegmentTemplate")) { + period_segmenttemplate_node = adaptationset_node; + } else if (!av_strcasecmp(adaptationset_node->name, (const char *)"SegmentList")) { + period_segmentlist_node = adaptationset_node; + } else if (!av_strcasecmp(adaptationset_node->name, (const char *)"AdaptationSet")) { + parse_manifest_adaptationset(s, url, adaptationset_node, mpd_baseurl_node, period_baseurl_node, period_segmenttemplate_node, period_segmentlist_node); } - adaptionset_node = xmlNextElementSibling(adaptionset_node); + adaptationset_node = xmlNextElementSibling(adaptationset_node); } cleanup: /*free the document */