Thomas Guillem
c2cebc3d36
input_item: change es_format_t list handling
Use an intermediate struct that will hold a future paramater.
Use a vlc_vector instead of the ARRAY API.
3 years ago
Alaric Senat
f1d4ade9bc
medialibrary: thumb: check fclose while saving
It should not be assumed that the thumbnail was saved properly when
`fclose` fails.
The RAII wrapper here does not improve readability or shorten the code.
Removing it also works around a GCC `-Wignored-attributes` warning that
was triggered due to `fclose` being tagged as `__nonnull((1))`:
```text
modules/misc/medialibrary/MetadataExtractor.cpp: In member function ‘virtual bool EmbeddedThumbnail::save(const std::string&)’:
modules/misc/medialibrary/MetadataExtractor.cpp:44:44: warning: ignoring attributes on template argument ‘int (*)(FILE*)’ [-Wignored-attributes]
44 | std::unique_ptr<FILE, decltype(&fclose)> f{ vlc_fopen( path.c_str(), "wb" ),
| ^
```
Co-authored-by: Alexandre Janniaux <ajanni@videolabs.io>
3 years ago
Alexandre Janniaux
fed5c86530
medialibrary: devicelister: fix null-dereference
The providerList can be NULL if `vlc_media_source_provider_List` returns
a NULL value if no results is returned by vlc_sd_GetNames.
For instance, it means that if no service discovery modules are
available, opening the Qt interface with the medialibrary enabled will
lead to such crash.
3 years ago
Mohit Marathe
8ba9acdc86
medialibrary: add VLC_ML_REMOVE_STREAM
Signed-off-by: Mohit Marathe <mohitmarathe23@gmail.com>
3 years ago
Hank Anderson
c10af532f2
meta: vlc_meta_AddExtra() rename to vlc_meta_SetExtra()
3 years ago
Benjamin Arnaud
6ffca1a9d3
medialibrary: Add the 'vlc_ml_playlist_rename' function
3 years ago
Steve Lhomme
098daebfa0
modules: include vlc_configuration.h when using config_GetUserDir()
3 years ago
Pierre Lamot
793acb3a47
medialib: allow to list audio or video only playlists
3 years ago
Steve Lhomme
5d0620f3e2
modules: include vlc_arrays.h when using vlc_array_t
3 years ago
Steve Lhomme
5bb8bd4243
modules: include vlc_arrays.h when using realloc_or_free()
3 years ago
Steve Lhomme
f1f1f17920
medialibrary: include <type_traits> when std::is_pointer is used
3 years ago
Steve Lhomme
ce1b6b94fb
modules: include vlc_threads.h when using vlc_timer_t
3 years ago
Steve Lhomme
cd48d706ed
modules: include vlc_threads.h when vlc_mutex_t is used
3 years ago
Steve Lhomme
4c99f1a44a
include cassert instead of assert.h
cassert is the preferred way in C++. It doesn't contain static_assert
which is otherwise a keyword.
https://stackoverflow.com/a/43011752/1266123
https://en.cppreference.com/w/cpp/header/cassert
https://en.cppreference.com/w/cpp/language/static_assert
3 years ago
Steve Lhomme
869a03432a
webservices/json: update the JSON parser to version 1.1.0
json_parse_ex() now requires the length of the JSON string to parse.
The following changes are integrated:
* 672dd79c40 (int64 on Windows),
* ecb7c84719 (proper include guards),
* c8edcab8cd (null deref),
* 894bab1c0a (fallthrough warning)
The (unused) json_relaxed_commas flag is gone.
We may also use it as a contrib.
3 years ago
Steve Lhomme
6f9b01e6f4
json_helper: get the size of the read buffer
3 years ago
Andrew Sun
77a2d21b59
inhibit/dbus: fix service and path
According to https://web.archive.org/web/20080828095706/https://people.freedesktop.org/~hughsient/temp/power-management-spec-0.2.html the correct service name does not include `.Inhibit` and the path includes `/Inhibit`.
This essentially reverts beec9e7851
3 years ago
Steve Lhomme
cf96f27082
medialibrary: use proper callback values
Otherwise it may use the values from this, not knowning which variant to use
if there are multiple child/parent classes.
3 years ago
Steve Lhomme
1a17e8cee3
medialibrary: use <cstring> from C++
3 years ago
Alexandre Janniaux
49a1f114fb
image: ensure picture is released from client
Ensure the client calling the export to block_t is also responsible for
releasing the picture it exports.
Previous commits were adding the release to match behaviour of the
converter before refactoring everything, but it was a mistake and led to
issues with other parts of the pipeline, in particular the transcoder,
and some clients were more adapted to the converter path + hold of
original rather than the non-conversion path, which would then have been
simpler to do from the start.
This MR adds the necessary hold and release to remove those from the
encoders and the clients, and is tested against the unmerged
libvlc/media.c test for thumbnailing too.
Revert "png: fix picture release on encoder"
This reverts commit d4c93a29a2 .
Revert "jpeg: fix picture release on encoder"
This reverts commit cccc085e30 .
Revert "avcodec: encoder: fix picture release"
This reverts commit 5a145f34fa .
Revert "codec: vpx: fix picture release on encoder"
This reverts commit 5dde7db39c .
Revert "image: fix picture leak in case of error"
This reverts commit 1bf09fe8d6 .
Revert "misc: thumbnailer: release picture when interrupted"
This reverts commit 004b9900f8 .
3 years ago
Alexandre Janniaux
004b9900f8
misc: thumbnailer: release picture when interrupted
If we were interrupted, we cannot notify the picture anymore so it needs
to be dropped. The behaviour is the same as if using picture_Export
here, and might not be kept in the future, but the goal is to have the
tests working and checking memory leaks before changing the behaviour,
which is also the same as the encoders currently.
3 years ago
Alexandre Janniaux
189b4c4ea0
medialibrary: Thumbnailer: destroy request after it completes
Destroy the thumbnailing request after it completes to free the
associated resources. See also the following commit changing the API:
ca3b131594
3 years ago
Thomas Guillem
ca3b131594
thumbnail: rework API to fix use-after-free
Before 3b26eefc99 , the caller was not
responsible to destroy the request but he could cancel it via:
vlc_thumbnailer_Cancel()
WaitForTheCb()
ReleaseResourceAssociatedWithTheCb()
This new commit, in addition with
3b26eefc99 (that was not complete), allow
the user to cancel/destroy the request, without waiting for any
callback:
vlc_thumbnailer_DestroyRequest()
ReleaseResourceAssociatedWithTheCb()
vlc_thumbnailer_Cancel() has been renamed to
vlc_thumbnailer_DestroyRequest(), this new call must always be called to
release resources and can be called before receiving the callback in
order to cancel it.
Fixes #27766
3 years ago
Alexandre Janniaux
4791527ad6
medialibrary: dump location path for medialibrary
The location helps determine where the user loaded the medialibrary
from.
3 years ago
Alexandre Janniaux
603afb477c
medialibrary: init ML before adding media
When calling VLC_ML_NEW_EXTERNAL_MEDIA or VLC_ML_NEW_STREAM, the
medialibrary must be initialized because the priority context is
acquired, just list for the VLC_ML_GENERATE_THUMBNAIL request.
Ensure the medialibrary is initialized at the same location as other
queries like this.
3 years ago
Alexandre Janniaux
a41743decc
medialibrary: Thumbnailer: fix double-free
The picture was referenced on the ThumbnailerCtx object, which release
it whenever one is not nullptr. However, after the changes in !3088 ,
commit 2ea2c7eb19 , the release policy for
the picture being exported has been fixed to ensure the picture is
consumed whatever the conversion case.
Ensure the picture won't be released twice by swapping it from the
ThumbnailerCtx object before exporting.
Fix #27749
3 years ago
Steve Lhomme
6d7ce21912
gnutls: avoid using realloc for a fixed size
This also fixes a (bogus) warning in gcc with the realloc usage.
3 years ago
Johannes Kauffmann
f242e3c7eb
meson: fix named argument style
As per the style guide.
3 years ago
Benjamin Arnaud
e07e728d58
core/medialibrary: Add the favorite media setter
3 years ago
Marvin Scholz
d5f07af209
meson: add initial meson build system
Co-authored-by: Tanguy Dubroca <tanguy.dubroca@lse.epita.fr>
Co-authored-by: Hugo Beauzée-Luyssen <hugo@beauzee.fr>
Co-authored-by: Alexandre Janniaux <ajanni@videolabs.io>
7 years ago
Thomas Guillem
b2daa8327c
medialibrary: fix heap-use-after-free
m_deviceLister is listening to media source tree callbacks and need be
cleaned (and callbacks removed) before m_devices, since callbacks read
m_devices.
==1750167==ERROR: AddressSanitizer: heap-use-after-free on address 0x61100002c640 at pc 0x7f8906109b0e bp 0x7f88ef176630 sp 0x7f88ef176628
READ of size 8 at 0x61100002c640 thread T22
#0 0x7f8906109b0d in std::__shared_ptr<medialibrary::fs::IDevice, (__gnu_cxx::_Lock_policy)2>::get() const /usr/include/c++/12/bits/shared_ptr_base.h:1666
#1 0x7f8906109b0d in std::__shared_ptr_access<medialibrary::fs::IDevice, (__gnu_cxx::_Lock_policy)2, false, false>::_M_get() const /usr/include/c++/12/bits/shared_ptr_base.h:1363
#2 0x7f8906109b0d in std::__shared_ptr_access<medialibrary::fs::IDevice, (__gnu_cxx::_Lock_policy)2, false, false>::operator->() const /usr/include/c++/12/bits/shared_ptr_base.h:1357
#3 0x7f8906109b0d in operator() ../../modules/misc/medialibrary/fs/fs.cpp:195
#4 0x7f8906109cac in operator()<__gnu_cxx::__normal_iterator<std::shared_ptr<medialibrary::fs::IDevice>*, std::vector<std::shared_ptr<medialibrary::fs::IDevice> > > > /usr/include/c++/12/bits/predefined_ops.h:318
#5 0x7f8906109cac in __find_if<__gnu_cxx::__normal_iterator<std::shared_ptr<medialibrary::fs::IDevice>*, std::vector<std::shared_ptr<medialibrary::fs::IDevice> > >, __gnu_cxx::__ops::_Iter_pred<vlc::medialibrary::SDFileSystemFactory::deviceByUuid(const std::string&)::<lambda(const std::shared_ptr<medialibrary::fs::IDevice>&)> > > /usr/include/c++/12/bits/stl_algobase.h:2067
#6 0x7f8906109f54 in __find_if<__gnu_cxx::__normal_iterator<std::shared_ptr<medialibrary::fs::IDevice>*, std::vector<std::shared_ptr<medialibrary::fs::IDevice> > >, __gnu_cxx::__ops::_Iter_pred<vlc::medialibrary::SDFileSystemFactory::deviceByUuid(const std::string&)::<lambda(const std::shared_ptr<medialibrary::fs::IDevice>&)> > > /usr/include/c++/12/bits/stl_algobase.h:2112
#7 0x7f8906109f54 in find_if<__gnu_cxx::__normal_iterator<std::shared_ptr<medialibrary::fs::IDevice>*, std::vector<std::shared_ptr<medialibrary::fs::IDevice> > >, vlc::medialibrary::SDFileSystemFactory::deviceByUuid(const std::string&)::<lambda(const std::shared_ptr<medialibrary::fs::IDevice>&)> > /usr/include/c++/12/bits/stl_algo.h:3877
#8 0x7f890610b532 in vlc::medialibrary::SDFileSystemFactory::deviceByUuid(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) ../../modules/misc/medialibrary/fs/fs.cpp:193
#9 0x7f890610c16e in vlc::medialibrary::SDFileSystemFactory::onDeviceMounted(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) ../../modules/misc/medialibrary/fs/fs.cpp:146
#10 0x7f890610edd1 in vlc::medialibrary::DeviceLister::onChildrenAdded(vlc_media_tree*, input_item_node_t*, input_item_node_t* const*, unsigned long) ../../modules/misc/medialibrary/fs/devicelister.cpp:131
#11 0x7f890610f06e in vlc::medialibrary::DeviceLister::onChildrenAdded(vlc_media_tree*, input_item_node_t*, input_item_node_t* const*, unsigned long, void*) ../../modules/misc/medialibrary/fs/devicelister.cpp:105
#12 0x7f8908b01f44 in vlc_media_tree_Add ../../src/media_source/media_tree.c:303
#13 0x7f8908b00dc0 in services_discovery_item_added ../../src/media_source/media_source.c:81
#14 0x7f8907972be6 in services_discovery_AddItem ../../include/vlc_services_discovery.h:166
#15 0x7f8907972be6 in entry_item_append ../../modules/access/dsm/sd.c:73
#16 0x7f8907972daf in netbios_ns_discover_on_entry_added ../../modules/access/dsm/sd.c:117
#17 0x7f8907980930 in netbios_ns_discover_thread (/home/tom/work/out/lib/x86_64-linux-gnu/libdsm.so.3+0x5930)
#18 0x7f89086a3d7f in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7d7f)
#19 0x7f89085bdbae in clone (/lib/x86_64-linux-gnu/libc.so.6+0xfabae)
0x61100002c640 is located 0 bytes inside of 256-byte region [0x61100002c640,0x61100002c740)
freed by thread T0 here:
#0 0x7f8908cba3c8 in operator delete(void*, unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:164
#1 0x7f890610c7d8 in std::__new_allocator<std::shared_ptr<medialibrary::fs::IDevice> >::deallocate(std::shared_ptr<medialibrary::fs::IDevice>*, unsigned long) /usr/include/c++/12/bits/new_allocator.h:158
#2 0x7f890610c7d8 in std::allocator_traits<std::allocator<std::shared_ptr<medialibrary::fs::IDevice> > >::deallocate(std::allocator<std::shared_ptr<medialibrary::fs::IDevice> >&, std::shared_ptr<medialibrary::fs::IDevice>*, unsigned long) /usr/include/c++/12/bits/alloc_traits.h:496
#3 0x7f890610c7d8 in std::_Vector_base<std::shared_ptr<medialibrary::fs::IDevice>, std::allocator<std::shared_ptr<medialibrary::fs::IDevice> > >::_M_deallocate(std::shared_ptr<medialibrary::fs::IDevice>*, unsigned long) /usr/include/c++/12/bits/stl_vector.h:387
#4 0x7f890610c7d8 in std::_Vector_base<std::shared_ptr<medialibrary::fs::IDevice>, std::allocator<std::shared_ptr<medialibrary::fs::IDevice> > >::~_Vector_base() /usr/include/c++/12/bits/stl_vector.h:366
#5 0x7f890610cc47 in std::vector<std::shared_ptr<medialibrary::fs::IDevice>, std::allocator<std::shared_ptr<medialibrary::fs::IDevice> > >::~vector() /usr/include/c++/12/bits/stl_vector.h:733
#6 0x7f890610ccb4 in vlc::medialibrary::SDFileSystemFactory::~SDFileSystemFactory() ../../modules/misc/medialibrary/fs/fs.h:45
#7 0x7f89060dd7f0 (/home/tom/work/git/vlc/build-asan/modules/.libs/libmedialibrary_plugin.so+0xdd7f0)
#8 0x7f8906192379 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/12/bits/shared_ptr_base.h:346
#9 0x7f8906192379 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/12/bits/shared_ptr_base.h:317
#10 0x7f8906192379 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/include/c++/12/bits/shared_ptr_base.h:1071
#11 0x7f8906192379 in std::__shared_ptr<medialibrary::fs::IFileSystemFactory, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/include/c++/12/bits/shared_ptr_base.h:1524
#12 0x7f8906192379 in std::shared_ptr<medialibrary::fs::IFileSystemFactory>::~shared_ptr() /usr/include/c++/12/bits/shared_ptr.h:175
#13 0x7f8906192379 in void std::_Destroy<std::shared_ptr<medialibrary::fs::IFileSystemFactory> >(std::shared_ptr<medialibrary::fs::IFileSystemFactory>*) /usr/include/c++/12/bits/stl_construct.h:151
#14 0x7f8906192379 in void std::_Destroy_aux<false>::__destroy<std::shared_ptr<medialibrary::fs::IFileSystemFactory>*>(std::shared_ptr<medialibrary::fs::IFileSystemFactory>*, std::shared_ptr<medialibrary::fs::IFileSystemFactory>*) /usr/include/c++/12/bits/stl_construct.h:163
#15 0x7f8906192379 in void std::_Destroy<std::shared_ptr<medialibrary::fs::IFileSystemFactory>*>(std::shared_ptr<medialibrary::fs::IFileSystemFactory>*, std::shared_ptr<medialibrary::fs::IFileSystemFactory>*) /usr/include/c++/12/bits/stl_construct.h:196
#16 0x7f8906192379 in void std::_Destroy<std::shared_ptr<medialibrary::fs::IFileSystemFactory>*, std::shared_ptr<medialibrary::fs::IFileSystemFactory> >(std::shared_ptr<medialibrary::fs::IFileSystemFactory>*, std::shared_ptr<medialibrary::fs::IFileSystemFactory>*, std::allocator<std::shared_ptr<medialibrary::fs::IFileSystemFactory> >&) /usr/include/c++/12/bits/alloc_traits.h:850
#17 0x7f8906192379 in std::vector<std::shared_ptr<medialibrary::fs::IFileSystemFactory>, std::allocator<std::shared_ptr<medialibrary::fs::IFileSystemFactory> > >::~vector() /usr/include/c++/12/bits/stl_vector.h:730
#18 0x7f8906192379 in medialibrary::FsHolder::~FsHolder() ../src/filesystem/FsHolder.cpp:66
previously allocated by thread T22 here:
#0 0x7f8908cb94c8 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95
#1 0x7f890610d4d8 in std::__new_allocator<std::shared_ptr<medialibrary::fs::IDevice> >::allocate(unsigned long, void const*) /usr/include/c++/12/bits/new_allocator.h:137
#2 0x7f890610d789 in std::allocator_traits<std::allocator<std::shared_ptr<medialibrary::fs::IDevice> > >::allocate(std::allocator<std::shared_ptr<medialibrary::fs::IDevice> >&, unsigned long) /usr/include/c++/12/bits/alloc_traits.h:464
#3 0x7f890610d789 in std::_Vector_base<std::shared_ptr<medialibrary::fs::IDevice>, std::allocator<std::shared_ptr<medialibrary::fs::IDevice> > >::_M_allocate(unsigned long) /usr/include/c++/12/bits/stl_vector.h:378
#4 0x7f890610d789 in void std::vector<std::shared_ptr<medialibrary::fs::IDevice>, std::allocator<std::shared_ptr<medialibrary::fs::IDevice> > >::_M_realloc_insert<std::shared_ptr<medialibrary::fs::IDevice> const&>(__gnu_cxx::__normal_iterator<std::shared_ptr<medialibrary::fs::IDevice>*, std::vector<std::shared_ptr<medialibrary::fs::IDevice>, std::allocator<std::shared_ptr<medialibrary::fs::IDevice> > > >, std::shared_ptr<medialibrary::fs::IDevice> const&) /usr/include/c++/12/bits/vector.tcc:453
#5 0x7f890610dc02 in std::vector<std::shared_ptr<medialibrary::fs::IDevice>, std::allocator<std::shared_ptr<medialibrary::fs::IDevice> > >::push_back(std::shared_ptr<medialibrary::fs::IDevice> const&) /usr/include/c++/12/bits/stl_vector.h:1287
#6 0x7f890610c3b3 in vlc::medialibrary::SDFileSystemFactory::onDeviceMounted(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, bool) ../../modules/misc/medialibrary/fs/fs.cpp:151
#7 0x7f890610edd1 in vlc::medialibrary::DeviceLister::onChildrenAdded(vlc_media_tree*, input_item_node_t*, input_item_node_t* const*, unsigned long) ../../modules/misc/medialibrary/fs/devicelister.cpp:131
#8 0x7f890610f06e in vlc::medialibrary::DeviceLister::onChildrenAdded(vlc_media_tree*, input_item_node_t*, input_item_node_t* const*, unsigned long, void*) ../../modules/misc/medialibrary/fs/devicelister.cpp:105
#9 0x7f8908b01f44 in vlc_media_tree_Add ../../src/media_source/media_tree.c:303
Thread T22 created by T0 here:
#0 0x7f8908c49726 in __interceptor_pthread_create ../../../../src/libsanitizer/asan/asan_interceptors.cpp:207
#1 0x7f890798126c in netbios_ns_discover_start (/home/tom/work/out/lib/x86_64-linux-gnu/libdsm.so.3+0x626c)
#2 0x7f8908b022b5 in generic_start ../../src/modules/modules.c:275
SUMMARY: AddressSanitizer: heap-use-after-free /usr/include/c++/12/bits/shared_ptr_base.h:1666 in std::__shared_ptr<medialibrary::fs::IDevice, (__gnu_cxx::_Lock_policy)2>::get() const
Shadow bytes around the buggy address:
0x0c227fffd870: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00
0x0c227fffd880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c227fffd890: 00 00 00 00 00 00 fa fa fa fa fa fa fa fa fa fa
0x0c227fffd8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c227fffd8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fa fa
=>0x0c227fffd8c0: fa fa fa fa fa fa fa fa[fd]fd fd fd fd fd fd fd
0x0c227fffd8d0: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
0x0c227fffd8e0: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa
0x0c227fffd8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0x0c227fffd900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fa fa
0x0c227fffd910: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
Shadow byte legend (one shadow byte represents 8 application bytes):
Addressable: 00
Partially addressable: 01 02 03 04 05 06 07
Heap left redzone: fa
Freed heap region: fd
Stack left redzone: f1
Stack mid redzone: f2
Stack right redzone: f3
Stack after return: f5
Stack use after scope: f8
Global redzone: f9
Global init order: f6
Poisoned by user: f7
Container overflow: fc
Array cookie: ac
Intra object redzone: bb
ASan internal: fe
Left alloca redzone: ca
Right alloca redzone: cb
==1750167==ABORTING
4 years ago
Steve Lhomme
317f1f9569
modules: optimize string maximum size checks
No need to go through all the chars when we can test the the maximum size we
want to reach before deciding it's too much with strnlen().
4 years ago
Steve Lhomme
23890bbf82
medialibrary: fix usage of NULL config_GetUserDir result
4 years ago
Aymeric Guillien
fc9a43be3e
medialibrary: add filename field on media
4 years ago
Benjamin Arnaud
f2bfb770b3
qt/medialibrary: Add the 'vlc_ml_media_set_played' function
4 years ago
Steve Lhomme
0e448365f6
modules: use STDERR_FILENO instead of the hardcoded value
It's the same value except it's more explicit.
4 years ago
Hugo Beauzée-Luyssen
452c0aeb77
medialibrary: folder: Add nb_audio/nb_video counters
Refs #27054
4 years ago
Hugo Beauzée-Luyssen
bc03e6e46b
medialibrary: Update to 0.12.0 API changes
4 years ago
Steve Lhomme
36017f9c3a
modules: add a fancy name to internal threads
4 years ago
Rémi Denis-Courmont
4bd922622b
window: rename <vlc_vout_window.h> to <vlc_window.h>
4 years ago
Rémi Denis-Courmont
84c253cdd1
window: rename vout_window* to vlc_window*
The baseline windowing code has not been specific to the video output
for a while.
4 years ago
Steve Lhomme
b469857dec
vlc_threads: remove the thread priority when creating a thread
It is not used in POSIX systems. On other system it probably don't make a
difference anymore, only Windows has actual useful values for
VLC_THREAD_PRIORITY_XXX. The synchronization is more important than having some
threads called more often than others.
4 years ago
Lyndon Brown
11c4e593ce
musicbrainz: fix wrong url
inconsistent with that used in `coverartarchive_make_releasegroup_arturl()`.
i believe that with-dash is likely the correct form, since firstly, that
function is actually used unlike this one, and this function was also
fundamentally broken before the previous commit. also secondly, the info
at [1] seems to indicate that with-dash is correct.
[1]: https://github.com/Borewit/musicbrainz-api
4 years ago
Lyndon Brown
4d81c81c7e
musicbrainz: fix inverted logic
and fix leak with the corrected logic.
4 years ago
Lyndon Brown
e1194a5f29
Switch various user facing URLs to HTTPS
Fixes #26687 .
4 years ago
Hugo Beauzée-Luyssen
a5eb80ea3d
medialib: Expose missing album properties
4 years ago
Hugo Beauzée-Luyssen
53797783a0
medialib: Bind artist number of present tracks
4 years ago
Hugo Beauzée-Luyssen
0c4e0191e7
medialib: Bind new media group properties
4 years ago
Hugo Beauzée-Luyssen
12572d1bea
medialib: Bind duration properties
4 years ago
Hugo Beauzée-Luyssen
79905ca608
medialib: Expose playlist nb audio/video/unknown properties
4 years ago