Re: [FFmpeg-devel] [PATCH 2/2 v3] avcodec/vc1: fix decoding of old WMV3 format

2019-01-12 Thread Carl Eugen Hoyos
2019-01-12 16:14 GMT+01:00, Jerome Borsboom :
> 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 
> ---
> This revision removes a spurious whitespace that was left behind.

Patch applied.

Thank you, Carl Eugen
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH 2/2 v3] avcodec/vc1: fix decoding of old WMV3 format

2019-01-12 Thread Jerome Borsboom
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 
---
This revision removes a spurious whitespace that was left behind.

 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..e1758a3817 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;
-- 
2.13.6


___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel