- Mar 20, 2023
-
-
-
-
-
-
-
-
-
-
-
Steve Lhomme authored
json_parse_ex() now requires the length of the JSON string to parse. The following changes are integrated: * 672dd79c (int64 on Windows), * ecb7c847 (proper include guards), * c8edcab8 (null deref), * 894bab1c (fallthrough warning) The (unused) json_relaxed_commas flag is gone. We may also use it as a contrib.
-
Steve Lhomme authored
-
- Mar 19, 2023
-
-
- Mar 18, 2023
-
-
-
-
it tries to use the colorContext of the WindowDialog which was not exposed
-
-
- Mar 17, 2023
-
-
-
when the user enable the high-contrast mode on windows, we must comply to the system palette
-
AudioTrack#getTimestamp, present since API 19, is the most precise, [-20ms;0ms] delay tested with the Sync-One2.
-
Remove the smoothpos hack that was only needed for time_get.
-
Leftover from 582570aa
-
No functional changes.
-
-
When pinned in fullscreen, we want the controlbar to retain the default design and hide everything at the top.
-
-
-
TagLib does not provide an union of both ID3v2 and INFO tags via the usual `File::tag()` method. Their justification lies in the code for now: ```cpp /*! * Returns the ID3v2 Tag for this file. * * \note This method does not return all the tags for this file for * backward compatibility. Will be fixed in TagLib 2.0. */ ID3v2::Tag *tag() const; ``` To support WAV files providing RIFF INFO tags, we must specifically parse them before TagLib 2.0 (not released yet). Fixes #25690
-
No functional changes.
-
Thomas Guillem authored
`restrict` tells the compiler that the tombstone pointer is the only way to access the variable pointed by it. This is not case with multi-threading. From the C11 specs: § 6.7.3 item 8 An object that is accessed through a restrict-qualified pointer has a special association with that pointer. This association, defined in 6.7.3.1 below, requires that all accesses to that object use, directly or indirectly, the value of that particular pointer. § 6.7.3.1 item 4 Every other lvalue used to access the value of X shall also have its address based on P. Also set the pointer to const. Fixes the following race condition when closing live555: Thread 80 (Thread 28393.4880): 0 0x0000007953dbebbc in syscall () from /home/tom/work/git/libvlcjni/libvlc/.gdb/obj/local/arm64-v8a/system/lib64/libc.so 1 0x0000007855d2c0ec in sys_futex (addr=0x89, op=137, val=0, to=0x0, addr2=0x0, val3=-1) at ../../src/linux/thread.c:82 2 vlc_futex_wait (addr=0x89, flags=0, val=0, to=0x0) at ../../src/linux/thread.c:93 3 vlc_atomic_wait (addr=0x89, val=0) at ../../src/linux/thread.c:109 4 0x0000007855d20e9c in vlc_cond_wait (cond=cond@entry=0x7829f26ce8, mutex=mutex@entry=0x7829f26cd8) at ../../src/misc/threads.c:298 5 0x0000007855d42244 in vlc_queue_Wait (q=0x7829f26cc0) at ../../include/vlc_queue.h:122 6 vlc_queue_DequeueKillable (q=0x7829f26cc0, tombstone=0x7829f26d00) at ../../include/vlc_queue.h:248 7 vlc_stream_fifo_Block (s=<optimized out>, eof=0x78709a8838) at ../../src/input/stream_fifo.c:75 8 0x0000007855cfa160 in vlc_stream_ReadRaw (s=s@entry=0x7819411360, buf=buf@entry=0x78c4393c80, len=len@entry=188) at ../../src/input/stream.c:466 9 0x0000007855cf9fe0 in vlc_stream_ReadPartial (s=s@entry=0x7819411360, buf=buf@entry=0x78c4393c80, len=len@entry=188) at ../../src/input/stream.c:489 10 0x0000007855cfad44 in vlc_stream_Read (s=<optimized out>, buf=0x78c4393c80, len=188) at ../../src/input/stream.c:504 11 vlc_stream_Block (s=0x7819411360, size=<optimized out>) at ../../src/input/stream.c:909 12 0x0000007855f1fe5c in ReadTSPacket (p_demux=p_demux@entry=0x78c42c0ce0) at ../../modules/demux/mpeg/ts.c:1808 13 0x0000007855f1de30 in Demux (p_demux=<optimized out>) at ../../modules/demux/mpeg/ts.c:649 4 0x0000007855d41e4c in vlc_demux_chained_Thread (data=0x7829f26c70) at ../../src/input/demux_chained.c:96 15 0x0000007855d2d5b8 in joinable_thread (data=0x7823341ea0) at ../../src/android/thread.c:96 16 0x0000007953e217c4 in __pthread_start(void*) () from /home/tom/work/git/libvlcjni/libvlc/.gdb/obj/local/arm64-v8a/system/lib64/libc.so 17 0x0000007953dc41ac in __start_thread () from /home/tom/work/git/libvlcjni/libvlc/.gdb/obj/local/arm64-v8a/system/lib64/libc.so Thread 79 (Thread 28393.4875): 0 0x0000007953dbebbc in syscall () from /home/tom/work/git/libvlcjni/libvlc/.gdb/obj/local/arm64-v8a/system/lib64/libc.so 1 0x0000007953e21d98 in pthread_join () from /home/tom/work/git/libvlcjni/libvlc/.gdb/obj/local/arm64-v8a/system/lib64/libc.so 2 0x0000007855d2d204 in vlc_join (handle=0x7823341ea0, result=0x0) at ../../src/android/thread.c:147 3 0x0000007855d4202c in vlc_demux_chained_Delete (dc=0x7829f26c70) at ../../src/input/demux_chained.c:167 4 0x0000007855d3d92c in Close (p_this=<optimized out>) at ../../modules/access/live555.cpp:505 5 0x0000007855cb49dc in module_unneed (obj=obj@entry=0x78194110c0, module=0x78c83b0520) at ../../src/modules/modules.c:305 6 0x0000007855ceae78 in vlc_access_Destroy (access=0x78194110c0) at ../../src/input/access.c:54 7 0x0000007855cf958c in vlc_stream_Delete (s=0x78194110c0) at ../../src/input/stream.c:150 8 0x0000007855ce4954 in demux_Delete (demux=0x78709a8d60) at ../../include/vlc_demux.h:291 9 InputSourceDestroy (in=0x781a3aa780) at ../../src/input/input.c:2852 10 0x0000007855ce39f0 in End (p_input=p_input@entry=0x7863073c00) at ../../src/input/input.c:1413 11 0x0000007855ce0620 in Run (data=0x7863073c00) at ../../src/input/input.c:431 12 0x0000007855d2d5b8 in joinable_thread (data=0x78231b02c0) at ../../src/android/thread.c:96 13 0x0000007953e217c4 in __pthread_start(void*) () from /home/tom/work/git/libvlcjni/libvlc/.gdb/obj/local/arm64-v8a/system/lib64/libc.so 14 0x0000007953dc41ac in __start_thread () from /home/tom/work/git/libvlcjni/libvlc/.gdb/obj/local/arm64-v8a/system/lib64/libc.so
-
- Mar 16, 2023
-
-
This commit adds more helper methods for demux_t.
-
This commit introduce a typed virtual table for operations on demux, aiming at replacing the legacy pf_control() callback which is using va_list. As a counterpart to the typed virtual table, typed methods are also introduce. The operations can be implemented by the modules directly right now and will be used when possible. This is done to provide type safety at every level. When no operation is provided (ie, demux_t.ops is NULL) by a module implementation, the legacy pf_control will be used instead as a fallback. The commit doesn't migrate any of modules yet.
-
-
This is done because the type is different from stream and demux.
-
Thomas Guillem authored
The original GPL 2 license was an error, that I missed during the review process. Nicolas agreed with this license change by mail.
-
- Mar 15, 2023
-
-
-
DynamicsProcessing is used by android/device.c, by audiotrack and by aaudio and a common vtable is needed as well as the matching JNI helpers to use the vtable. The vtable is currently stored in the audiotrack vtable, which is available in the other plugins in static build. But it leads to undefined reference errors when compiling a dynamic build of libvlc for android. Split the code handling this vtable in a separate convenience library to address this, which is then linked to every other targets. Since convenience libraries are playing a different role than static libraries, and are not linked but merged into the final objects that will be part of the library output (shared or archive), the symbols are then available to each of the plugins. Fixes #27726
-
Thomas Guillem authored
Finish the transition to the new audioformat_jni helper.
-
Thomas Guillem authored
The encoding is previously checked in device.c
-
Move the AudioFormat vtable to a separate file and convenience library so as to use the AudioFormat vtable from device.c. The choice of a convenience library here is to compile the code only once but be able to use it from different locations, especially since it needs the vtable filled before using the associated function. The commit doesn't change audiotrack yet, as the goal is mostly to fix the dynamic build on Android, and thus duplicates part of the code from there. Some more changes would be needed to potentially supply the vtable as parameter and provides what's missing for audiotrack.c to use this convenience library instead.
-
The convenience library libandroid_env is needed in particular for the function android_GetEnv. There's no functional changes for the current way we distribute android, ie. in static builds, since link options are ignored, but it's needed to compile a dynamic build.
-