summaryrefslogtreecommitdiff
path: root/libavcodec/gif.c
diff options
context:
space:
mode:
authorJacob Graff <jacob@giphy.com>2019-05-09 16:45:56 -0400
committerPaul B Mahol <onemda@gmail.com>2019-05-11 16:42:13 +0200
commit0158dd14a35ff88c4837d4b463e1f393040884c9 (patch)
treeb937ebaf150f1f77ec2cf2191428f89d64065e2c /libavcodec/gif.c
parent68bac50604a52760ccb9d9dd43f100436fd66b71 (diff)
downloadffmpeg-0158dd14a35ff88c4837d4b463e1f393040884c9.tar.gz
avcodec/gif: fix issues with transparent crop
Resolves issues with some transparent gifs.
Diffstat (limited to 'libavcodec/gif.c')
-rw-r--r--libavcodec/gif.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/libavcodec/gif.c b/libavcodec/gif.c
index 9f2f30d863..8c3bfdcc46 100644
--- a/libavcodec/gif.c
+++ b/libavcodec/gif.c
@@ -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;
}