From patchwork Fri Jan 11 17:15:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Borsboom X-Patchwork-Id: 11711 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 E111244ED7A for ; Fri, 11 Jan 2019 19:15:52 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0D28968A73C; Fri, 11 Jan 2019 19:15:41 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from kyoto.xs4all.nl (kyoto.xs4all.nl [83.161.153.34]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BDE8668A607 for ; Fri, 11 Jan 2019 19:15:34 +0200 (EET) Received: from [IPv6:2001:980:9507:0:8e70:5aff:fec6:83fc] ([IPv6:2001:980:9507:0:8e70:5aff:fec6:83fc]) (authenticated bits=0) by kyoto.xs4all.nl (8.14.7/8.14.7) with ESMTP id x0BHFjTq025943 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 11 Jan 2019 18:15:46 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=carpalis.nl; s=default; t=1547226946; bh=TmKGmHtQJ1uFcHIDAx0K6F9dhRsv43E1LPrB6wCwVqw=; h=To:References:Subject:From:Date:In-Reply-To; b=EIJVJj/q1ZVFCGxljVBlcfBdT0JN7t5Du7B6SkRGbmjtgcoqHUlk/tZsAe1vVwP0r GMyUBduJK2X7ppKnfrjX/+EnhaDdr9npFKNZE+1RtORDh1NHC6HYHTPnU2KV8PzDXX JnoLW+bAdmBc8AspXEgC1aC6aCtcUs+fK8j1J4yIt6t/Qy6bqLKwuiZe+pc4CHABXJ WpipaJs+WY3ip5I7pEsgIb96o50nu01g4r2/oFW3vm8oKIz24foOJ9N2fPq+8J1kss xfUmqZzqtSHwgbhzt8p4sNFQXV+K1EkMFiFe69aTrXT+ml0zzbZ3UH7zBUrhc393IH atuVzNZke8QSQ== To: ffmpeg-devel@ffmpeg.org References: From: Jerome Borsboom Message-ID: Date: Fri, 11 Jan 2019 18:15:45 +0100 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: Content-Language: nl Subject: Re: [FFmpeg-devel] [PATCH 2/2 v2] avcodec/vc1: fix decoding of old WMV3 format 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" The position of the second MV predicitor candidate is slightly different for the old WMV3 format indicated by RES_RTM_FLAG. This patch fixes decoding of niceday.wmv on the samples server. Fixes: #6641 Signed-off-by: Jerome Borsboom --- libavcodec/vc1.c | 5 ----- libavcodec/vc1_pred.c | 5 ++++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index 3581d87b57..e102b931d8 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -379,11 +379,6 @@ int ff_vc1_decode_sequence_header(AVCodecContext *avctx, VC1Context *v, GetBitCo } else { v->res_rtm_flag = get_bits1(gb); //reserved } - if (!v->res_rtm_flag) { - av_log(avctx, AV_LOG_ERROR, - "Old WMV3 version detected, some frames may be decoded incorrectly\n"); - //return -1; - } //TODO: figure out what they mean (always 0x402F) if (!v->res_fasttx) skip_bits(gb, 16); diff --git a/libavcodec/vc1_pred.c b/libavcodec/vc1_pred.c index 0b22d9916c..cff87907ec 100644 --- a/libavcodec/vc1_pred.c +++ b/libavcodec/vc1_pred.c @@ -275,7 +275,10 @@ void ff_vc1_pred_mv(VC1Context *v, int n, int dmv_x, int dmv_y, //in 4-MV mode different blocks have different B predictor position switch (n) { case 0: - off = (s->mb_x > 0) ? -1 : 1; + if (v->res_rtm_flag) + off = s->mb_x ? -1 : 1; + else + off = s->mb_x ? -1 : 2 * s->mb_width - wrap - 1; break; case 1: off = (s->mb_x == (s->mb_width - 1)) ? -1 : 1;