You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-04 22:03:09 +02:00
avfilter/vf_curves: don't add offsets to NULL pointers
Signed-off-by: James Almer <jamrial@gmail.com>
This commit is contained in:
@ -813,11 +813,11 @@ static int filter_slice_planar(AVFilterContext *ctx, void *arg, int jobnr, int n
|
|||||||
uint16_t *dstrp = ( uint16_t *)(out->data[r] + y * out->linesize[r]);
|
uint16_t *dstrp = ( uint16_t *)(out->data[r] + y * out->linesize[r]);
|
||||||
uint16_t *dstgp = ( uint16_t *)(out->data[g] + y * out->linesize[g]);
|
uint16_t *dstgp = ( uint16_t *)(out->data[g] + y * out->linesize[g]);
|
||||||
uint16_t *dstbp = ( uint16_t *)(out->data[b] + y * out->linesize[b]);
|
uint16_t *dstbp = ( uint16_t *)(out->data[b] + y * out->linesize[b]);
|
||||||
uint16_t *dstap = ( uint16_t *)(out->data[a] + y * out->linesize[a]);
|
uint16_t *dstap = ( uint16_t *)(step == 4 ? out->data[a] + y * out->linesize[a] : NULL);
|
||||||
const uint16_t *srcrp = (const uint16_t *)(in ->data[r] + y * in->linesize[r]);
|
const uint16_t *srcrp = (const uint16_t *)(in ->data[r] + y * in->linesize[r]);
|
||||||
const uint16_t *srcgp = (const uint16_t *)(in ->data[g] + y * in->linesize[g]);
|
const uint16_t *srcgp = (const uint16_t *)(in ->data[g] + y * in->linesize[g]);
|
||||||
const uint16_t *srcbp = (const uint16_t *)(in ->data[b] + y * in->linesize[b]);
|
const uint16_t *srcbp = (const uint16_t *)(in ->data[b] + y * in->linesize[b]);
|
||||||
const uint16_t *srcap = (const uint16_t *)(in ->data[a] + y * in->linesize[a]);
|
const uint16_t *srcap = (const uint16_t *)(step == 4 ? in ->data[a] + y * in->linesize[a] : NULL);
|
||||||
|
|
||||||
for (x = 0; x < in->width; x++) {
|
for (x = 0; x < in->width; x++) {
|
||||||
dstrp[x] = curves->graph[R][srcrp[x]];
|
dstrp[x] = curves->graph[R][srcrp[x]];
|
||||||
@ -831,11 +831,13 @@ static int filter_slice_planar(AVFilterContext *ctx, void *arg, int jobnr, int n
|
|||||||
uint8_t *dstr = out->data[r] + slice_start * out->linesize[r];
|
uint8_t *dstr = out->data[r] + slice_start * out->linesize[r];
|
||||||
uint8_t *dstg = out->data[g] + slice_start * out->linesize[g];
|
uint8_t *dstg = out->data[g] + slice_start * out->linesize[g];
|
||||||
uint8_t *dstb = out->data[b] + slice_start * out->linesize[b];
|
uint8_t *dstb = out->data[b] + slice_start * out->linesize[b];
|
||||||
uint8_t *dsta = out->data[a] + slice_start * out->linesize[a];
|
uint8_t *dsta = step == 4 ? out->data[a]
|
||||||
|
+ slice_start * out->linesize[a] : NULL;
|
||||||
const uint8_t *srcr = in->data[r] + slice_start * in->linesize[r];
|
const uint8_t *srcr = in->data[r] + slice_start * in->linesize[r];
|
||||||
const uint8_t *srcg = in->data[g] + slice_start * in->linesize[g];
|
const uint8_t *srcg = in->data[g] + slice_start * in->linesize[g];
|
||||||
const uint8_t *srcb = in->data[b] + slice_start * in->linesize[b];
|
const uint8_t *srcb = in->data[b] + slice_start * in->linesize[b];
|
||||||
const uint8_t *srca = in->data[a] + slice_start * in->linesize[a];
|
const uint8_t *srca = step == 4 ? in->data[a]
|
||||||
|
+ slice_start * in->linesize[a] : NULL;
|
||||||
|
|
||||||
for (y = slice_start; y < slice_end; y++) {
|
for (y = slice_start; y < slice_end; y++) {
|
||||||
for (x = 0; x < in->width; x++) {
|
for (x = 0; x < in->width; x++) {
|
||||||
@ -848,13 +850,15 @@ static int filter_slice_planar(AVFilterContext *ctx, void *arg, int jobnr, int n
|
|||||||
dstr += out->linesize[r];
|
dstr += out->linesize[r];
|
||||||
dstg += out->linesize[g];
|
dstg += out->linesize[g];
|
||||||
dstb += out->linesize[b];
|
dstb += out->linesize[b];
|
||||||
dsta += out->linesize[a];
|
|
||||||
srcr += in ->linesize[r];
|
srcr += in ->linesize[r];
|
||||||
srcg += in ->linesize[g];
|
srcg += in ->linesize[g];
|
||||||
srcb += in ->linesize[b];
|
srcb += in ->linesize[b];
|
||||||
|
if (step == 4) {
|
||||||
|
dsta += out->linesize[a];
|
||||||
srca += in ->linesize[a];
|
srca += in ->linesize[a];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user