From patchwork Sat Aug 28 16:39:37 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Paul B Mahol X-Patchwork-Id: 29839 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp2482791iov; Sat, 28 Aug 2021 09:39:58 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyFNfPLHsUVj8VkemJOrNKozvwQdVlt3PV+qzYLDaWHKq7m576Jptw3FWwgBld+vhKjRucY X-Received: by 2002:a17:907:9602:: with SMTP id gb2mr16326057ejc.354.1630168798336; Sat, 28 Aug 2021 09:39:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1630168798; cv=none; d=google.com; s=arc-20160816; b=X/Q4biRmK2n4Nw7Yw7Ax/EZCGpB4tvFHheZo5UoB/kgBZUoYnmmtdk7Z1oHMl4e7Yw lD+9pI8ZB4B91NRn/DsT809Kgb9sfqfjHcyV39+Yasr9NP5lxrTYU0dQBhoy5IhAb8LF /c+0lhbeRoPqkBJklqMYMCjX9+gSDqtoTNKoqlm8JuedkJGq/mVDam7WHg1/Lbi/RQza kemz79Lw/rdNfKy57hFRV1ciFMGFt8GEOyAxA4DMaAy9lVo/V4MiT+PTqMLrB1lDO04F vExEn/4NdvaMdtHnj9EsncJ4jJYvFuzpY44NhG++0HCVpFuF5lFedds5UpLCLieUc3/2 khvg== 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: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; bh=dVPbIr2H0EfX6GqYPnko0r3a33vDu+0wTxKYWTf6Lv8=; b=sZ4wgqiC2IN88Yj59Q3s85n7vCrIhwWmBglH0Kl8sW4a/nbkYRKSTlmjgn6Yia2lO3 gYaLjlhtv5SZPIFh08pI1q3ZwB5cRgdwgHCWUsjGEU5AjWhw5FsFpeJECcFf9RlfW9SA vfn5sCBtsXazciwOhOCEQjRTR4pdCZi7qeTqXRvagCfSDwk75v/ZZ+hCd6pPgn935wvl CuHIV+ZfW64yEjd5l6AQY8A+vLoHurrDXsbF0rpKJaoe8tbWH77MkVdEChlonkQXPrQE S/EZIrISnFACeZF4CKeK52+adawiMUr1xFVweBAJAfrluXiOGbXRmZ/cWwkLrvsO6vnU swUA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=mnwuFOnX; 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 t23si9881064edc.74.2021.08.28.09.39.57; Sat, 28 Aug 2021 09:39:58 -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=20161025 header.b=mnwuFOnX; 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 74A6168A199; Sat, 28 Aug 2021 19:39:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f46.google.com (mail-ed1-f46.google.com [209.85.208.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4243568057E for ; Sat, 28 Aug 2021 19:39:47 +0300 (EEST) Received: by mail-ed1-f46.google.com with SMTP id d6so14676798edt.7 for ; Sat, 28 Aug 2021 09:39:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id; bh=ezFuU4FwT/cjGs/tl4BJazPoWVxJAwDpgC870z9MHQs=; b=mnwuFOnXjGtkbzgqDRiKa+zh/u18Qc7DAZgbRbMtisRTQQ+GFEZuI5dbWqgbwhrZ2u 80pONCHulBT3mulaIz4xXG/MmXn8m4oy7MLyZ5tzF7GjDMvOkLCnJad3HlIdtmRggpCG D4NbP1Go8rqXBtQRCzkW2HjjkbyHi/gx27KywMMlf9GyhOL4NxPjA9UXVPhf8alj4LwD WJvabi55TbfHJ7ZjlUKwBLU1vrOzb50Hc+Z/nsH1dVp/iZJKqVUKjaXF2xYNqOLTegZv 5tUCT+6hih4AyKEQMoYZrVSPMLGuq5BzyKiJuxgteGdMUdsVlbH+ll1tI0u9PcwFDpdp seNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=ezFuU4FwT/cjGs/tl4BJazPoWVxJAwDpgC870z9MHQs=; b=Y06Vf3UbP1iiox2Q/C0fLGZxJ/kHXatta2sS+vlRw5Csq6zYEDGmcZVzeqLjMAFSHU Y4xEwqemVCeN9DNfYSy4wUTjFQze2e9iOZOuw0Z6t2o3Fr/iRYOfLrqYosxwdOKxSBwe qWmXDxV0YZsAcaL6/OOGkmsl8leVbUfNb2LTy6TdwFVbftAI7OK65o+1ofD0WlwOfMsP lUVkscV/53JKb0w9JhPIYVRYtqloqBzoWgHPf2V4W2dzoTRq0fpASX8VnyfJnzvsOL7T C/lyWIOI1BeJxPlwSbzqLFNTjUs8jR+9tNlxedtaCST8CLt6i0E389lNkoITOYHuIFyi +slg== X-Gm-Message-State: AOAM531VnEGPzYoIACmfe1/6DY/n8a0XWHnwm4fMx33bayNuviJ5OR/T pmpG9yEDsOklRNmE5uHVGa5DI4HPha4= X-Received: by 2002:a05:6402:1cbc:: with SMTP id cz28mr15682222edb.370.1630168786691; Sat, 28 Aug 2021 09:39:46 -0700 (PDT) Received: from localhost.localdomain ([212.15.178.17]) by smtp.gmail.com with ESMTPSA id ck4sm611578edb.67.2021.08.28.09.39.45 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Aug 2021 09:39:46 -0700 (PDT) From: Paul B Mahol To: ffmpeg-devel@ffmpeg.org Date: Sat, 28 Aug 2021 18:39:37 +0200 Message-Id: <20210828163938.25583-1-onemda@gmail.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/mlpdec: reset lossless crc checking when stream ends 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: gk2tlf5zz2XQ Fixes invalid reports of bad lossless crc. While here make end of stream message into debug level as it is not really important to user. Also wait for new major sync frame as invalid concating of files may produce invalid files, which cause various errors. Signed-off-by: Paul B Mahol --- libavcodec/mlpdec.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/libavcodec/mlpdec.c b/libavcodec/mlpdec.c index e4992550ee..f4c7c6c320 100644 --- a/libavcodec/mlpdec.c +++ b/libavcodec/mlpdec.c @@ -53,6 +53,8 @@ typedef struct SubStream { /// Set if a valid restart header has been read. Otherwise the substream cannot be decoded. uint8_t restart_seen; + /// Set if end of stream is encountered + uint8_t end_of_stream; //@{ /** restart header data */ @@ -1286,8 +1288,8 @@ static int read_access_unit(AVCodecContext *avctx, void* data, else if (m->avctx->codec_id == AV_CODEC_ID_MLP && shorten_by != 0xD234) return AVERROR_INVALIDDATA; - if (substr == m->max_decoded_substream) - av_log(m->avctx, AV_LOG_INFO, "End of stream indicated.\n"); + av_log(m->avctx, AV_LOG_DEBUG, "End of stream indicated.\n"); + s->end_of_stream = 1; } if (substream_parity_present[substr]) { @@ -1319,6 +1321,16 @@ next_substr: if ((ret = output_data(m, m->max_decoded_substream, data, got_frame_ptr)) < 0) return ret; + for (substr = 0; substr <= m->max_decoded_substream; substr++){ + SubStream *s = &m->substream[substr]; + + if (s->end_of_stream) { + s->lossless_check_data = 0xffffffff; + s->end_of_stream = 0; + m->params_valid = 0; + } + } + return length; substream_length_mismatch: