From patchwork Wed Jul 18 10:28:03 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Niedermayer X-Patchwork-Id: 9749 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:104:0:0:0:0:0 with SMTP id c4-v6csp358850jad; Wed, 18 Jul 2018 03:28:14 -0700 (PDT) X-Google-Smtp-Source: AAOMgpddVnNEdn0lowGfDHKifgUqREI0btODPJt0moQxcEnLAcwbB2APxnNdHZAZ4O3OBvdLqDt5 X-Received: by 2002:a1c:c14:: with SMTP id 20-v6mr1298209wmm.117.1531909694206; Wed, 18 Jul 2018 03:28:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1531909694; cv=none; d=google.com; s=arc-20160816; b=kKD8PajUAqfZI+qs7swatVmaRC6BFgiVkvNdIPSVVzq+SdtJuXGkqZZvOKqQGztZjD 4MLqeEHHwoY7jJuTWeMbYx9TDezzrScKC2gwNSsC4Xgxiv/xiD57FfUCh54BY2umc+iR QCT70u3AT9xx5dOpvnatSVeJaXwqX36ZRdHrDq2DINlhNQr4VD0O7QY8LmdfttK+tBtd oTy9TR8gHWlykpWk/Ol0ms+khEcGTvPRhXS0ICtYRzmI3n2hWICZD5BdqImvgrlVEhtj 0XI8hK9nmAXE7hz3OQy9Gr3rsigVd8/6DxPUEfwAY0h6dsFx7Lt7OoTP3+rrN0MwD5ZL csFA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject:user-agent :in-reply-to:mime-version:references:message-id:to:from:date :delivered-to:arc-authentication-results; bh=9dz6Yz0p7IwGwJCShxXpGXGc9ETvgCJekg2LGs+whVk=; b=zOWkazMZT+OmGz2FjkwpMUfQc8EyYZHTdTWQJFTU1g6FPCM1zdzL+uLOUZmou9qFdT 9vnyJY4ildX5y/sMriEOSUf70rJfTZackf0lyPlmK4BhoBpuVaV+LkMNarHSQ4Uvilwg cCB8EOWWObBfWUHfhNVt/0EnbJ4y8hw49mybUqL52sDQNxGv8r2P58VPTBqrIQeHse7e srzhFzmx5TCRmpZutLL2tzYl1cwwnBClnLKOn/TSgBmjODWAOOWfLG62R4vTz2+cwgPj uZUjBg54AX1B+1B8h51f068Ypl5m4tGuYtkRtUfv3+I8QFSclYncXX/YXMtTrm8Sim/E p02w== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id u10-v6si2656044wrc.185.2018.07.18.03.28.13; Wed, 18 Jul 2018 03:28:14 -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; 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 Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 56160689B6E; Wed, 18 Jul 2018 13:28:00 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from relay6-d.mail.gandi.net (relay6-d.mail.gandi.net [217.70.183.198]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 31251687EBE for ; Wed, 18 Jul 2018 13:27:54 +0300 (EEST) X-Originating-IP: 213.47.41.20 Received: from localhost (213-47-41-20.cable.dynamic.surfer.at [213.47.41.20]) (Authenticated sender: michael@niedermayer.cc) by relay6-d.mail.gandi.net (Postfix) with ESMTPSA id 8B95BC000F for ; Wed, 18 Jul 2018 10:28:04 +0000 (UTC) Date: Wed, 18 Jul 2018 12:28:03 +0200 From: Michael Niedermayer To: FFmpeg development discussions and patches Message-ID: <20180718102803.GC4859@michaelspb> References: <20180717193919.99925-1-vittorio.giovara@gmail.com> MIME-Version: 1.0 In-Reply-To: <20180717193919.99925-1-vittorio.giovara@gmail.com> User-Agent: Mutt/1.5.24 (2015-08-30) X-Spam-Level: Subject: Re: [FFmpeg-devel] [PATCH 1/2] svq1dec: Ensure that pixel format constraints are respected 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" On Tue, Jul 17, 2018 at 09:39:18PM +0200, Vittorio Giovara wrote: > YUV410P requires that sizes are divisible by 4. There seem to be > some encoders that ignore that and encode a different value in > the bitstream itself. Handle that case by exporting the relative > cropping information. > --- > Alternatively it is possible to always enforce mod4 sizes and call > it a day. > Vittorio > > libavcodec/svq1dec.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/libavcodec/svq1dec.c b/libavcodec/svq1dec.c > index d3e60c3a4a..55047b43ce 100644 > --- a/libavcodec/svq1dec.c > +++ b/libavcodec/svq1dec.c > @@ -663,7 +663,8 @@ static int svq1_decode_frame(AVCodecContext *avctx, void *data, > return result; > } > > - result = ff_set_dimensions(avctx, s->width, s->height); > + /* sizes must be always disivible by 4 due to pixel format constraints */ > + result = ff_set_dimensions(avctx, FFALIGN(s->width, 4), FFALIGN(s->height, 4)); > if (result < 0) > return result; > > @@ -755,6 +756,11 @@ static int svq1_decode_frame(AVCodecContext *avctx, void *data, > *got_frame = 1; > result = buf_size; > > + cur->crop_left = 0; > + cur->crop_top = 0; > + cur->crop_right = FFALIGN(s->width, 4) - s->width; > + cur->crop_bottom = FFALIGN(s->height, 4) - s->height; > + > err: > av_free(pmv); > return result; > @@ -843,6 +849,7 @@ AVCodec ff_svq1_decoder = { > .close = svq1_decode_end, > .decode = svq1_decode_frame, > .capabilities = AV_CODEC_CAP_DR1, > + .caps_internal = FF_CODEC_CAP_EXPORTS_CROPPING, > .flush = svq1_flush, > .pix_fmts = (const enum AVPixelFormat[]) { AV_PIX_FMT_YUV410P, > AV_PIX_FMT_NONE }, I dont think this is neccessary. but if it is fixing some testcase iam interrested in that testcase. Also this seems to break make fate TEST svq1-headerswap Test svq1-headerswap failed. Look at tests/data/fate/svq1-headerswap.err for details. make: *** [fate-svq1-headerswap] Error 69 [...] --- ./tests/ref/fate/svq1-headerswap 2018-07-16 18:42:40.498707547 +0200 +++ tests/data/fate/svq1-headerswap 2018-07-18 12:24:50.225870370 +0200 @@ -4,6 +4,3 @@ #dimensions 0: 293x178 #sar 0: 0/1 0, 0, 0, 1, 58814, 0x5caad04b -0, 1, 1, 1, 58814, 0x98d8ceb8 -0, 2, 2, 1, 58814, 0x8925cdb0 -0, 3, 3, 1, 58814, 0x6ffc02c3