VLC merge requestshttps://code.videolan.org/videolan/vlc/-/merge_requests2024-01-29T09:29:14Zhttps://code.videolan.org/videolan/vlc/-/merge_requests/1798Draft: Expose input/vout/aout/decoders modules to the player2024-01-29T09:29:14ZThomas GuillemDraft: Expose input/vout/aout/decoders modules to the playerThis MR tries to address this issue: #21997
Draft since the branch is not finished:
- Only the input part is implemented
- Missing a way to expose it from the player (For the Qt intf for example)
Before continuing, I wanted to be sur...This MR tries to address this issue: #21997
Draft since the branch is not finished:
- Only the input part is implemented
- Missing a way to expose it from the player (For the Qt intf for example)
Before continuing, I wanted to be sure you agree with:
- The stream modification to get module names
- How I use the info_category_t API.4.0Thomas GuillemThomas Guillemhttps://code.videolan.org/videolan/vlc/-/merge_requests/1790RFC: videotoolbox: ignore null imageBuffer and continue2024-01-08T08:36:27ZZhao ZhiliRFC: videotoolbox: ignore null imageBuffer and continueI have got a video which has a few frames corrupted. Videotoolbox DecoderCallback doesn't indict error via OSStatus but with null CVPixelBufferRef. After a few frames, it can continue with no problem. So it's not a critical error in this...I have got a video which has a few frames corrupted. Videotoolbox DecoderCallback doesn't indict error via OSStatus but with null CVPixelBufferRef. After a few frames, it can continue with no problem. So it's not a critical error in this case.
The following commit message shows that such case has happened before, but I don't know if it can recover in that case or not.
```
commit 89b96cdadfea8d8ed3095238f811dc5865950052
Author: Thomas Guillem <thomas@gllm.fr>
Date: Fri Mar 2 17:16:57 2018 +0100
videotoolbox: remove imageBuffer assert
Since this case can finally happen.
```
@tguillem
Ping me if you need the sample file.4.0Thomas GuillemThomas Guillemhttps://code.videolan.org/videolan/vlc/-/merge_requests/1779access: satip: tag commands with User-Agent2022-08-18T11:01:36ZFrançois Cartegnieaccess: satip: tag commands with User-AgentAvoid confusing network traces due to fallback from live555Avoid confusing network traces due to fallback from live5554.0François CartegnieFrançois Cartegniehttps://code.videolan.org/videolan/vlc/-/merge_requests/1758opengl: interop_vaapi: link EGL directly2024-01-08T07:46:26ZAlexandre Janniauxajanni@videolabs.ioopengl: interop_vaapi: link EGL directlyUse EGL symbols from EGL library directly instead of loading through
vlc_gl_GetProcAddress. In the future, we might want to use runtime
loading through the egl provider capabilities but it's currently unused
and loading EGL through GLX (...Use EGL symbols from EGL library directly instead of loading through
vlc_gl_GetProcAddress. In the future, we might want to use runtime
loading through the egl provider capabilities but it's currently unused
and loading EGL through GLX (vlc_gl_GetProcAddress) is leading to
undefined results and crash.
With this patch, the interop_vaapi correctly fails when running with GLX
and it falls back on EGL to load the interop.
Fixes #268134.0Alexandre Janniauxajanni@videolabs.ioAlexandre Janniauxajanni@videolabs.iohttps://code.videolan.org/videolan/vlc/-/merge_requests/1720nvdec: rework the function loading/cuInit2022-06-21T13:48:13ZSteve Lhommenvdec: rework the function loading/cuInitWith `vlc_once()` we will only ever call `cuInit()` once in the process. If it fails it will never be tried again even though it might work.
Only load the DLL and load functions once while we're at it.With `vlc_once()` we will only ever call `cuInit()` once in the process. If it fails it will never be tried again even though it might work.
Only load the DLL and load functions once while we're at it.4.0https://code.videolan.org/videolan/vlc/-/merge_requests/1709test: thread: set default asan options to use_sigaltstack=02022-06-03T06:26:02ZAlexandre Janniauxajanni@videolabs.iotest: thread: set default asan options to use_sigaltstack=0use_sigaltstack=1 has been the default in ASAN for a few year, but
starting with glibc 2.34, cancellation (because of setjmp/longjmp usage)
is corrupting the stack allocated by ASAN, leading to check failure when
ASAN is ready to check t...use_sigaltstack=1 has been the default in ASAN for a few year, but
starting with glibc 2.34, cancellation (because of setjmp/longjmp usage)
is corrupting the stack allocated by ASAN, leading to check failure when
ASAN is ready to check the application state. It does happen both with
VLC itself, and the tests doing cancellation, making test_thread fail in
particular.
Disable sigaltstack option in ASAN by default to avoid issue with thread
cancellation corrupting the ASAN stack markers.4.0https://code.videolan.org/videolan/vlc/-/merge_requests/1702Draft: replace json parser to remove webservices/json2022-08-18T11:00:02ZMehdi SabwatDraft: replace json parser to remove webservices/jsonThis patchset prepares the removal of the json parser in "misc/webservices/", it was used in chromecast, acoustid and musicbrainz.This patchset prepares the removal of the json parser in "misc/webservices/", it was used in chromecast, acoustid and musicbrainz.4.0https://code.videolan.org/videolan/vlc/-/merge_requests/1688demux: h26x: fix timestamp2022-08-18T11:16:52ZZhao Zhilidemux: h26x: fix timestampfeed_dts is set to VLC_TICK_0 and never increase, which leads to
p_block_in->i_dts has a fixed value. Packetizer doesn't overwrite
the dts, so dts output from packetizer has the fixed value too.
The whole idea to get the pts-dts offset i...feed_dts is set to VLC_TICK_0 and never increase, which leads to
p_block_in->i_dts has a fixed value. Packetizer doesn't overwrite
the dts, so dts output from packetizer has the fixed value too.
The whole idea to get the pts-dts offset is broken.4.0François CartegnieFrançois Cartegniehttps://code.videolan.org/videolan/vlc/-/merge_requests/1685Draft: add AVS3 decoder by default2023-03-13T08:23:01ZSteve LhommeDraft: add AVS3 decoder by defaultSits on top of rebased !1188.
This can probably be backported (just the same way we added dav1d).Sits on top of rebased !1188.
This can probably be backported (just the same way we added dav1d).4.0https://code.videolan.org/videolan/vlc/-/merge_requests/1627adaptive: use std::unique_ptr and auto when possible2024-01-30T09:17:48ZAlexandre Janniauxajanni@videolabs.ioadaptive: use std::unique_ptr and auto when possibleDraft because depends it might depends on !1615, and I still have a few things to check.
It uses auto to simplify the iterator type, easing the transition from `vector<Segment*>::iterator` to `vector<unique_ptr<T>>::iterator`, while al...Draft because depends it might depends on !1615, and I still have a few things to check.
It uses auto to simplify the iterator type, easing the transition from `vector<Segment*>::iterator` to `vector<unique_ptr<T>>::iterator`, while also removing iterators from the loops.
It then change the vector to use unique_ptr, making a clear ownership signal and ensuring there is no leaks of segments.
Note that among the auto use, it uses `auto` as a lambda parameter which is C++14.4.0Alexandre Janniauxajanni@videolabs.ioAlexandre Janniauxajanni@videolabs.iohttps://code.videolan.org/videolan/vlc/-/merge_requests/1614qt: introduce helper functions to create compressed OpenGL textures2022-12-16T17:07:18ZFatih Uzunoğluqt: introduce helper functions to create compressed OpenGL texturesThere seems to be many advantages of using compressed textures. Qt 5.11 apparently [brought changes](https://www.qt.io/blog/2018/05/07/compressed-textures-in-qt-5-11) to support more variety of them.
I wanted to explore the idea of usin...There seems to be many advantages of using compressed textures. Qt 5.11 apparently [brought changes](https://www.qt.io/blog/2018/05/07/compressed-textures-in-qt-5-11) to support more variety of them.
I wanted to explore the idea of using compressed textures for certain images in the interface. For example, content images that have to load in high resolution. Depending on the situation, it might make more sense to cache the images as KTX textures, rather than JPEGs, and load them directly.
Dealing with GPUs is not something I'm very familiar with, so you can leave any kind of feedback.
Advantages:
* Reduction in VRAM usage.
* No need to decode JPG/PNG/etc.
* This does not mean much, as they are supposed to be loaded asynchronously in a separate thread.
Disadvantages:
* Every compressed texture algorithm seem to be lossy.
* According to my tests, Qt 5.11 does not seem to support smooth transformation of compressed textures.
* Qt does not support KTX2 format and KTX1 does not have "super compression" feature. If I understood it correctly, it allows binary compression on the data. Because of lack of this feature, KTX1 files are often large.
* Qt <6.0 has only experimental support for compressed atlas textures. This is important for reducing needed rendering batches.
* Qt <6.0 only support ETC1/ETC2 compression for atlas textures (when `QSG_ENABLE_COMPRESSED_ATLAS` environment variable is set). This is probably useless here because desktop GPUs do not support this compression scheme natively, but they emulate it. I still tried it to see how it works, but it just did not work for me.
* Qt 6.0 seems to have proper support: https://bugreports.qt.io/browse/QTBUG-78582.4.0https://code.videolan.org/videolan/vlc/-/merge_requests/1612Draft: [3.0] libaribcaption 3.x backport2022-08-18T11:01:11Zxqqxqq@xqq.imDraft: [3.0] libaribcaption 3.x backportBackport libaribcaption into 3.0.x branch.
Still WIP.Backport libaribcaption into 3.0.x branch.
Still WIP.3.0.x maintenancehttps://code.videolan.org/videolan/vlc/-/merge_requests/1571qt: prepare hotkey editor for prefs redesign2022-08-18T12:35:22ZLyndon Brownqt: prepare hotkey editor for prefs redesignThis is another foundational chunk of work upon which I'm building a redesign for the prefs interface.
This focuses upon preparing the hotkey editor for being moved out of the simple and advanced general preference interfaces. I intend ...This is another foundational chunk of work upon which I'm building a redesign for the prefs interface.
This focuses upon preparing the hotkey editor for being moved out of the simple and advanced general preference interfaces. I intend ultimately for there to be a sidebar giving access to the three general preference interfaces, the hotkey editor and the ML manager, along with an entry for the reset-all function.
This includes untangling the hotkey editor from `ConfigControl`, moving it to its own files, and converting it to be `.ui` based.
Note that to make things much easier, and because the hotkey editor doesn't fit very well in advanced view anyway, it is removed from there as an initial step, as discussed/justified in the commit log.4.0https://code.videolan.org/videolan/vlc/-/merge_requests/1570qt: convert prefs dialog to be `.ui` based2022-08-18T12:35:22ZLyndon Brownqt: convert prefs dialog to be `.ui` basedThis is a chunk of foundational work upon which I'm building a prefs interface redesign.
The primary thing achieved here is converting the prefs dialog construction to use of a `.ui` file, which makes the code a lot cleaner and easier t...This is a chunk of foundational work upon which I'm building a prefs interface redesign.
The primary thing achieved here is converting the prefs dialog construction to use of a `.ui` file, which makes the code a lot cleaner and easier to understand, and allows viewing/editing the dialog UI in Qt Creator/Designer.4.0https://code.videolan.org/videolan/vlc/-/merge_requests/1561Draft: add support for audio (de)emphasis2022-06-21T13:49:17ZSteve LhommeDraft: add support for audio (de)emphasisSome CDs, DV, RTP, MPEG Audio files have an emphasis flag set to signify the
audio should be "de-emphasis'ed" for proper playback.
This is similar to a transfer function for audio tracks. With different algorithms to use depending on th...Some CDs, DV, RTP, MPEG Audio files have an emphasis flag set to signify the
audio should be "de-emphasis'ed" for proper playback.
This is similar to a transfer function for audio tracks. With different algorithms to use depending on the source type and the flag.
It's normally boosting the trebles and reducing the bass. So when played back, without the intended correction it sounds "bright".
This patchset carries the flag over and tries to add a filter to correct the audio before it's played back. On Windows the API doesn't provide any way to let the hardware do the conversion so we have to do it in software. There's an libavfilted-based converter added in this patchset. We do could our own local implementation with some biquad filters.
In many places the emphasis bits when reading/writing is disabled. Now we can read it properly. We could also write it as long as the output format knows about that flavor, otherwise a conversion should be done. Most of the time it's the same one as the one used in CDs. Soon Matroska will also [provide this information](https://github.com/ietf-wg-cellar/matroska-specification/issues/582).4.0https://code.videolan.org/videolan/vlc/-/merge_requests/1509Draft: packetizer: export crop info for h264/hevc2022-08-18T11:16:52ZZhao ZhiliDraft: packetizer: export crop info for h264/hevcLoosely related to !1406. Leave the patch at here as a note.Loosely related to !1406. Leave the patch at here as a note.4.0https://code.videolan.org/videolan/vlc/-/merge_requests/1460[3.0] demux: mkv: backport crop fixes + warning fix2022-04-25T11:20:55ZSteve Lhomme[3.0] demux: mkv: backport crop fixes + warning fix3.0.x maintenancehttps://code.videolan.org/videolan/vlc/-/merge_requests/1432minor skins2 fixes2022-08-18T11:16:52Zmartinminor skins2 fixesSplit out from the chromecast branchSplit out from the chromecast branch4.0https://code.videolan.org/videolan/vlc/-/merge_requests/1431Draft: chromecast fixes and subtitles support2022-08-18T11:16:51ZmartinDraft: chromecast fixes and subtitles supportMostly just rebased the chromecast subtitles branch + a couple of fixes to make chromecast work in master.
Not sure if I can follow up this very much, it was just a quick (frantic) hack so we could watch a movie with subtitles. But this...Mostly just rebased the chromecast subtitles branch + a couple of fixes to make chromecast work in master.
Not sure if I can follow up this very much, it was just a quick (frantic) hack so we could watch a movie with subtitles. But this way people at least can avoid redoing the rebase etc.4.0https://code.videolan.org/videolan/vlc/-/merge_requests/1428wayland: output: add compositor name/description2022-06-21T13:49:09ZAlexandre Janniauxajanni@videolabs.iowayland: output: add compositor name/descriptionVersion 4 of the protocol brings name/description callback, allowing
much better naming than wayland proxy names in the interface. When the
protocol is available, pick it, otherwise keep the fallback to wayland
proxy names and model/make...Version 4 of the protocol brings name/description callback, allowing
much better naming than wayland proxy names in the interface. When the
protocol is available, pick it, otherwise keep the fallback to wayland
proxy names and model/make description.
See the MR[^1] on wayland repository for more details.
[^1]: https://gitlab.freedesktop.org/wayland/wayland/-/merge_requests/1094.0