Re: RFR: 8283218: Update GStreamer to 1.20.1 [v3]

2022-04-18 Thread Alexander Matveev
On Fri, 15 Apr 2022 23:29:54 GMT, Alexander Matveev  
wrote:

>> - GStreamer updated to 1.20.1 and GLib updated to 2.72.0.
>> - No changes to our code, except in GstAudioSpectrum.cpp 
>> g_atomic_pointer_compare_and_exchange() was changed to 
>> g_atomic_pointer_set(). For some reason I was not able to get code compiled 
>> with g_atomic_pointer_compare_and_exchange() used from C++ code. Also, I do 
>> not see a need to use g_atomic_pointer_compare_and_exchange(), since 
>> m_pHolder always equals to old_holder.
>> - Tested on all platforms with all supported media streams.
>
> Alexander Matveev has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   8283218: Update GStreamer to 1.20.1 [v3]

8283218: Update GStreamer to 1.20.1 [v4]
- Added missing include file (string.h).

-

PR: https://git.openjdk.java.net/jfx/pull/768


Re: RFR: 8283218: Update GStreamer to 1.20.1 [v3]

2022-04-16 Thread Kevin Rushforth
On Fri, 15 Apr 2022 23:29:54 GMT, Alexander Matveev  
wrote:

>> - GStreamer updated to 1.20.1 and GLib updated to 2.72.0.
>> - No changes to our code, except in GstAudioSpectrum.cpp 
>> g_atomic_pointer_compare_and_exchange() was changed to 
>> g_atomic_pointer_set(). For some reason I was not able to get code compiled 
>> with g_atomic_pointer_compare_and_exchange() used from C++ code. Also, I do 
>> not see a need to use g_atomic_pointer_compare_and_exchange(), since 
>> m_pHolder always equals to old_holder.
>> - Tested on all platforms with all supported media streams.
>
> Alexander Matveev has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   8283218: Update GStreamer to 1.20.1 [v3]

I see one remaining build failure on Ubuntu 16.04, which should be easy to fix:


../../../gstreamer-lite/gstreamer/libs/gst/base/gstbytereader.h:367:3: error: 
implicit declaration of function 'memcpy' 
[-Werror=implicit-function-declaration]
  367 |   memcpy (dup_data, data, size);
  |   ^~
../../../gstreamer-lite/gstreamer/libs/gst/base/gstbytereader.h:367:3: warning: 
incompatible implicit declaration of built-in function 'memcpy'
../../../gstreamer-lite/gstreamer/libs/gst/base/gstbytereader.h:27:1: note: 
include '' or provide a declaration of 'memcpy'
   26 | #include 
  +++ |+#include 
   27 |
In file included from 
../../../gstreamer-lite/gstreamer/libs/gst/base/gstbytewriter.h:25,
 from 
../../../gstreamer-lite/gstreamer/libs/gst/base/gstbytewriter.c:26:
../../../gstreamer-lite/gstreamer/libs/gst/base/gstbytereader.h: In function 
'gst_byte_reader_dup_data_unchecked':
../../../gstreamer-lite/gstreamer/libs/gst/base/gstbytereader.h:367:3: error: 
implicit declaration of function 'memcpy' 
[-Werror=implicit-function-declaration]
  367 |   memcpy (dup_data, data, size);
  |   ^~
../../../gstreamer-lite/gstreamer/libs/gst/base/gstbytereader.h:367:3: warning: 
incompatible implicit declaration of built-in function 'memcpy'


The workaround you needed to do this time suggests we will need a different 
approach for the next update. I think we will need to consider one of two 
things:

1. Build and link glib-lite on Linux, as we do for the other platforms
2. Bump the minimum version of GLib needed to build or run JavaFX media. This 
would mean we would no longer run on Ubuntu 16.0.4 (and probably older versions 
of RHEL / Oracle Linux).

We can decide as it gets closer to the next update.

-

PR: https://git.openjdk.java.net/jfx/pull/768


Re: RFR: 8283218: Update GStreamer to 1.20.1 [v3]

2022-04-15 Thread Alexander Matveev
On Fri, 15 Apr 2022 23:29:54 GMT, Alexander Matveev  
wrote:

>> - GStreamer updated to 1.20.1 and GLib updated to 2.72.0.
>> - No changes to our code, except in GstAudioSpectrum.cpp 
>> g_atomic_pointer_compare_and_exchange() was changed to 
>> g_atomic_pointer_set(). For some reason I was not able to get code compiled 
>> with g_atomic_pointer_compare_and_exchange() used from C++ code. Also, I do 
>> not see a need to use g_atomic_pointer_compare_and_exchange(), since 
>> m_pHolder always equals to old_holder.
>> - Tested on all platforms with all supported media streams.
>
> Alexander Matveev has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   8283218: Update GStreamer to 1.20.1 [v3]

Update GStreamer to 1.20.1 [v2]
 - Made caps writable before changing them in qtdemux, otherwise values are not 
set and critical error printed in console.
 - Fixed compilation error in GstAudioSpectrum.cpp by casting pointer.
 - Added g_abort() if it is not defined (building with older GLib).

Update GStreamer to 1.20.1 [v3]
 - Added -Werror=deprecated-declarations and 
GLIB_VERSION_MIN_REQUIRED/GLIB_VERSION_MAX_ALLOWED=2.48.0 to Linux makefiles. 
GLIB_VERSION_MIN_REQUIRED/GLIB_VERSION_MAX_ALLOWED will give deprecated 
warnings when code uses APIs from GLib which where added after 2.48.0. 
-Werror=deprecated-declarations will fail build if such warning detected. This 
is needed to make sure that we can build and run with older GLib starting with 
2.48.0 and up.
 - avplugin does not have -Werror=deprecated-declarations, because avplugin 
uses deprecated APIs from libavcodec and build fails with this flag and fixing 
avplugin is out of scope of GStreamer update.
 - Fixed build issues that were discovered after above was implemented, so we 
can build/run with GLib 2.48.0 and up.

-

PR: https://git.openjdk.java.net/jfx/pull/768


Re: RFR: 8283218: Update GStreamer to 1.20.1 [v3]

2022-04-15 Thread Alexander Matveev
> - GStreamer updated to 1.20.1 and GLib updated to 2.72.0.
> - No changes to our code, except in GstAudioSpectrum.cpp 
> g_atomic_pointer_compare_and_exchange() was changed to 
> g_atomic_pointer_set(). For some reason I was not able to get code compiled 
> with g_atomic_pointer_compare_and_exchange() used from C++ code. Also, I do 
> not see a need to use g_atomic_pointer_compare_and_exchange(), since 
> m_pHolder always equals to old_holder.
> - Tested on all platforms with all supported media streams.

Alexander Matveev has updated the pull request incrementally with one 
additional commit since the last revision:

  8283218: Update GStreamer to 1.20.1 [v3]

-

Changes:
  - all: https://git.openjdk.java.net/jfx/pull/768/files
  - new: https://git.openjdk.java.net/jfx/pull/768/files/b45b1fb1..51cc1e0f

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jfx=768=02
 - incr: https://webrevs.openjdk.java.net/?repo=jfx=768=01-02

  Stats: 211 lines in 11 files changed: 210 ins; 0 del; 1 mod
  Patch: https://git.openjdk.java.net/jfx/pull/768.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/768/head:pull/768

PR: https://git.openjdk.java.net/jfx/pull/768