* [FFmpeg-devel] [PATCH] swscale/swscale_unscaled: Fix undefined NULL + 0
@ 2022-09-28 18:39 Andreas Rheinhardt
2022-09-28 19:39 ` Michael Niedermayer
0 siblings, 1 reply; 4+ messages in thread
From: Andreas Rheinhardt @ 2022-09-28 18:39 UTC (permalink / raw)
To: ffmpeg-devel; +Cc: Andreas Rheinhardt
Affected the fitsdec-gbrp16 FATE-test.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
---
libswscale/swscale_unscaled.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
index 8838cc8b53..0b97377934 100644
--- a/libswscale/swscale_unscaled.c
+++ b/libswscale/swscale_unscaled.c
@@ -695,7 +695,7 @@ static void packed16togbra16(const uint8_t *src, int srcStride,
}
}
for (i = 0; i < 4; i++)
- dst[i] += dstStride[i] >> 1;
+ dst[i] = FF_PTR_ADD(dst[i], dstStride[i] >> 1);
}
}
@@ -729,8 +729,8 @@ static int Rgb16ToPlanarRgb16Wrapper(SwsContext *c, const uint8_t *src[],
}
for(i=0; i<4; i++) {
- dst2013[i] += stride2013[i] * srcSliceY / 2;
- dst1023[i] += stride1023[i] * srcSliceY / 2;
+ dst2013[i] = FF_PTR_ADD(dst2013[i], stride2013[i] * srcSliceY / 2);
+ dst1023[i] = FF_PTR_ADD(dst1023[i], stride1023[i] * srcSliceY / 2);
}
switch (c->srcFormat) {
--
2.34.1
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH] swscale/swscale_unscaled: Fix undefined NULL + 0
2022-09-28 18:39 [FFmpeg-devel] [PATCH] swscale/swscale_unscaled: Fix undefined NULL + 0 Andreas Rheinhardt
@ 2022-09-28 19:39 ` Michael Niedermayer
2022-09-28 19:43 ` Andreas Rheinhardt
0 siblings, 1 reply; 4+ messages in thread
From: Michael Niedermayer @ 2022-09-28 19:39 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 1537 bytes --]
On Wed, Sep 28, 2022 at 08:39:09PM +0200, Andreas Rheinhardt wrote:
> Affected the fitsdec-gbrp16 FATE-test.
>
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> ---
> libswscale/swscale_unscaled.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
> index 8838cc8b53..0b97377934 100644
> --- a/libswscale/swscale_unscaled.c
> +++ b/libswscale/swscale_unscaled.c
> @@ -695,7 +695,7 @@ static void packed16togbra16(const uint8_t *src, int srcStride,
> }
> }
> for (i = 0; i < 4; i++)
> - dst[i] += dstStride[i] >> 1;
> + dst[i] = FF_PTR_ADD(dst[i], dstStride[i] >> 1);
> }
> }
>
> @@ -729,8 +729,8 @@ static int Rgb16ToPlanarRgb16Wrapper(SwsContext *c, const uint8_t *src[],
> }
>
> for(i=0; i<4; i++) {
> - dst2013[i] += stride2013[i] * srcSliceY / 2;
> - dst1023[i] += stride1023[i] * srcSliceY / 2;
> + dst2013[i] = FF_PTR_ADD(dst2013[i], stride2013[i] * srcSliceY / 2);
> + dst1023[i] = FF_PTR_ADD(dst1023[i], stride1023[i] * srcSliceY / 2);
> }
is there a reason not to check the pointer in the loop ?
as in
for (i = 0; i < 4 && dst[i]; i++)
thx
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
"Nothing to hide" only works if the folks in power share the values of
you and everyone you know entirely and always will -- Tom Scott
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH] swscale/swscale_unscaled: Fix undefined NULL + 0
2022-09-28 19:39 ` Michael Niedermayer
@ 2022-09-28 19:43 ` Andreas Rheinhardt
2022-09-28 20:03 ` Michael Niedermayer
0 siblings, 1 reply; 4+ messages in thread
From: Andreas Rheinhardt @ 2022-09-28 19:43 UTC (permalink / raw)
To: ffmpeg-devel
Michael Niedermayer:
> On Wed, Sep 28, 2022 at 08:39:09PM +0200, Andreas Rheinhardt wrote:
>> Affected the fitsdec-gbrp16 FATE-test.
>>
>> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
>> ---
>> libswscale/swscale_unscaled.c | 6 +++---
>> 1 file changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
>> index 8838cc8b53..0b97377934 100644
>> --- a/libswscale/swscale_unscaled.c
>> +++ b/libswscale/swscale_unscaled.c
>> @@ -695,7 +695,7 @@ static void packed16togbra16(const uint8_t *src, int srcStride,
>> }
>> }
>> for (i = 0; i < 4; i++)
>> - dst[i] += dstStride[i] >> 1;
>> + dst[i] = FF_PTR_ADD(dst[i], dstStride[i] >> 1);
>> }
>> }
>>
>> @@ -729,8 +729,8 @@ static int Rgb16ToPlanarRgb16Wrapper(SwsContext *c, const uint8_t *src[],
>> }
>>
>> for(i=0; i<4; i++) {
>> - dst2013[i] += stride2013[i] * srcSliceY / 2;
>> - dst1023[i] += stride1023[i] * srcSliceY / 2;
>> + dst2013[i] = FF_PTR_ADD(dst2013[i], stride2013[i] * srcSliceY / 2);
>> + dst1023[i] = FF_PTR_ADD(dst1023[i], stride1023[i] * srcSliceY / 2);
>> }
>
> is there a reason not to check the pointer in the loop ?
> as in
> for (i = 0; i < 4 && dst[i]; i++)
>
I consider NULL + 0 to be sane and would be happy to see it being
defined in a future version of the spec. So I don't like adding checks
to workaround the insanities of the spec. Notice that FF_PTR_ADD() is
designed to allow the compiler to optimize the check away.
- Andreas
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [FFmpeg-devel] [PATCH] swscale/swscale_unscaled: Fix undefined NULL + 0
2022-09-28 19:43 ` Andreas Rheinhardt
@ 2022-09-28 20:03 ` Michael Niedermayer
0 siblings, 0 replies; 4+ messages in thread
From: Michael Niedermayer @ 2022-09-28 20:03 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 2603 bytes --]
On Wed, Sep 28, 2022 at 09:43:56PM +0200, Andreas Rheinhardt wrote:
> Michael Niedermayer:
> > On Wed, Sep 28, 2022 at 08:39:09PM +0200, Andreas Rheinhardt wrote:
> >> Affected the fitsdec-gbrp16 FATE-test.
> >>
> >> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
> >> ---
> >> libswscale/swscale_unscaled.c | 6 +++---
> >> 1 file changed, 3 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c
> >> index 8838cc8b53..0b97377934 100644
> >> --- a/libswscale/swscale_unscaled.c
> >> +++ b/libswscale/swscale_unscaled.c
> >> @@ -695,7 +695,7 @@ static void packed16togbra16(const uint8_t *src, int srcStride,
> >> }
> >> }
> >> for (i = 0; i < 4; i++)
> >> - dst[i] += dstStride[i] >> 1;
> >> + dst[i] = FF_PTR_ADD(dst[i], dstStride[i] >> 1);
> >> }
> >> }
> >>
> >> @@ -729,8 +729,8 @@ static int Rgb16ToPlanarRgb16Wrapper(SwsContext *c, const uint8_t *src[],
> >> }
> >>
> >> for(i=0; i<4; i++) {
> >> - dst2013[i] += stride2013[i] * srcSliceY / 2;
> >> - dst1023[i] += stride1023[i] * srcSliceY / 2;
> >> + dst2013[i] = FF_PTR_ADD(dst2013[i], stride2013[i] * srcSliceY / 2);
> >> + dst1023[i] = FF_PTR_ADD(dst1023[i], stride1023[i] * srcSliceY / 2);
> >> }
> >
> > is there a reason not to check the pointer in the loop ?
> > as in
> > for (i = 0; i < 4 && dst[i]; i++)
> >
>
> I consider NULL + 0 to be sane and would be happy to see it being
> defined in a future version of the spec.
i agree but that will not help our code for a long time
> So I don't like adding checks
> to workaround the insanities of the spec.
Ive seen this less as a workaround and more as a "only work on
the active/used pointers"
a dst[i] check is more used elsewhere in sws too
but i really dont have much of an oppinon
libswscale/slice.c: for (i = 0; i < 4 && src[i] != NULL; ++i) {
libswscale/swscale.c: for (i = 0; i < 4 && src2[i]; i++) {
libswscale/swscale.c: for (i = 0; i < 4 && dst2[i]; i++) {
libswscale/swscale_unscaled.c: for (plane = 0; plane < 4 && dst[plane] != NULL; plane++) {
libswscale/tests/swscale.c: for (i = 0; i < 4 && dstStride[i]; i++)
libswscale/swscale.c: for (int i = 0; i < FF_ARRAY_ELEMS(dst) && parent->frame_dst->data[i]; i++) {
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
Observe your enemies, for they first find out your faults. -- Antisthenes
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-09-28 20:03 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-28 18:39 [FFmpeg-devel] [PATCH] swscale/swscale_unscaled: Fix undefined NULL + 0 Andreas Rheinhardt
2022-09-28 19:39 ` Michael Niedermayer
2022-09-28 19:43 ` Andreas Rheinhardt
2022-09-28 20:03 ` Michael Niedermayer
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git