mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lavc/sheervideo: Fix Y prediction for interlaced frames with transparency.
Based on 260de8a2
by Paul B Mahol.
Fixes ticket #6210.
This commit is contained in:
parent
d1bfd19ad1
commit
46082c2b3f
@ -2185,7 +2185,7 @@ static void decode_aybri(AVCodecContext *avctx, AVFrame *p, GetBitContext *gb)
|
||||
dst_v[x] = get_bits(gb, 8);
|
||||
}
|
||||
} else {
|
||||
int pred[4] = { 125, 125, -128, -128 };
|
||||
int pred[4] = { 125, s->alt ? 125 : -146, -128, -128 };
|
||||
|
||||
for (x = 0; x < avctx->width; x++) {
|
||||
int a, y, u, v;
|
||||
@ -2263,7 +2263,7 @@ static void decode_aybr(AVCodecContext *avctx, AVFrame *p, GetBitContext *gb)
|
||||
dst_v[x] = get_bits(gb, 8);
|
||||
}
|
||||
} else {
|
||||
int pred[4] = { 125, 125, -128, -128 };
|
||||
int pred[4] = { 125, s->alt ? 125 : -146, -128, -128 };
|
||||
|
||||
for (x = 0; x < avctx->width; x++) {
|
||||
int a, y, u, v;
|
||||
@ -2959,6 +2959,7 @@ static int decode_frame(AVCodecContext *avctx,
|
||||
}
|
||||
break;
|
||||
case MKTAG('A', 'Y', 'B', 'R'):
|
||||
s->alt = 1;
|
||||
case MKTAG('A', 'Y', 'b', 'R'):
|
||||
avctx->pix_fmt = AV_PIX_FMT_YUVA444P;
|
||||
s->decode_frame = decode_aybr;
|
||||
@ -2968,6 +2969,7 @@ static int decode_frame(AVCodecContext *avctx,
|
||||
}
|
||||
break;
|
||||
case MKTAG('A', 'y', 'B', 'R'):
|
||||
s->alt = 1;
|
||||
case MKTAG('A', 'y', 'b', 'R'):
|
||||
avctx->pix_fmt = AV_PIX_FMT_YUVA444P;
|
||||
s->decode_frame = decode_aybri;
|
||||
|
Loading…
Reference in New Issue
Block a user