From patchwork Sun Sep 17 13:35:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?J=C3=B6rn_Heusipp?= X-Patchwork-Id: 5171 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.36.26 with SMTP id f26csp2549663jaa; Sun, 17 Sep 2017 06:38:13 -0700 (PDT) X-Google-Smtp-Source: ADKCNb4H+nwUDqI7Lx8UD0RClcbSd8TiC/DtvU2NPSVgQHBj6aceT41o/8hEkq9dOhhv93wfGhFO X-Received: by 10.223.138.151 with SMTP id y23mr23479789wry.244.1505655493844; Sun, 17 Sep 2017 06:38:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1505655493; cv=none; d=google.com; s=arc-20160816; b=dSlux+TndTm+KG27/dbWGzLpVliRRz45rre9DlVwFxLTixT14qLbCCeos6V0ACrKx2 P/Hj1tGwZko6pvYic+0QMJu7u7sx/A25ljAAc5XVgpJl8UVLt17uG0eXfondXh510A0F Ndgs5UXhaU6exdbK6BRvxhHyMnqx76aIhBTVJAyrKTts/YPzQfOlmZez1T7b6bJgFS+B QRpGx6X3YfPE72mzY8KK3sMnvICUvwiiPI+PRCGQM9rxrTyXJDd5wQ/C97lF+5mA69Vg xDeX3cfamBi+Zu0heAAzxenAw0Fti4ccNGJ5UoEvbioQKKo69pHrj2Trg3edhBBsavrw bU5Q== 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:mime-version:references:in-reply-to :message-id:date:to:from:delivered-to:arc-authentication-results; bh=riGijEVj7GGhL/4e9weAbDh26xVl8zzMLnk86qdYIFU=; b=tYQR+TexU9dTSYbnUhi2Xk8cBMdrpcaiMFj3kCsHfIu9qudF17bwPt3OhJSPIW5iuE irDXVY0KZv9HjF4ZSTw+Gd0+eNgSwSmNxF6AJWAEPuppwEO6dcf1NtyAR+Ho9yzzpvdY 5PklHT5nQFCewlz8dBifejvFaIElKc2I1QujnXmVCTM6Ky9AIuYrv1juO+lHO2kASKFC uEM4oyBODBtTXqc/R+MjfuohanUf9IdKQ78fi6cxX1S+gnh/qw0XQl96s6LkSQK0c2O7 pCEOi8WhAkCqDjdDG7DwPfk9qHIcnrqOc6WPAHgh8IXfxol4JiRoWm5pF7Mgc5GwThxU 7E3w== 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 201si4270180wmb.163.2017.09.17.06.38.12; Sun, 17 Sep 2017 06:38:13 -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; 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 AF895688288; Sun, 17 Sep 2017 16:38:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from datengang.de (datengang.de [138.201.179.50]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 8FE0C680D33 for ; Sun, 17 Sep 2017 16:37:57 +0300 (EEST) Received: from p57b5cf91.dip0.t-ipconnect.de ([87.181.207.145] helo=idefix.fritz.box) by datengang.de with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_CBC_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1dtZln-0000oA-0z; Sun, 17 Sep 2017 15:38:03 +0200 From: =?UTF-8?q?J=C3=B6rn=20Heusipp?= To: ffmpeg-devel@ffmpeg.org Date: Sun, 17 Sep 2017 15:35:50 +0200 Message-Id: <1505655350-25301-1-git-send-email-osmanx@problemloesungsmaschine.de> X-Mailer: git-send-email 1.9.1 In-Reply-To: <59BE6DF0.5010707@xs4all.nl> References: <59BE6DF0.5010707@xs4all.nl> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 87.181.207.145 X-SA-Exim-Mail-From: osmanx@problemloesungsmaschine.de X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on datengang.de X-Spam-Level: X-Spam-Status: No, score=-2.9 required=8.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham autolearn_force=no version=3.4.0 X-SA-Exim-Version: 4.2.1 (built Mon, 26 Dec 2011 16:24:06 +0000) X-SA-Exim-Scanned: Yes (on datengang.de) Subject: [FFmpeg-devel] [PATCH] avformat/libopenmpt: Query duration and metadata after selecting subsong 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?q?J=C3=B6rn=20Heusipp?= , Josh de Kock Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Duration depends on the selected subsong and thus must be queried after selecting the subsong. There is no compelling reason to query other metadata earlier either. Signed-off-by: Jörn Heusipp --- libavformat/libopenmpt.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/libavformat/libopenmpt.c b/libavformat/libopenmpt.c index a7e3859..af6eb1a 100644 --- a/libavformat/libopenmpt.c +++ b/libavformat/libopenmpt.c @@ -93,14 +93,7 @@ static int read_header_openmpt(AVFormatContext *s) if (!openmpt->module) return AVERROR_INVALIDDATA; - openmpt->channels = av_get_channel_layout_nb_channels(openmpt->layout); - openmpt->duration = openmpt_module_get_duration_seconds(openmpt->module); - - add_meta(s, "artist", openmpt_module_get_metadata(openmpt->module, "artist")); - add_meta(s, "title", openmpt_module_get_metadata(openmpt->module, "title")); - add_meta(s, "encoder", openmpt_module_get_metadata(openmpt->module, "tracker")); - add_meta(s, "comment", openmpt_module_get_metadata(openmpt->module, "message")); - add_meta(s, "date", openmpt_module_get_metadata(openmpt->module, "date")); + openmpt->channels = av_get_channel_layout_nb_channels(openmpt->layout); if (openmpt->subsong >= openmpt_module_get_num_subsongs(openmpt->module)) { openmpt_module_destroy(openmpt->module); @@ -120,6 +113,14 @@ static int read_header_openmpt(AVFormatContext *s) } } + openmpt->duration = openmpt_module_get_duration_seconds(openmpt->module); + + add_meta(s, "artist", openmpt_module_get_metadata(openmpt->module, "artist")); + add_meta(s, "title", openmpt_module_get_metadata(openmpt->module, "title")); + add_meta(s, "encoder", openmpt_module_get_metadata(openmpt->module, "tracker")); + add_meta(s, "comment", openmpt_module_get_metadata(openmpt->module, "message")); + add_meta(s, "date", openmpt_module_get_metadata(openmpt->module, "date")); + st = avformat_new_stream(s, NULL); if (!st) { openmpt_module_destroy(openmpt->module);