From patchwork Fri Dec 29 11:10:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mymoeyard@gmail.com X-Patchwork-Id: 7012 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.79.195 with SMTP id r64csp10371690jad; Fri, 29 Dec 2017 03:20:32 -0800 (PST) X-Google-Smtp-Source: ACJfBosm6DPAyGL3M0ox8JGJiQkZf7c4G3xBtJWg5V81b0VQRMxXFfz+rQ2kbdE9paPhKpWvG0BN X-Received: by 10.223.200.8 with SMTP id d8mr9235209wrh.190.1514546431991; Fri, 29 Dec 2017 03:20:31 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1514546431; cv=none; d=google.com; s=arc-20160816; b=PHdnoWj/HIJ+BMrwdR72sl8q8Uu3TdKDBtguBElftNjoYMlNkspcsnayqSXCwZSw7X jw2dBlMGkZeFan5RPxMYSKRN/pP0Gof3bW32+h31Enu9l08NJLATc+gdhnpevfD9rbFu y0Isyyu1E4ulFzF7O3/gQi8x3FDJoUgY4/65uGwIT0vupl65TTS5S8tpMnvkSBoMQC1k KX4sQCzp5FZkO4NmgSRMT7uVjfrBSHO6SgC5LxOCXzQaXkMXLM9428goysDSd+IgJOXn 9oMPdPW0L1+Dvqwa57eeuOf75mZsWhvT0o66miiLn1E5mcuKw1sE95Sz0Ocr76XJ6y7z km6w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=QbjHJ1DOl/wq0svMmW7vyUMZWP9KClPocwrpk7oESJA=; b=XGdhmzxUq6kT29ZdMnFKofMyRMLV1kEg2CCZDYQZxMErmaR1s3JmBXNPxEZdklFX+P HSWUw/RHMm0aEMfaNhB+SJ8TW14wwCi2TgcA4mMXj/MxzNqxCLsVL2OM1AWsY0p7mS1j DwDk6cA3M6vLgokK/JeKIU3mZEhjbnw+eQ+64pAgczC9G2zsgvbyitXhVdxl00qi6p7y EdNhL2zJJkRBZAnavnLKVVprHApC19yjJmL5t6uDJtLarbdKThJKWqXx44OE7K3qnkeS s7MyBO/S9ui6ylsnyWATXZg4D7jTlFTmnQ1wWZaxsJJcTdyaDBdaBkYMnC0uN2VMawLh UYCA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=o+NK/yFK; 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 sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id c24si22248144wrb.52.2017.12.29.03.20.30; Fri, 29 Dec 2017 03:20:31 -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 header.s=20161025 header.b=o+NK/yFK; 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 sp=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 72A6768834E; Fri, 29 Dec 2017 13:20:15 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pl0-f65.google.com (mail-pl0-f65.google.com [209.85.160.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E2C5268035F for ; Fri, 29 Dec 2017 13:20:08 +0200 (EET) Received: by mail-pl0-f65.google.com with SMTP id b96so22828634pli.2 for ; Fri, 29 Dec 2017 03:20:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=5pTh/wBRdD389hcMGCC1W4vT90sHYAYaOY0qgWZngKA=; b=o+NK/yFK7ZI1RLp80Xt0Z6RVU2gMrBX4zdHO21ddoE9h1l4+1/MeZ1nu+tjPnt2xvE 8VcmW6Sykl8ZBypA7ZFk16orocsBdfZ/TsrxpTRecbBtObDjLAQyvKj14FWxRLftYgXu JIbSA3vNeWbUVitDVM0nc4Pb/EJx6dbJny/GX0gL1j8qfKGT9g1Vx0qrjsIyGF/cVr13 N6vz3II0ZiIO92HY+bqB6JPqku2kYDvsd7qd115uxCmTn1n5hFks1zXELM0/G5aLf//W v2WgHUhquiC3rnqHYkS4iSNUMEGJfgZBuRxgFuKYJlNB5ubYn/21YfJ4894/4RwmPUp3 S49A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=5pTh/wBRdD389hcMGCC1W4vT90sHYAYaOY0qgWZngKA=; b=sPCmDA1eizAxXh80PMFQHNZrswEZCt+wNI957VzY4kGeEnuY6e/k+CVbRoEon92CuM y+Xeof7isqO+g3GPBW6xzzS9YD/RNTfR5zpGnd9+MnZAsjNJmvrpMaePKDfxf1C8Vfl7 9EMmLgN3EkcT289dipUtjM+huQgRewQ1JQutuhTqMabyVYHEV7XBmQ+nK1FwdGdeQYfb BqutvubpaNMMO+AVN1nyKxvUN4RseHnRJ6ItKO+2Z0oHjdG1AWZaj9q3j6sgtdAabKk5 8CiS8O+Enp0JtZt6xgVNLnElkmLwut+0HGZG9UHZRp5Z3AqwdyltkhymZmJOi9CUtmQB YGKg== X-Gm-Message-State: AKGB3mIZxkKeukavTouonUZA3yRlP0bfYtQPQnI1h9rV1KXScfcz07r3 dJzLD+ouEoyXpP7vuFBwGBwm1g== X-Received: by 10.84.169.4 with SMTP id g4mr34611212plb.393.1514545945185; Fri, 29 Dec 2017 03:12:25 -0800 (PST) Received: from localhost.localdomain (172.96.202.160.16clouds.com. [172.96.202.160]) by smtp.gmail.com with ESMTPSA id x77sm86399798pfe.61.2017.12.29.03.12.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 29 Dec 2017 03:12:24 -0800 (PST) From: mymoeyard@gmail.com To: ffmpeg-devel@ffmpeg.org Date: Fri, 29 Dec 2017 06:10:50 -0500 Message-Id: <1514545850-24529-1-git-send-email-mymoeyard@gmail.com> X-Mailer: git-send-email 1.7.1 Subject: [FFmpeg-devel] [PATCH, V3] avformat/concat: Fix wrong wrapped timestamp 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: Wu Zhiqiang MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: Wu Zhiqiang When using concat protocol, start from middle of file will generate non-zero wrap reference. If seek to time before the wrap reference, wrap control will generate wrong wrapped timestamp. Copy wrap related stream properties when reading header can fix this problem. Signed-off-by: Wu Zhiqiang --- libavformat/concatdec.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavformat/concatdec.c b/libavformat/concatdec.c index 0e189012ad..8ea9c2b02d 100644 --- a/libavformat/concatdec.c +++ b/libavformat/concatdec.c @@ -188,6 +188,12 @@ static int copy_stream_props(AVStream *st, AVStream *source_st) st->time_base = source_st->time_base; st->sample_aspect_ratio = source_st->sample_aspect_ratio; + /* Fix wrap control problem */ + avpriv_set_pts_info(st, source_st->pts_wrap_bits, source_st->time_base.num, + source_st->time_base.den); + st->pts_wrap_behavior = source_st->pts_wrap_behavior; + st->pts_wrap_reference = source_st->pts_wrap_reference; + av_dict_copy(&st->metadata, source_st->metadata, 0); return 0; }