medialibrary merge requestshttps://code.videolan.org/videolan/medialibrary/-/merge_requests2024-01-07T19:01:45Zhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/761SFTP: support safer ssh key exchange with OpenSSL2024-01-07T19:01:45ZMarin BaronSFTP: support safer ssh key exchange with OpenSSLUse the header in this repo with the right path
https://code.videolan.org/videolan/vlc-android/-/merge_requests/1820Use the header in this repo with the right path
https://code.videolan.org/videolan/vlc-android/-/merge_requests/1820https://code.videolan.org/videolan/medialibrary/-/merge_requests/740portability: check that special header files exist2024-01-02T01:23:36ZSean McGovernportability: check that special header files existSome of these headers are Linux-specific.Some of these headers are Linux-specific.https://code.videolan.org/videolan/medialibrary/-/merge_requests/757CI: Bump win64 image2023-10-19T16:23:06ZAlaric SenatCI: Bump win64 imagehttps://code.videolan.org/videolan/medialibrary/-/merge_requests/748DRAFT: use meson from the sysrtem2023-01-06T13:16:16ZThomas GuillemDRAFT: use meson from the sysrtemhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/747Bump libvlcpp submodule2023-01-06T09:40:11ZThomas GuillemBump libvlcpp submoduleFix build with libvlc_audio_set_channel API changes.Fix build with libvlc_audio_set_channel API changes.https://code.videolan.org/videolan/medialibrary/-/merge_requests/215Media:Filename sorting improvement2022-08-08T06:30:36ZJian LiMedia:Filename sorting improvementwhen filename starts with number or ends with number , order by filename and number. like '10 song','9 song','11 song', sort to '9 song', '10 song', '11 song'when filename starts with number or ends with number , order by filename and number. like '10 song','9 song','11 song', sort to '9 song', '10 song', '11 song'https://code.videolan.org/videolan/medialibrary/-/merge_requests/200Filename sorting improvement2022-08-04T09:49:50ZJian LiFilename sorting improvementwhen filename starts with number or ends with number , order by filename and number.
like '10 song','9 song','11 song', sort to '9 song', '10 song', '11 song'when filename starts with number or ends with number , order by filename and number.
like '10 song','9 song','11 song', sort to '9 song', '10 song', '11 song'Hugo Beauzée-LuyssenHugo Beauzée-Luyssenhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/705DeviceLister: Add ZFS support2022-07-25T16:39:11ZLucas RansanDeviceLister: Add ZFS supporthttps://code.videolan.org/videolan/medialibrary/-/merge_requests/697Bump libvlcpp submodule2022-07-19T11:16:09ZHugo Beauzée-LuyssenBump libvlcpp submodule0.13.0Hugo Beauzée-LuyssenHugo Beauzée-Luyssenhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/655Draft: Reduce the number of triggers2022-05-16T06:11:11ZHugo Beauzée-LuyssenDraft: Reduce the number of triggersFor now this is only an investigation for #373For now this is only an investigation for #3730.12.0https://code.videolan.org/videolan/medialibrary/-/merge_requests/659Thumbnails: add media option no-iteract2022-05-11T09:03:33ZDuncan McNamaraThumbnails: add media option no-iteractBecause vlc-android and the medialibrary now share the same libvlc
instance, dialogs spawned in libvlc while opening a media to generate a
thumbnail will be shown to user. This should not happen, and with the
no-interact option it won't.Because vlc-android and the medialibrary now share the same libvlc
instance, dialogs spawned in libvlc while opening a media to generate a
thumbnail will be shown to user. This should not happen, and with the
no-interact option it won't.https://code.videolan.org/videolan/medialibrary/-/merge_requests/591meson: Check if -latomic is needed to link2022-02-11T12:38:34ZHugo Beauzée-Luyssenmeson: Check if -latomic is needed to linkShould fix #411Should fix #4110.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/582MediaLibrary: Don't rely on the database to remove all tables2022-01-25T09:01:54ZHugo Beauzée-LuyssenMediaLibrary: Don't rely on the database to remove all tablesRefs #405Refs #4050.11.xDuncan McNamaraDuncan McNamarahttps://code.videolan.org/videolan/medialibrary/-/merge_requests/589LockFile: include sys/stat.h2022-01-23T02:17:25ZSean McGovernLockFile: include sys/stat.hAt the very least, FreeBSD requires this for the definitions of `S_IRUSR` and `S_IWUSR`.At the very least, FreeBSD requires this for the definitions of `S_IRUSR` and `S_IWUSR`.0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/585CI: Bump prebuilt image tags2022-01-20T12:03:11ZHugo Beauzée-LuyssenCI: Bump prebuilt image tags0.11.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/482i386/macOS support: include fixup header where needed2021-10-04T07:36:28ZFelix Paul Kühnefkuehne@videolan.orgi386/macOS support: include fixup header where neededWhen compiling for i386 on macOS or for the 32bit i386 iPhone Simulator, thread_local is not available. This was correctly detected by the build script but since the Fixup header was not included, the replacement was not used leading to ...When compiling for i386 on macOS or for the 32bit i386 iPhone Simulator, thread_local is not available. This was correctly detected by the build script but since the Fixup header was not included, the replacement was not used leading to compilation failure.https://code.videolan.org/videolan/medialibrary/-/merge_requests/301Workaround ban folder crash2021-10-01T15:51:20ZHugo Beauzée-LuyssenWorkaround ban folder crashhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/471Optimize sqlite::Connection::updateHook2021-10-01T14:25:25ZHugo Beauzée-LuyssenOptimize sqlite::Connection::updateHookThe lookup in the hooks container causes a temporary string to be created & destroyed each time the hook is invoked, which will happen at least once per insert/update/delete, and likely more when triggers get invoked.
The save is not ma...The lookup in the hooks container causes a temporary string to be created & destroyed each time the hook is invoked, which will happen at least once per insert/update/delete, and likely more when triggers get invoked.
The save is not major, but since it seems most of the time is now spent in malloc/free, that's still a nice save.
This also uses xxHash instead of the default C++ hash, so this is based on !470
before:
![before](/uploads/76f2649125baa07bbb8a67908781948f/without_optim.png)
after:
![after](/uploads/93c39b8e53e3082e46c5845990b446d8/with_optim.png)0.10.xhttps://code.videolan.org/videolan/medialibrary/-/merge_requests/383FsDiscoverer: Don't abort the discovery if a subfolder isn't readable2021-04-27T15:34:06ZHugo Beauzée-LuyssenFsDiscoverer: Don't abort the discovery if a subfolder isn't readableIf we can browse the root folder, then the device is readable, and only
the subfolder that are not accessible should be ignored.
This reverts 0def5ee6a2a89df1f4c00b822aad1316df4f2573
Fix #307If we can browse the root folder, then the device is readable, and only
the subfolder that are not accessible should be ignored.
This reverts 0def5ee6a2a89df1f4c00b822aad1316df4f2573
Fix #307https://code.videolan.org/videolan/medialibrary/-/merge_requests/366[RFC] Single instance2021-02-15T17:51:30ZRomain Vimont[RFC] Single instanceIn VLC, loading the medialibrary module (`Open()`) is done during VLC start, unless `--no-media-library` is passed. The fact that the module is correctly opened determines if the medialib UI should be enabled.
However, the medialib init...In VLC, loading the medialibrary module (`Open()`) is done during VLC start, unless `--no-media-library` is passed. The fact that the module is correctly opened determines if the medialib UI should be enabled.
However, the medialib initialization is lazy (`Init()`/`initialize()` is called the first time the medialib is needed, i.e. later).
To enforce a single medialib instance, we want to know immediately (on medialibrary module loading) if the single instance file lock can be acquired, to be able to enable/disable the medialib UI as needed. However, the file lock path depends on parameters passed to `initialize()` (`ml.pid` in the mlFolderPath), which is called later.
Therefore, split initialize() in two parts:
1. `configure(dbPath, mlFolderPath)`: set the db path and ml folder path
2. `initialize(mlCallback)`: initialize the database
The existing `initialize(dbPath, mlFolderPath, mlCallback)` is kept for convenience to do both `configure(dbPath, mlFolderPath)`+`initialize(mlCallback)` (and make the tests happy).
Then acquire the file lock on `configure()` (and return a `bool` to let the caller know if the database can be used).
Remarks:
- the feature uses `flock()`, so something else is necessary for Windows.
- the file lock is acquired during the `configure()` call, which is not obvious from the name.
- the lock is `ml.pid` in the `mlFolderPath` directory, maybe its named should be derived from `dbPath` instead?
On VLC, this branch disables the medialib if the lock is already acquired): https://code.videolan.org/rom1v/vlc/-/commits/ml_single_instance