From patchwork Wed Jan 1 00:58:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 17081 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a05:6214:1865:0:0:0:0 with SMTP id eh5csp216417qvb; Tue, 31 Dec 2019 16:59:12 -0800 (PST) X-Google-Smtp-Source: APXvYqz6aKVWweaLsawVx5YcxY0Y41j6Cp5hdrkGSJzePoNVHvjdfZYXmGf1brJvXqcyiqBZFsGr X-Received: by 2002:a50:f391:: with SMTP id g17mr77966452edm.52.1577840352330; Tue, 31 Dec 2019 16:59:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1577840352; cv=none; d=google.com; s=arc-20160816; b=jTmcBxRqB3CY3U28am18NRs45/+5wPNjiDUv26jPEBguqZo2hrWMVegT6mklBLu/uk 47AUJgAaEMu6PYO4o8shDCVn0+KCTk9YgraTOju5JXyANIEsOjUyvozgK3c12LRdAF/5 JrdvELn1f8G62cAtnWVUcbE+J0ZVsJZUm7RXSCnHPhzQmVrahGxCp4gA26t8zpIAIwNk C+ZLQ9gVBKWoQ7ylULeMzlxGpQ8QkUlR1k7lMchWu7Hy1iqsjkukcY5i1e5/7UAhwu+j a7zeg/4MGu4sxa7eaok7zxTjBIVfB4/0OsnfYpRe13tmvfVB3QcdpHOAG+S9ThKgTxNu 4Uiw== 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:dkim-signature:delivered-to; bh=lie25QnRSY5tqWyEXiK2Dl/nfHH2jISWpMuVPKb2sZ4=; b=N8n9IORL7oLBkZ0SXhuQtvSYpwvaSTFXpTZAC/MNWlzkyQ055nXO3QtL64AgraDHBH 6aAvIUQ1uOw7pLVtUK2Ju3/UjEenL0TbnML4+9pC9UHIK/MuAoXp8NrcOMsRDqOE/eNt w/2vEWEDbNlGqNZp+XZFgosTIXkSP+HE21+Ddl4Y2CI7mS9q/JudF1GS3mwYvJ9DfHy2 IWRyUoCEgC1Jh6wynEVaousqK8y6L1kcv6AnKWmnzwPP8/nQeGOG1/u2pFuEnZBDUL20 WzMJumD1k2UvKyTYTqoQOdPLLVtO5VYLVGeFjicGPCa8x3EnBBc3f1PWeNu92tfO4rK7 /Hnw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=SG7ivgJ+; 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=QUARANTINE 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 rv11si32670683ejb.407.2019.12.31.16.59.12; Tue, 31 Dec 2019 16:59:12 -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=SG7ivgJ+; 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=QUARANTINE 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 7099768AC85; Wed, 1 Jan 2020 02:59:09 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wr1-f66.google.com (mail-wr1-f66.google.com [209.85.221.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7730768AC3F for ; Wed, 1 Jan 2020 02:59:02 +0200 (EET) Received: by mail-wr1-f66.google.com with SMTP id g17so36197772wro.2 for ; Tue, 31 Dec 2019 16:59:02 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=e8iuLWlL8yX28XR72Owwrp0lRHF0ct2gRiSEL9LR0xM=; b=SG7ivgJ+RzbkrnwrkzZLB6bsIiiJmDocfA5dOe3Q8Tve/w79xUOPiHLpTdZOP9K34k 2hwT8C3HpwLBpRFz3eiHQ6M+4aZpkwCxNin5vrH5G5iirqZMCuU8zAmT80EaeMQ/CTHI WlBYYEqJPG9LKacVSCEAmmsyXdVSLtaOYaLA2P3Zy28CyaGbadT0LU6qHGc5SXH5yIRa xThT9bkcqtDSEgfwnS0hmPAbUMK2vAqQAkrE2BAIHdRuU4A2woY+/HjFwYNsSzhhZNiH 0hRlSE/qXzFwW4nkfd2xHhyHh3isaSTVv9+nK47FK4z9U0WeoI8YEks8hY2WjvaTCfvF xZ9w== 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:in-reply-to :references:mime-version:content-transfer-encoding; bh=e8iuLWlL8yX28XR72Owwrp0lRHF0ct2gRiSEL9LR0xM=; b=LXxdm1WY9hYbeNS0b58yrkQNrgmy1E9Lkym9RYe3CBE78x9xON+yXhMscZxNs4IgA2 9XD5tGXKpqBU6jUmP6Aum2jt0UDja88fjofuuOTLD5Yuv3yqDu86G9lnnOCB557MPw1g wemyCBZMHzcNDu63eTDLzsVe/FHZqrwh4oiMBfNZgYNnAjOS7T/fEwD24AUVz8gpvXh6 ureZK+S078nSSicBmSOzpHROvObkWUL0evVuZCHTGLxY10/4bVHS69Z2I8yOhofYtUQX 8PrGfv8A+CvPkNp9w6kTm/ZJlPM6V6RgCYTNzoirvl/kq2SaX5fuihca9mOANu9mby7V 51aQ== X-Gm-Message-State: APjAAAU8kSBBjiTBdR+wuhEsOfInOah51uAHSBBs4McpcHe8SjocyfxX jayaVNSkws1KAl8Jgew1kujaG/5M X-Received: by 2002:a5d:51c6:: with SMTP id n6mr3017574wrv.250.1577840341665; Tue, 31 Dec 2019 16:59:01 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc08bbf.dynamic.kabel-deutschland.de. [188.192.139.191]) by smtp.gmail.com with ESMTPSA id w17sm52431655wrt.89.2019.12.31.16.59.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 31 Dec 2019 16:59:01 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 1 Jan 2020 01:58:18 +0100 Message-Id: <20200101005837.11356-2-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200101005837.11356-1-andreas.rheinhardt@gmail.com> References: <20200101005837.11356-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 01/20] avformat/matroskaenc: Fix ReferenceBlock 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: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: UhJK24T+XyZh Content-Length: 2242 In order to indicate that the frames in a BlockGroup are not keyframes, one has to add a ReferenceBlock element containing the timestamp of a referenced Block that has already been written. The timestamp ought to be relative to the timestamp of the Block it is attached to. Yet the Matroska muxer used the relative timestamp of the preceding Block of the track, i.e. the timestamp of the preceding block relative to the timestamp of the Cluster containing said block (that need not be the Cluster containing the current Block). This has been fixed. Signed-off-by: Andreas Rheinhardt --- libavformat/matroskaenc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c index 469b604de6..9cf840c9be 100644 --- a/libavformat/matroskaenc.c +++ b/libavformat/matroskaenc.c @@ -2167,9 +2167,9 @@ static void mkv_write_block(AVFormatContext *s, AVIOContext *pb, av_free(data); if (blockid == MATROSKA_ID_BLOCK && !keyframe) { - put_ebml_sint(pb, MATROSKA_ID_BLOCKREFERENCE, track->last_timestamp); + put_ebml_sint(pb, MATROSKA_ID_BLOCKREFERENCE, track->last_timestamp - ts); } - track->last_timestamp = ts - mkv->cluster_pts; + track->last_timestamp = ts; if (discard_padding) { put_ebml_sint(pb, MATROSKA_ID_DISCARDPADDING, discard_padding);