From patchwork Mon Jul 24 23:41:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hendrik Leppkes X-Patchwork-Id: 42959 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:be1d:b0:130:ccc6:6c4b with SMTP id ge29csp2252148pzb; Mon, 24 Jul 2023 16:41:48 -0700 (PDT) X-Google-Smtp-Source: APBJJlEm6S09iJsRfkzqFtxZ8dHlyFBY/M/wuyWnRs7DsLwh+BhOIOOQlRjEIGwgxErL+/cEK/et X-Received: by 2002:a05:6402:b11:b0:51d:e2c4:f94a with SMTP id bm17-20020a0564020b1100b0051de2c4f94amr9867780edb.20.1690242107879; Mon, 24 Jul 2023 16:41:47 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690242107; cv=none; d=google.com; s=arc-20160816; b=l4bDINXYAAGZSQ0GNcKA7/XwxUqaRx+k9FE9ajTAhq1Si2Xfojtmw+9qnk9pS3/ob0 Kxj4As8CHC7lEghcdxDj9bNS3t7ZWtZko0q2J47e4CHmTq3WfnMx/eDX91PdW8m+zROf SUwEZ/08DLoh1yopvfePZjXw8R1kV65IUCJyh28WMaKVMiAoIaV+omR0QLkLyFZo9Db4 AlB/jal25BCX8acoEmHlg8ctjnPS0HjdqnQqT2SpbCUC7dEyEkqDFTSuO6p7OXUnuLtj RbWthu63CLf/tPfivBO5+5Y3hO1TXbk6DTVf+/WjdF0HhpFgBHaPcPXpueBoqwohvxUk gieQ== 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:message-id:date:to:from :dkim-signature:delivered-to; bh=oXbK7vMYDwhMvJj5qliEu6c9xFg0GGxdz49fL5PGDiI=; fh=fJkzlHVtzrfb1DKSHfGh6ZxwmKWRKoXLgPMuU0mXOcU=; b=xERHFwGo5pI/M5rr6RVDAuHuRrDTtLBb182+5rXfnYxIP761RAiGvjJPMlb8+LO+et euvPeUaGK26tSKKmpot5TqNOQUce/HUAZLqPPoimHlpfkhZ/gPRlvxM+r2L84S4GSLrU Lx1vBey95grrwOZWyxIPRXiNeGaFqt9CHIsMHNeN+LF4FheJXlyZ9eQYoT6/e4/16nxm uedwLqhoKA9ayhaDFysm/J0cxJ1fi6tYJi8ooBFIqEZsd/TSjQ54KhHgL3F9rM270o8B Gg+lIf6y+u2xRRQQlpqUcoEnEfsC+cwk1dMAadTIhj7VfXvnKp/RfFUqtSjkbEwqJnHz kxow== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=PMpBhGgv; 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 r22-20020aa7d596000000b005222af123b5si2549647edq.680.2023.07.24.16.41.47; Mon, 24 Jul 2023 16:41:47 -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; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20221208 header.b=PMpBhGgv; 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 E197468C808; Tue, 25 Jul 2023 02:41:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f52.google.com (mail-ed1-f52.google.com [209.85.208.52]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C58F568BF90 for ; Tue, 25 Jul 2023 02:41:37 +0300 (EEST) Received: by mail-ed1-f52.google.com with SMTP id 4fb4d7f45d1cf-5221c6a2d3dso3900741a12.3 for ; Mon, 24 Jul 2023 16:41:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1690242096; x=1690846896; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=tOcQuvz6ewTtmRuzBVV3DhvqD8tWnvffcDnkYHvwvPw=; b=PMpBhGgvhDwOPRT/jfT6eqzAXWYDETWc2OIaAkBTauesbMmMzHj7PwsrVG4N9n2+e4 ttU07hTZGrI1f4sPmL84YyHg9q7AsjHb7xgoOmO18kbnhKk7fSq9OewA6Y/XTHhme1M3 PIh0W0YmTBMoGbfZkfAwNTx+trfCfqtonvdWXeId/R92RjgnNTdsDIPS4J19SCtLt9uu 6JAkdkOGO5IzBHq1vwLvMTLNfQZE1yH9sab4CEhPhuwISJWpy/KwcJd3RVJwF6o8iJJb OLIooc7/UzaWM4Q+rUsVBqCBvyobqn9Yf9sGkzOnojnwGPzzhHYrJRVijpN0Y+h6Sfb6 kqYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1690242096; x=1690846896; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=tOcQuvz6ewTtmRuzBVV3DhvqD8tWnvffcDnkYHvwvPw=; b=fm1hOP8aRYIx0tw6uDyKkScgbfGGkE55cJNlhqNDIdQycjgBgrYWvZWFM9CJ7N72LY yVU31+gB2sIZzQNtbc/eYQGCOzgqfFdYkUJa7Dnl7nCSStxeoVlaGULzay4TrRu00cIJ nv0nTiPTTDAAOtaKeLN1cT/0a2BUIqN6cOHp/v8Q2HgJlH959wLP1otbigvDl8NgTBEO fD/cpECvix7FBg7CuG7DDcJ6ZXgiahlnig4aKZ4DUaF5eRZgFY4lDPuOdm4cLB8/+rIl tGbvBZkeWHNLuseDvzqOfnctemuxEQTwWm5k0fqr7sug+tO1cxt97xOUc+Kuiuf4ERQB NBHQ== X-Gm-Message-State: ABy/qLZoIoaOCMcEtEmEymC2CIpJBOAD7iqCVRFVvXLH//RzYTQR2EjI sRIog2eInefb8xpN+9/Z2IRa97+qqRU= X-Received: by 2002:a05:6402:6cf:b0:521:8817:cc5d with SMTP id n15-20020a05640206cf00b005218817cc5dmr9900191edy.34.1690242096378; Mon, 24 Jul 2023 16:41:36 -0700 (PDT) Received: from localhost.localdomain (p200300ccf72b3d00184d1b1897c2b12b.dip0.t-ipconnect.de. [2003:cc:f72b:3d00:184d:1b18:97c2:b12b]) by smtp.gmail.com with ESMTPSA id f5-20020a056402068500b0051ded17b30bsm6776057edy.40.2023.07.24.16.41.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 24 Jul 2023 16:41:35 -0700 (PDT) From: Hendrik Leppkes To: ffmpeg-devel@ffmpeg.org Date: Tue, 25 Jul 2023 01:41:23 +0200 Message-Id: <20230724234123.1054-1-h.leppkes@gmail.com> X-Mailer: git-send-email 2.40.1.windows.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] flvdec: fix size desync when reading timestamp offsets X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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: Hendrik Leppkes Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: H+ztBpuCTYug The size offset was previously being accounted for in flv_set_video_codec for h264 and mpeg4, instead of being directly accounted for in the spot where its read, which desynced on HEVC streams. For clarity, move the size offset directly to the parsing, similar to how its done for all other header fields. --- libavformat/flvdec.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c index a6a94a4021..3fe21622f7 100644 --- a/libavformat/flvdec.c +++ b/libavformat/flvdec.c @@ -407,11 +407,9 @@ static int flv_set_video_codec(AVFormatContext *s, AVStream *vstream, case FLV_CODECID_H264: par->codec_id = AV_CODEC_ID_H264; vstreami->need_parsing = AVSTREAM_PARSE_HEADERS; - ret = 3; // not 4, reading packet type will consume one byte break; case FLV_CODECID_MPEG4: par->codec_id = AV_CODEC_ID_MPEG4; - ret = 3; break; default: avpriv_request_sample(s, "Video codec (%x)", flv_codecid); @@ -1321,6 +1319,7 @@ retry_duration: "invalid timestamps %"PRId64" %"PRId64"\n", dts, pts); dts = pts = AV_NOPTS_VALUE; } + size -= 3; } if (type == 0 && (!st->codecpar->extradata || st->codecpar->codec_id == AV_CODEC_ID_AAC || st->codecpar->codec_id == AV_CODEC_ID_H264 || st->codecpar->codec_id == AV_CODEC_ID_HEVC ||