From patchwork Mon Jan 24 14:46:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 33779 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:e71a:0:0:0:0:0 with SMTP id b26csp387931ioh; Mon, 24 Jan 2022 06:49:29 -0800 (PST) X-Google-Smtp-Source: ABdhPJxLgVdHZBpWhXkELZE1gK2V4B1j0N+TwSjJhjz1Lpi3Wdr1WA4EsOVH4m5tI9Xy1dtlEBbF X-Received: by 2002:a05:6402:d0d:: with SMTP id eb13mr16220339edb.349.1643035769199; Mon, 24 Jan 2022 06:49:29 -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 ji1si8602629ejc.921.2022.01.24.06.49.28; Mon, 24 Jan 2022 06:49:29 -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=@outlook.com header.s=selector1 header.b=Olmn9xXw; arc=fail (body hash mismatch); 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=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6EAF968B11B; Mon, 24 Jan 2022 16:47:55 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-oln040092070041.outbound.protection.outlook.com [40.92.70.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C6E8D68B122 for ; Mon, 24 Jan 2022 16:47:53 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WFWglkUxF03IxroYxnyi62i25PQ47KYKnQKEFYs1fGJpEQIomxsBIkfinZHAEEqGyFhuFxbybHnu6le2eLJ0afqepBdP9dI0PtcWk0G7S1ygSmsIFQYjI8cCihH4OYTTxtq1X4LW1LuwmouM1FrbqpgadEzfMIdfjigFfIRGDceF9GCkejsMYzW66milJhmOpz8yR6i5s20uXVxgfdMwvHTK/X1rGY66ilhBQ3xLIgtJ9AMNcICWMaH1KOJ5VlujXLA/nMnHCNyNoLDadVMXdIdk4mu3jAfqX3IRkUeS6K0QWRqaMcfquV4YAld/x4YYnHcxYxihyqgEV2iNS+eH8g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DgQU97rjtYXtCJaSfuxaWYnq16x7j9bWCA9AVbAFME8=; b=ChvdUljYDv4JR8+i86k6bXIE6E/x5GB8ItFg7vs0oJhM8l7BvK4dFfwwogPvBcSTu0F6ofyAFuySglZQgMPOT4Iu8iDZmCyyGeE/hQPaJWw0yUrmQOfXf7QiojxU94I4TliY5h3mqjxM24iyOofpsOp7wPT64S589YhFG7ZIiRTox8aUXe6n01rt/ok9Ob4b5PrCeio7/YuHWvKbD7cVcDoOyfLsIQlY+mzX/LJMSGLucmbQfWpkm1GP9D4X59MSkMjI2igwKDZyRGM6eA++XxPvW1Mgg0CZX99GOjgZzXHEun/L0RxHrWckBt026GYumkgFN4Da/JflSg8bu3nSyA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DgQU97rjtYXtCJaSfuxaWYnq16x7j9bWCA9AVbAFME8=; b=Olmn9xXw2kzjs0e9idfxhJsxeA1AAStTTmW0mWy0JDOIJkOHfAhAUj0ZwcIaMBUB+9DjUo4otfCA/ZEENY9uyjrqsDf9URIjJSw1gbstB2/mB2ehyf966yceLnfwEPIboxgGXzT/dJ6dKtOVpzaxlRK8ZPiAn0Pa5cq3vXwEH7XEJEF/hzVqFtB09rvfxrbN9uSbnh+mngKyCE6Zz1Y5U4I+s4UZWngjnFTZyYiy3Hq3Wsbm8d94KG1vHo3f/s4tOs4Q8lJgZ01cv0gb5lNJORS1ZsGxaEZsPMn7cWsOJC4u7096Roo2XIgNDyNpGI7osoJMyUObaMPH3ceVlJ7XwA== Received: from AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) by AM6PR03MB5236.eurprd03.prod.outlook.com (2603:10a6:20b:c4::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.17; Mon, 24 Jan 2022 14:47:52 +0000 Received: from AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22]) by AM7PR03MB6660.eurprd03.prod.outlook.com ([fe80::ac56:2ff4:d304:ab22%4]) with mapi id 15.20.4909.017; Mon, 24 Jan 2022 14:47:52 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 24 Jan 2022 15:46:02 +0100 Message-ID: X-Mailer: git-send-email 2.32.0 In-Reply-To: References: X-TMN: [gFJUcN2x43LRrQheonq/QpwuDvHofw4c] X-ClientProxiedBy: AM5PR0201CA0016.eurprd02.prod.outlook.com (2603:10a6:203:3d::26) To AM7PR03MB6660.eurprd03.prod.outlook.com (2603:10a6:20b:1c1::22) X-Microsoft-Original-Message-ID: <20220124144616.559446-17-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: a1646a8e-fbb9-40b5-2070-08d9df487f9f X-MS-TrafficTypeDiagnostic: AM6PR03MB5236:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 6izUFcpKG3cNuxCngsppXSgCoPkLDqElgsW1IT6T4lSNp95MY9zjeKGgHZkJXkt04H/EccIBZ8atFh+TKWezmQw1Iqwy/dhbEF02r7/VYx+D90pSn4WXOSZE8lfuw/bSYpgoVKmSnZ+Zm667XzNbE7yUYsVO08IKL79smMGgHZllPxBwtOy81t/NFU+uTRyiN4AmClJld8AiwxRY+bBx5yHzTRkQ06nS/Wxx/VnSSeD+w4+vdVLDYTwn+CO0NncvQVQw3d9T3CLeQ/aCamap+N27SeM7l53nqi8i5ugfZuSiTA3HnTZt9rrcWSKynmUur6GGhXeh3PCIUgixG7JlYmMizjeotOQkEIQoSgfeMY52x5dFw465Rzm/LSr82xJZN/vEZ4ucaPqUZ4RgvYie9P3zSbr7RZtO2cqABBpUBQbhiOIK0Q69YAR2HEm/l4uRbseuo191SgI9mICKQgFrp4DjY9eKOdJFm1yLNevZ4W5rbFwdiPTb1pfexq5HV9Ww3XW8G0bJpRAyUbVmeC5zd8aABT/yC/GV50e1C7sB3LAyvZ87pa1IG1Q9i4XOcecTy66Axo6Q9ZIVYnwC53dapg== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: Lx0EWeytmGZoxvH3tWt3jqfTWKQHlgfGgUaAJizZDSP34OU1eNjqtGxRIorL787P6/mi5O62mqyJpTe9EmTrwYuJQ4dF07g/zTe2VksDAKrLMuBuprZhrjvMbYGfa7sql23JJjeN4Oi5+Gmk6K6BhlfE+WoKTpdDQTG7M6lTcDCgQMnSH8OSpOSnOM7QKEPGA5+Nc2y/CDUbbmJHVvGKxeoTyidZMUSF2na0U34+dlYgo1htpe0IrS1TW4/I9UZvt5rblw+fqC127iM/OFarWpved5YW/clQND+w1zgl5zs6Mj8Fg+Cn+lEiBw78B87Qge01an3xiMtumOmEcHVr26K0dJopHTRKUWNRcCEw16Uui3UUUIuOH0FLQXKkvtVWzc84iUCeBrCBanxvTMsMNhMH6SdXAkOGCttypWJciQ6pmk6BebU4OPb3h9gL2w1xivJJnJDeH/ErMvCkglwI2lSLFXobyOW7SQzemJALVIsvI9hJ+F7dJ7cryh7fR9WQmawpVjd6+s1rzk+IGOaOXQKld5v+nUAceYwYvilKPxRvbLytTwAoM1o1hvgWlZgJWtoG+W7oDPR53w9rtJfIOyrZzoIOX5KxZrYlQilIaf+SG5qludg46QBLG9MSKAhm7Ivx6j6aUDi3aifUjkx6T1XQ5O5Uw1+DpfDXNHfVipcQlivk3Sg7HSa2HTMoF5tY2uus6R/b0ST7J+hEQmQdM9VZzAhAtAEgJl0DcwVrJiZbZi3znhsarpbEZZqSE6MG8F8yuc6uasV7n28KSeRl9s63sZu96OtDI0oZduU18c0SZbsg+9Es3JI9NBeEag84385ENcYBE3NfU08Ay8vPCBBX0mBDBAzAea2uusYN4dDd9GdPO37aS1Bc+HlAG5t1gD62DR5viJwpUWkMEli3PdTICDqCnT4EERXRbZDdfCAi5NTIU6HQ2YR0+5GR96cXi+/GfOdANy2lF91+WYxbPg== X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: a1646a8e-fbb9-40b5-2070-08d9df487f9f X-MS-Exchange-CrossTenant-AuthSource: AM7PR03MB6660.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Jan 2022 14:47:52.5798 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR03MB5236 Subject: [FFmpeg-devel] [PATCH v2 17/31] lavf/dvenc: return an error on audio/video desync 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: Anton Khirnov Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: l7QKRNQ62TPa From: Anton Khirnov --- libavformat/dvenc.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libavformat/dvenc.c b/libavformat/dvenc.c index b76539b59f..03b63cff89 100644 --- a/libavformat/dvenc.c +++ b/libavformat/dvenc.c @@ -255,8 +255,10 @@ static int dv_assemble_frame(AVFormatContext *s, switch (st->codecpar->codec_type) { case AVMEDIA_TYPE_VIDEO: /* FIXME: we have to have more sensible approach than this one */ - if (c->has_video) + if (c->has_video) { av_log(s, AV_LOG_ERROR, "Can't process DV frame #%d. Insufficient audio data or severe sync problem.\n", c->frames); + return AVERROR(EINVAL); + } if (data_size != c->sys->frame_size) { av_log(s, AV_LOG_ERROR, "Unexpected frame size, %d != %d\n", data_size, c->sys->frame_size); @@ -270,8 +272,10 @@ static int dv_assemble_frame(AVFormatContext *s, for (i = 0; i < c->n_ast && st != c->ast[i]; i++); /* FIXME: we have to have more sensible approach than this one */ - if (av_fifo_size(c->audio_data[i]) + data_size >= 100*MAX_AUDIO_FRAME_SIZE) + if (av_fifo_size(c->audio_data[i]) + data_size >= 100*MAX_AUDIO_FRAME_SIZE) { av_log(s, AV_LOG_ERROR, "Can't process DV frame #%d. Insufficient video data or severe sync problem.\n", c->frames); + return AVERROR(EINVAL); + } av_fifo_generic_write(c->audio_data[i], data, data_size, NULL); reqasize = 4 * dv_audio_frame_size(c->sys, c->frames, st->codecpar->sample_rate);