mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-28 20:53:54 +02:00
avcodec/gif: fix issues with transparent crop
Resolves issues with some transparent gifs.
This commit is contained in:
parent
68bac50604
commit
0158dd14a3
@ -136,7 +136,7 @@ static void gif_crop_translucent(AVCodecContext *avctx,
|
||||
while (*y_start < y_end) {
|
||||
int is_trans = 1;
|
||||
for (int i = 0; i < w; i++) {
|
||||
if (buf[w * *y_start + i] != trans) {
|
||||
if (buf[linesize * *y_start + i] != trans) {
|
||||
is_trans = 0;
|
||||
break;
|
||||
}
|
||||
@ -148,10 +148,10 @@ static void gif_crop_translucent(AVCodecContext *avctx,
|
||||
}
|
||||
|
||||
// crop bottom
|
||||
while (y_end < h) {
|
||||
while (y_end > *y_start) {
|
||||
int is_trans = 1;
|
||||
for (int i = 0; i < w; i++) {
|
||||
if (buf[w * y_end + i] != trans) {
|
||||
if (buf[linesize * y_end + i] != trans) {
|
||||
is_trans = 0;
|
||||
break;
|
||||
}
|
||||
@ -165,7 +165,7 @@ static void gif_crop_translucent(AVCodecContext *avctx,
|
||||
while (*x_start < x_end) {
|
||||
int is_trans = 1;
|
||||
for (int i = *y_start; i < y_end; i++) {
|
||||
if (buf[w * i + *x_start] != trans) {
|
||||
if (buf[linesize * i + *x_start] != trans) {
|
||||
is_trans = 0;
|
||||
break;
|
||||
}
|
||||
@ -176,10 +176,10 @@ static void gif_crop_translucent(AVCodecContext *avctx,
|
||||
}
|
||||
|
||||
// crop right
|
||||
while (x_end < w) {
|
||||
while (x_end > *x_start) {
|
||||
int is_trans = 1;
|
||||
for (int i = *y_start; i < y_end; i++) {
|
||||
if (buf[w * i + x_end] != trans) {
|
||||
if (buf[linesize * i + x_end] != trans) {
|
||||
is_trans = 0;
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user