From patchwork Thu Feb 11 21:48:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Llu=C3=ADs_Batlle_i_Rossell?= X-Patchwork-Id: 25586 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id 785D844ADEB for ; Thu, 11 Feb 2021 23:49:21 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5DFF568ABB5; Thu, 11 Feb 2021 23:49:21 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from o139.p8.mailjet.com (o139.p8.mailjet.com [87.253.233.139]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6A3B768AB81 for ; Thu, 11 Feb 2021 23:49:19 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; q=dns/txt; d=viric.name; i=viric@viric.name; s=mailjet; h=message-id:mime-version:from:to:subject:date:list-unsubscribe-post:list-unsubscribe: cc:feedback-id:in-reply-to:references:x-csa-complaints:x-mj-mid:x-mj-smtpguid: x-report-abuse-to:content-type:content-transfer-encoding; bh=c9G5MkZbPdIr5qS1XKsFPz6Z2fUv8UvmnwuzS+aEWpg=; b=cjpMsfPw2uY6ac11lQ32nWRhFfEYwfMppsD8yEqLsTwoppPpEkTXCKzpH nkDl9mV0DdPHHJyRNqPj87/hs2yN9iZLkn7yFaSzaTYWbpFFuKIF0Yp64/tg VpM1ES2dDHgew6WNhkE0U+rt57ggMZJ9dxLGeXnrRimqrrjUo1nyBY= Message-Id: <2abad3ef.AUoAACIcJvIAAAAAAAAAALF60VUAARpcY_sAAAAAAAeRJgBgJaZe@mailjet.com> MIME-Version: 1.0 From: =?utf-8?q?Llu=C3=ADs_Batlle_i_Rossel?= To: ffmpeg-devel@ffmpeg.org Date: Thu, 11 Feb 2021 22:48:20 +0100 List-Unsubscribe-Post: List-Unsubscribe=One-Click Feedback-Id: 42.495910.472369:MJ In-Reply-To: <20210211214819.18855-1-viric@viric.name> References: <20210211214819.18855-1-viric@viric.name> X-CSA-Complaints: csa-complaints@eco.de X-MJ-Mid: AUoAACIcJvIAAAAAAAAAALF60VUAARpcY_sAAAAAAAeRJgBgJaZeJB-2ErJYSYaedcKt0MuRoAAHNTE X-MJ-SMTPGUID: 241fb612-b258-4986-9e75-c2add0cb91a0 X-REPORT-ABUSE-TO: Message sent by Mailjet please report to abuse@mailjet.com with a copy of the message Subject: [FFmpeg-devel] [PATCH 2/3] libavcodec/mmaldec: continue after receiving EOS without having sent one 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: =?utf-8?q?Llu=C3=ADs_Batlle_i_Rossell?= Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: LluĂ­s Batlle i Rossell From: Cosmin Gorgovan The previous logic in mmaldec was causing the MMAL MJPEG decoder to stop if it received an invalid frame - which happened to be the first frame received from a UVC camera via V4L2 in my application --- libavcodec/mmaldec.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/libavcodec/mmaldec.c b/libavcodec/mmaldec.c index df14b9fc95..4dfaacbb41 100644 --- a/libavcodec/mmaldec.c +++ b/libavcodec/mmaldec.c @@ -711,9 +711,13 @@ static int ffmmal_read_frame(AVCodecContext *avctx, AVFrame *frame, int *got_fra goto done; } - ctx->eos_received |= !!(buffer->flags & MMAL_BUFFER_HEADER_FLAG_EOS); - if (ctx->eos_received) + int eos = !!(buffer->flags & MMAL_BUFFER_HEADER_FLAG_EOS); + if (eos) { + if (ctx->eos_sent) { + ctx->eos_received = 1; + } goto done; + } if (buffer->cmd == MMAL_EVENT_FORMAT_CHANGED) { MMAL_COMPONENT_T *decoder = ctx->decoder;