From patchwork Thu Nov 24 11:31:59 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steven Liu X-Patchwork-Id: 1548 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.90.1 with SMTP id o1csp140236vsb; Thu, 24 Nov 2016 03:37:39 -0800 (PST) X-Received: by 10.195.30.43 with SMTP id kb11mr1818729wjd.131.1479987459391; Thu, 24 Nov 2016 03:37:39 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id gs7si36403247wjc.209.2016.11.24.03.37.33; Thu, 24 Nov 2016 03:37:39 -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; dkim=neutral (body hash did not verify) header.i=@gmail.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; dmarc=fail (p=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0C6FD689A93; Thu, 24 Nov 2016 13:37:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f172.google.com (mail-qk0-f172.google.com [209.85.220.172]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id F4208689949 for ; Thu, 24 Nov 2016 13:37:21 +0200 (EET) Received: by mail-qk0-f172.google.com with SMTP id n204so46433379qke.2 for ; Thu, 24 Nov 2016 03:37:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=iUNzjgTkpz8F/Xjonuh/UiPoCk6L72AL5zOtw1hFF4U=; b=rsjf+kScMHWvj1uF7IERIPLbitYN4qo/qAnFswFT9a7UnB5byIs4FwjYtOfdm+Y+gY v4jSelPWdx2h6sbS7gd+EVR+3dbbXVKAkps1P6zHraixVA3eW3f4H+UxTgVXb/ZFk7uV no1BzcfqMTg1AyTyQMZABm20EoLgyul3FlvY00qH+BVl8EA7IAYX+xK77DmcHEaoiiLI U9MnM2y72/fEO1dvhoYXFRF/KSs0L04fuMNAX97MRMGggwLc54XXl4KMLN1RuwARO8z2 1ZKRlT6fFDlc5JvFfnVRE83Z3drkMCC+SFxewBQS/6PpofOeD4b+YWppcLQfIvDw5aqS siaQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=iUNzjgTkpz8F/Xjonuh/UiPoCk6L72AL5zOtw1hFF4U=; b=aHUgBJZk0qJ8W4ii1sbOTTf4R3Nx0IneBxNJ9vUXhsblsVHnYKFNmOqOd+h+c7+lBz wgxRjw4eApgnwa1EuNwnLfSwbxtvheiS8YXFrMkpQJJPI1DlFpO11iAMaysArdQilvFK ld12B0aGY7wfWfy5TqtOXBoOyhOJ2OSTsEZSH/7xHoZ64knHK1SZ5tB6CtH/yAGnfQUL I4FD9jmjRSe4/KsW6ND8VSb/UnbOMgOwwAXol7M0UW/btsNJuhJSnelMKTFtm9cxJpV8 xP7b8lWcr2LVjfgEnn81VhB18cEl49pW+gR0GAFoWSN0GPpCGxmMO3CNykqFxaNOvm9i YBDw== X-Gm-Message-State: AKaTC00+dFt04QFE5Gb13HFPeWJ6NtiWLJsMz9RmoF55N4Hrc202UPfDuajmZb3pP1eH17lXrhw/judGdAgaig== X-Received: by 10.55.105.129 with SMTP id e123mr1504525qkc.173.1479987120096; Thu, 24 Nov 2016 03:32:00 -0800 (PST) MIME-Version: 1.0 Received: by 10.237.63.66 with HTTP; Thu, 24 Nov 2016 03:31:59 -0800 (PST) In-Reply-To: <201611241153.04051.cehoyos@ag.or.at> References: <201611241153.04051.cehoyos@ag.or.at> From: Steven Liu Date: Thu, 24 Nov 2016 19:31:59 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.20 Subject: Re: [FFmpeg-devel] [PATCH]lavf/llvdec: Set avg_frame_rate for video streams 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" 2016-11-24 18:53 GMT+08:00 Carl Eugen Hoyos : > Hi! > > Attached patch sets average framerate from the flv metadata. > > Please comment, Carl Eugen > > From 20ea87fe9969a56d0630372705c9ce974c60939e Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Thu, 24 Nov 2016 11:50:51 +0100 Subject: [PATCH] lavf/flvdec: Set avg_frame_rate for video streams. --- libavformat/flvdec.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) avpriv_set_pts_info(st, 32, 1, 1000); /* 32 bit pts in ms */ @@ -545,6 +548,10 @@ static int amf_parse_object(AVFormatContext *s, AVStream *astream, if (!st) return AVERROR(ENOMEM); st->codecpar->codec_id = AV_CODEC_ID_TEXT; + } else if (!strcmp(key, "framerate")) { + flv->framerate = av_d2q(num_val, 1000); + if (vstream) + vstream->avg_frame_rate = flv->framerate; } else if (flv->trust_metadata) { if (!strcmp(key, "videocodecid") && vpar) { flv_set_video_codec(s, vstream, num_val, 0); -- 1.7.10.4 LGTM, Thanks > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c index 3812994..46c9618 100644 --- a/libavformat/flvdec.c +++ b/libavformat/flvdec.c @@ -67,6 +67,7 @@ typedef struct FLVContext { int64_t *keyframe_times; int64_t *keyframe_filepositions; int missing_streams; + AVRational framerate; } FLVContext; static int probe(AVProbeData *p, int live) @@ -142,8 +143,10 @@ static AVStream *create_stream(AVFormatContext *s, int codec_type) s->ctx_flags &= ~AVFMTCTX_NOHEADER; if (codec_type == AVMEDIA_TYPE_AUDIO) flv->missing_streams &= ~FLV_HEADER_FLAG_HASAUDIO; - if (codec_type == AVMEDIA_TYPE_VIDEO) + if (codec_type == AVMEDIA_TYPE_VIDEO) { flv->missing_streams &= ~FLV_HEADER_FLAG_HASVIDEO; + st->avg_frame_rate = flv->framerate; + }