History

avfilter/vf_curves: don't add offsets to NULL pointers

James Almer committed 1 year ago

Commit 722a2171 parent 11032d81 file · +10 −6Browse files

Showing the changes to libavfilter (1 of 1 file). Show all

Unified · Split

libavfilter/vf_curves.c+10−6
@@ -813,11 +813,11 @@ static int filter_slice_planar(AVFilterContext *ctx, void *arg, int jobnr, int n · 812 unmodified lines
813 uint16_t *dstrp = ( uint16_t *)(out->data[r] + y * out->linesize[r]);813 uint16_t *dstrp = ( uint16_t *)(out->data[r] + y * out->linesize[r]);
814 uint16_t *dstgp = ( uint16_t *)(out->data[g] + y * out->linesize[g]);814 uint16_t *dstgp = ( uint16_t *)(out->data[g] + y * out->linesize[g]);
815 uint16_t *dstbp = ( uint16_t *)(out->data[b] + y * out->linesize[b]);815 uint16_t *dstbp = ( uint16_t *)(out->data[b] + y * out->linesize[b]);
816 uint16_t *dstap = ( uint16_t *)(out->data[a] + y * out->linesize[a]);816 uint16_t *dstap = ( uint16_t *)(step == 4 ? out->data[a] + y * out->linesize[a] : NULL);
817 const uint16_t *srcrp = (const uint16_t *)(in ->data[r] + y * in->linesize[r]);817 const uint16_t *srcrp = (const uint16_t *)(in ->data[r] + y * in->linesize[r]);
818 const uint16_t *srcgp = (const uint16_t *)(in ->data[g] + y * in->linesize[g]);818 const uint16_t *srcgp = (const uint16_t *)(in ->data[g] + y * in->linesize[g]);
819 const uint16_t *srcbp = (const uint16_t *)(in ->data[b] + y * in->linesize[b]);819 const uint16_t *srcbp = (const uint16_t *)(in ->data[b] + y * in->linesize[b]);
820 const uint16_t *srcap = (const uint16_t *)(in ->data[a] + y * in->linesize[a]);820 const uint16_t *srcap = (const uint16_t *)(step == 4 ? in ->data[a] + y * in->linesize[a] : NULL);
821 821
822 for (x = 0; x < in->width; x++) {822 for (x = 0; x < in->width; x++) {
823 dstrp[x] = curves->graph[R][srcrp[x]];823 dstrp[x] = curves->graph[R][srcrp[x]];
@@ -831,11 +831,13 @@ static int filter_slice_planar(AVFilterContext *ctx, void *arg, int jobnr, int n · 7 unmodified lines
831 uint8_t *dstr = out->data[r] + slice_start * out->linesize[r];831 uint8_t *dstr = out->data[r] + slice_start * out->linesize[r];
832 uint8_t *dstg = out->data[g] + slice_start * out->linesize[g];832 uint8_t *dstg = out->data[g] + slice_start * out->linesize[g];
833 uint8_t *dstb = out->data[b] + slice_start * out->linesize[b];833 uint8_t *dstb = out->data[b] + slice_start * out->linesize[b];
834 uint8_t *dsta = out->data[a] + slice_start * out->linesize[a];834 uint8_t *dsta = step == 4 ? out->data[a]
835 + slice_start * out->linesize[a] : NULL;
835 const uint8_t *srcr = in->data[r] + slice_start * in->linesize[r];836 const uint8_t *srcr = in->data[r] + slice_start * in->linesize[r];
836 const uint8_t *srcg = in->data[g] + slice_start * in->linesize[g];837 const uint8_t *srcg = in->data[g] + slice_start * in->linesize[g];
837 const uint8_t *srcb = in->data[b] + slice_start * in->linesize[b];838 const uint8_t *srcb = in->data[b] + slice_start * in->linesize[b];
838 const uint8_t *srca = in->data[a] + slice_start * in->linesize[a];839 const uint8_t *srca = step == 4 ? in->data[a]
840 + slice_start * in->linesize[a] : NULL;
839 841
840 for (y = slice_start; y < slice_end; y++) {842 for (y = slice_start; y < slice_end; y++) {
841 for (x = 0; x < in->width; x++) {843 for (x = 0; x < in->width; x++) {
@@ -848,11 +850,13 @@ static int filter_slice_planar(AVFilterContext *ctx, void *arg, int jobnr, int n · 6 unmodified lines
848 dstr += out->linesize[r];850 dstr += out->linesize[r];
849 dstg += out->linesize[g];851 dstg += out->linesize[g];
850 dstb += out->linesize[b];852 dstb += out->linesize[b];
851 dsta += out->linesize[a];
852 srcr += in ->linesize[r];853 srcr += in ->linesize[r];
853 srcg += in ->linesize[g];854 srcg += in ->linesize[g];
854 srcb += in ->linesize[b];855 srcb += in ->linesize[b];
855 srca += in ->linesize[a];856 if (step == 4) {
857 dsta += out->linesize[a];
858 srca += in ->linesize[a];
859 }
856 }860 }
857 }861 }
858 return 0;862 return 0;

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t