Branch:
master
3.0.x
cherry-pick-c5513cf9
master
mmdevice-clean/8
update/opus-1.6.1
work/string-cache
work/unnecessary-disc-string
0.1.99e
0.2.70
0.2.72
0.2.73
0.2.81
0.2.83
0.2.91
0.2.92
0.3.0
0.3.1
0.4.0
0.4.1
0.4.2
0.4.3
0.4.4
0.4.5
0.4.6
0.4.6.1
0.5.0
0.5.1
0.5.2
0.5.3
0.6.0
0.6.1
0.6.2
0.7.0
0.7.1
0.7.2
0.8.0
0.8.1
0.8.2
0.8.4
0.9.0
0.9.0-test0
0.9.0-test1
0.9.0-test2
0.9.0-test3
1.0.0-pre1
1.0.0-pre2
1.0.0-rc1
1.1.0-ff
1.1.0-pre1
1.2.0-pre1
1.3.0-git
2.1.0-git
2.2.0-git
3.0.0
3.0.0-1
3.0.0-2
3.0.0-git
3.0.0-rc1
3.0.0-rc2
3.0.0-rc3
3.0.0-rc4
3.0.0-rc5
3.0.0-rc6
3.0.0-rc7
3.0.0-rc8
3.0.0.1
3.0.1
3.0.10
3.0.11
3.0.11.1
3.0.12
3.0.12-1
3.0.12.1
3.0.13
3.0.14
3.0.15
3.0.16
3.0.17
3.0.17-1
3.0.17.2
3.0.17.3
3.0.17.4
3.0.18
3.0.18-rc
3.0.18-rc2
3.0.19
3.0.2
3.0.20
3.0.21
3.0.21-1
3.0.22
3.0.22-rc1
3.0.22-rc2
3.0.23
3.0.23-1
3.0.23-2
3.0.23-test-that-will-be-deleted
3.0.3
3.0.3-1
3.0.4
3.0.5
3.0.5-1
3.0.5-2
3.0.6
3.0.7
3.0.7.1
3.0.7.1-1
3.0.8
3.0.9
3.0.9.1
3.0.9.2
4.0-dev
4.0.0-dev
PA_sk2_2023-0110-195255
PA_sk2_2023-0117-124820
PA_sk2_2023-0322-151238
PA_sk2_2023-0405-102335
PA_sk_master_2021-0701-100025
PA_sk_master_2021-0720-100641
PA_sk_master_2021-0816-183339
PA_sk_master_2021-0906-105147
PA_sk_master_2021-1005-082401
PA_sk_master_2021-1027-100227
PA_sk_master_2021-1102-124600
PA_sk_master_2021-1102-162639
PA_sk_master_2021-1109-022737
PA_sk_master_2022-0303-033453
PA_sk_master_2022-0509-173936
PA_sk_master_2022-0509-191127
PA_sk_master_2022-0510-220720
PA_sk_master_2022-1004-191815
PA_sk_master_2022-1209-200142
PA_vlc_master_2021-0616-164351
audiblegenius-2022-08-12-01
audiblegenius-2022-08-12-02
audiblegenius-2022-08-16-01
audiblegenius-2022-08-16-02
demo-ces2019-vlc-vr
svn-trunk
${ noResults }
6 Commits (master)
| Author | SHA1 | Message | Date |
|---|---|---|---|
|
|
a0e6fc35d1 |
vlc_queue: fix doxygen warnings
include/vlc_queue.h:188: warning: The following parameter of vlc_queue_Enqueue(vlc_queue_t *q, void *entry) is not documented:
parameter 'q'
include/vlc_queue.h:130: warning: The following parameter of vlc_queue_EnqueueUnlocked(vlc_queue_t *q, void *entry) is not documented:
parameter 'q'
|
3 years ago |
|
|
0a10f3e4a2 |
include: include vlc_threads.h when vlc_mutex_t is used
|
3 years ago |
|
|
90e98b012e |
vlc_queue: fix restrict violation
`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
|
3 years ago |
|
|
da164a25db |
vlc_queue: fix doxygen comments
- documented parameters need to appear in the prototype. - offset was probably a leftover from copy-paste. |
5 years ago |
|
|
04cf487945 |
queue: helpers for killable queues
This adds two functions to simplify the common case of a thread waiting on a queue until it is terminated. |
6 years ago |
|
|
40fccf9121 |
queue: add generic queue/FIFO helpers
Currently, the FIFO helpers are tied to block_t. This has proven problematic in the past: some code uses block_t only for the sake of block_fifo_t. It will get worse with the introduction of separate vlc_frame_t and vlc_data_t. This provides a generic C implementation of a thread-safe queue. It is very much meant to be wrapped with more type-specific helpers. |
6 years ago |