RFR: 8354336: gstclock.c: compilation error: 'incompatible pointer type' with gcc 14

Alexander Matveev almatvee at openjdk.org
Thu Apr 24 20:59:54 UTC 2025


On Thu, 24 Apr 2025 13:33:21 GMT, Kevin Rushforth <kcr at openjdk.org> wrote:

>> - Fixed gcc 14 compiler errors.
>> 
>> 
>> ../../../gstreamer-lite/gstreamer/gst/gstclock.c: In function 'gst_clock_entry_new':
>> ../../../gstreamer-lite/gstreamer/gst/gstclock.c:178:48: error: passing argument 1 of 'g_weak_ref_init' from incompatible pointer type [-Wincompatible-pointer-types]
>>   178 | #define GST_CLOCK_ENTRY_CLOCK_WEAK_REF(entry) (&((GstClockEntryImpl *)(entry))->clock)
>>       | ~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>       | |
>>       | GWeakRef **
>> ../../../gstreamer-lite/gstreamer/gst/gstclock.c:274:20: note: in expansion of macro 'GST_CLOCK_ENTRY_CLOCK_WEAK_REF'
>>   274 | g_weak_ref_init (GST_CLOCK_ENTRY_CLOCK_WEAK_REF (entry), clock);
>> 
>> 
>> 
>> ../../../plugins/av/videodecoder.c: In function 'videodecoder_dispose':
>> ../../../plugins/av/videodecoder.c:202:31: error: passing argument 1 of 'basedecoder_close_decoder' from incompatible pointer type [-Wincompatible-pointer-types]
>>   202 | basedecoder_close_decoder(decoder);
>> 
>> 
>> 
>> ../../../plugins/av/videodecoder.c: In function 'videodecoder_convert_frame':
>> ../../../plugins/av/videodecoder.c:548:50: error: passing argument 2 of 'decoder->sws_scale_func' from incompatible pointer type [-Wincompatible-pointer-types]
>>   548 | base->frame->data,
>>       | ~~~~~~~~~~~^~~~~~
>>       | |
>>       | uint8_t ** {aka unsigned char **}
>> ../../../plugins/av/videodecoder.c:548:50: note: expected 'const uint8_t * const*' {aka 'const unsigned char * const*'} but argument is of type 'uint8_t **' {aka 'unsigned char **'}
>
> modules/javafx.media/src/main/native/gstreamer/gstreamer-lite/gstreamer/gst/gst_private.h line 535:
> 
>> 533: {
>> 534:   GstClockEntry entry;
>> 535: #if defined (GSTREAMER_LITE) && defined(LINUX)
> 
> Why is this qualified with `defined(LINUX)`? Unless the usage of this variable is different based on the platform, I would expect that the type is wrong on all platforms. Am I missing something?

This is old code which was restored from GStreamer 1.20.1 and only needed on Linux to support older GLib.
See https://github.com/openjdk/jfx/pull/1290.

-------------

PR Review Comment: https://git.openjdk.org/jfx/pull/1794#discussion_r2059220824


More information about the openjfx-dev mailing list