vlc.git
7 weeks agoqt: playlist: use item title if available master
Romain Vimont [Tue, 20 Apr 2021 15:26:28 +0000 (17:26 +0200)]
qt: playlist: use item title if available

Use the meta title if it is available, use the item name otherwise.

Fixes #25648

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agoContribs: update libarchive to 3.5.1
Jean-Baptiste Kempf [Wed, 21 Apr 2021 15:22:47 +0000 (17:22 +0200)]
Contribs: update libarchive to 3.5.1

7 weeks agoContribs: update dvdnav to 6.1.1
Jean-Baptiste Kempf [Tue, 20 Apr 2021 15:50:56 +0000 (17:50 +0200)]
Contribs: update dvdnav to 6.1.1

7 weeks agoContribs: update libdvcss to 1.4.3
Jean-Baptiste Kempf [Tue, 20 Apr 2021 15:41:22 +0000 (17:41 +0200)]
Contribs: update libdvcss to 1.4.3

7 weeks agoqml: Create VideoGroupsDisplay
Benjamin Arnaud [Thu, 18 Mar 2021 09:01:45 +0000 (10:01 +0100)]
qml: Create VideoGroupsDisplay

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agoqml: Create MediaGroupDisplay
Benjamin Arnaud [Thu, 25 Mar 2021 13:59:47 +0000 (14:59 +0100)]
qml: Create MediaGroupDisplay

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agoqml: Create MediaGroupList
Benjamin Arnaud [Thu, 18 Mar 2021 09:01:33 +0000 (10:01 +0100)]
qml: Create MediaGroupList

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agoqml/VideoAll: Add support for different models
Benjamin Arnaud [Thu, 25 Mar 2021 14:00:38 +0000 (15:00 +0100)]
qml/VideoAll: Add support for different models
qml/VideoGridItem: Remove the static 'onItemDoubleClicked' behavior

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agoqml/VideoListDisplay: Add configuration for the 'mainCriteria'
Benjamin Arnaud [Fri, 26 Mar 2021 10:44:15 +0000 (11:44 +0100)]
qml/VideoListDisplay: Add configuration for the 'mainCriteria'

This makes the item more versatile. Also a little bit of cleanup.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agoqt/mainui: Add QML group support
Benjamin Arnaud [Thu, 18 Mar 2021 09:01:01 +0000 (10:01 +0100)]
qt/mainui: Add QML group support

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agoqt/qml_menu_wrapper: Add group support
Benjamin Arnaud [Fri, 26 Mar 2021 15:18:55 +0000 (16:18 +0100)]
qt/qml_menu_wrapper: Add group support

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agoqt/mlbasemodel: Add 'getData' function for QModelIndex
Benjamin Arnaud [Tue, 30 Mar 2021 08:48:03 +0000 (10:48 +0200)]
qt/mlbasemodel: Add 'getData' function for QModelIndex

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agoqt: Create MLGroupListModel
Benjamin Arnaud [Thu, 18 Mar 2021 09:01:19 +0000 (10:01 +0100)]
qt: Create MLGroupListModel

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agoqt: Create MLGroup
Benjamin Arnaud [Tue, 23 Mar 2021 08:30:02 +0000 (09:30 +0100)]
qt: Create MLGroup

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agoqt/mlvideomodel: Add support for parented media(s) in the MLVideoModel::Loader
Benjamin Arnaud [Tue, 13 Apr 2021 14:47:33 +0000 (16:47 +0200)]
qt/mlvideomodel: Add support for parented media(s) in the MLVideoModel::Loader

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agomedialibrary: Add comprehensive group support
Benjamin Arnaud [Thu, 18 Mar 2021 17:40:01 +0000 (18:40 +0100)]
medialibrary: Add comprehensive group support

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
7 weeks agoskins2: window_manager: remove trailing lines
Alexandre Janniaux [Sun, 4 Apr 2021 13:39:25 +0000 (15:39 +0200)]
skins2: window_manager: remove trailing lines

7 weeks agoskins2: window_manager: use std::unique_ptr
Alexandre Janniaux [Sun, 4 Apr 2021 14:34:22 +0000 (16:34 +0200)]
skins2: window_manager: use std::unique_ptr

7 weeks agoskins2: window_manager: use C++ for: loops
Alexandre Janniaux [Sun, 4 Apr 2021 13:39:01 +0000 (15:39 +0200)]
skins2: window_manager: use C++ for: loops

7 weeks agovideo_filter: opengl: fix error handling
Romain Vimont [Mon, 12 Apr 2021 15:58:57 +0000 (17:58 +0200)]
video_filter: opengl: fix error handling

There were 2 problems:
 - if sys->filters could not be created, then vlc_gl_filters_Delete()
   was called, causing a segfault;
 - if the requested filters could not be loaded, then
   vlc_gl_filters_Delete() was not called, leaking sys->filters.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
7 weeks agoopengl: do not overwrite output size
Romain Vimont [Mon, 12 Apr 2021 15:58:56 +0000 (17:58 +0200)]
opengl: do not overwrite output size

The opengl filter output size is provided by the caller.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
7 weeks agoopengl: determine shader version dynamically
Romain Vimont [Mon, 12 Apr 2021 15:58:55 +0000 (17:58 +0200)]
opengl: determine shader version dynamically

In the future, we would like OpenGL and OpenGL ES2 versions of a filter
to be available without compiling it twice.

Co-authored-by: Alexandre Janniaux <ajanni@videolabs.io>
Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
7 weeks agoopengl: fix missing flag initialization
Romain Vimont [Mon, 12 Apr 2021 17:04:14 +0000 (19:04 +0200)]
opengl: fix missing flag initialization

The flag filter_planes was not explicitly initialized, and non-plane
filters assume that it is set to false by default.

It still worked because the filter happens to be initialized by calloc()
in the end, but we shouldn't rely on this detail (and the other fields
are also explicitly initialized).

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
7 weeks agokms: fix use-after-free on device string
Alexandre Janniaux [Fri, 16 Apr 2021 18:26:40 +0000 (20:26 +0200)]
kms: fix use-after-free on device string

7 weeks agoconfigure.ac: simplify bitstream package check
Alexandre Janniaux [Fri, 16 Apr 2021 08:34:35 +0000 (10:34 +0200)]
configure.ac: simplify bitstream package check

7 weeks agoconfigure.ac: simplify GBM package check
Alexandre Janniaux [Fri, 16 Apr 2021 08:28:06 +0000 (10:28 +0200)]
configure.ac: simplify GBM package check

7 weeks agoVLCOpenGLES2VideoView: use dedicated CFRunLoop mode
Alexandre Janniaux [Thu, 18 Feb 2021 14:01:12 +0000 (15:01 +0100)]
VLCOpenGLES2VideoView: use dedicated CFRunLoop mode

The vlc_runloop mode is designed to be executed even when an event is
being reported by the vout_window used, ie when there is a call to
CFRunLoopInMode(CFRunLoopGetMain(), CFSTR("vlc_runloop"), ..).

By adding the default mode too, it ensures it would run in the normal
CFRunLoop too.

Async tasks can still be dispatched without the "vlc_runloop" mode but
every sync task in the display must be done under this mode to prevent
deadlock from happening between the main thread and the vout_thread.

Fixes #23571

7 weeks agoVLCOpenGLES2VideoView: enforce initial frame size
Alexandre Janniaux [Thu, 18 Feb 2021 14:01:12 +0000 (15:01 +0100)]
VLCOpenGLES2VideoView: enforce initial frame size

The UIView should have a well-defined size from the start.

7 weeks agoVLCVideoUIView: signal initial size during the opening
Alexandre Janniaux [Sat, 20 Feb 2021 09:23:59 +0000 (10:23 +0100)]
VLCVideoUIView: signal initial size during the opening

It avoids the display to open with a size bigger than the device's
screen, which could lead to out-of-memory failures.

7 weeks agoVLCVideoUIView: report event in another thread
Alexandre Janniaux [Thu, 18 Feb 2021 15:23:54 +0000 (16:23 +0100)]
VLCVideoUIView: report event in another thread

Report events from a different thread than the main thread, and continue
to execute the main CFRunLoop, but filter the events to only execute
the ones queued by potential display, ie. those tagged with the mode
"vlc_runloop".

The vlc_runloop mode is designed to be executed even when an event is
being reported by the vout_window used, ie. when there is a call to
CFRunLoopInMode(CFRunLoopGetMain(), CFSTR("vlc_runloop"), ..).

Clients should ensure they also tag their blocks with the default mode
too. Otherwise, they are likely to never be executed.

Async tasks can still be dispatched without the "vlc_runloop" mode but
every sync tasks in the display must be done under this mode to prevent
deadlock from happening between the main thread and the vout_thread,
typically with the following code:

    /* The main loop to run the block into */
    CFRunLoopRef runloop = CFRunLoopGetMain();

    /* The modes to execute the block in */
    CFStringRef modes_cfstrings[] = { kCFRunLoopDefaultMode, CFSTR("vlc_runloop") };
    CFArrayRef modes = CFArrayCreate(NULL, (const void **)modes_cfstrings,
            ARRAY_SIZE(modes_cfstrings), &kCFTypeArrayCallBacks);

    CFRunLoopPerformBlock(runloop, modes, ^{
        /* The block content to execute */
    });

    /* Don't forget to signal the runloop
    CFRunLoopWakeUp(runloop);
    CFRelease(modes);

To achieve a blocking/sync behaviour, clients can share a binary
semaphore between the block and the outside of the block. When using a
vlc_sem_t object, it must be qualified with __block to be modified
inside of the block.

Refs #23571

7 weeks agodemux: adaptive: change commands factory ownership
Francois Cartegnie [Thu, 18 Mar 2021 16:34:21 +0000 (17:34 +0100)]
demux: adaptive: change commands factory ownership

7 weeks agodemux: adaptive: fix possible bogus huge buffer level
Francois Cartegnie [Thu, 15 Apr 2021 15:54:01 +0000 (17:54 +0200)]
demux: adaptive: fix possible bogus huge buffer level

7 weeks agodemux: adaptive: remove left indirect returns since lock removal
Francois Cartegnie [Fri, 16 Apr 2021 14:47:37 +0000 (16:47 +0200)]
demux: adaptive: remove left indirect returns since lock removal

8 weeks agoContribs: update dvdread to 6.1.2
Jean-Baptiste Kempf [Sun, 18 Apr 2021 10:46:08 +0000 (12:46 +0200)]
Contribs: update dvdread to 6.1.2

Ref #18487

8 weeks agoNEWS: update from 3.0.x branch
Jean-Baptiste Kempf [Sat, 10 Apr 2021 15:43:27 +0000 (17:43 +0200)]
NEWS: update from 3.0.x branch

8 weeks agothread: Have vlc_GetCPUCount make use of _SC_NPROCESSORS_ONLN
Brad Smith [Sat, 3 Apr 2021 20:47:52 +0000 (16:47 -0400)]
thread: Have vlc_GetCPUCount make use of _SC_NPROCESSORS_ONLN

OpenBSD and other OS's use _SC_NPROCESSORS_ONLN to indicate the number
of online CPUs.

Signed-off-by: RĂ©mi Denis-Courmont <remi@remlab.net>
8 weeks agomedialibrary: Fix and update the playlist 'Convert' function
Benjamin Arnaud [Fri, 9 Apr 2021 08:00:44 +0000 (10:00 +0200)]
medialibrary: Fix and update the playlist 'Convert' function

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoqml: use cached shadows in GridItem
Prince Gupta [Mon, 12 Apr 2021 11:50:20 +0000 (17:20 +0530)]
qml: use cached shadows in GridItem

improves creation time of GridItem

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoqml: allow delegating cover background in GridItem
Prince Gupta [Mon, 12 Apr 2021 11:50:19 +0000 (17:20 +0530)]
qml: allow delegating cover background in GridItem

removes shadows

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoqml: implement GridShadow widget
Prince Gupta [Mon, 12 Apr 2021 11:50:18 +0000 (17:20 +0530)]
qml: implement GridShadow widget

provides cached selected and unselected type shadows for use in GridItem

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoqml: implement ShadowCoverGenerator
Prince Gupta [Mon, 12 Apr 2021 11:50:17 +0000 (17:20 +0530)]
qml: implement ShadowCoverGenerator

can generate shadows in a Component which then can be reused at
different places, note that shadows are only created once

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoqml: remove unnecessary components from GridItem
Prince Gupta [Mon, 12 Apr 2021 11:50:16 +0000 (17:20 +0530)]
qml: remove unnecessary components from GridItem

improve instantiation times for GridItem component

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoqt: fix controlbar profile model unique name generation
Fatih Uzunoglu [Sun, 11 Apr 2021 21:45:32 +0000 (00:45 +0300)]
qt: fix controlbar profile model unique name generation

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoqml: fix reference error in language menu control
Fatih Uzunoglu [Sun, 11 Apr 2021 21:45:31 +0000 (00:45 +0300)]
qml: fix reference error in language menu control

fixes qml errors that happens when the toolbar editor
gets opened.

Intends to be a temporary solution for #25643.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoqml: fix qml error in ButtonsLayout
Fatih Uzunoglu [Sun, 11 Apr 2021 21:45:30 +0000 (00:45 +0300)]
qml: fix qml error in ButtonsLayout

according to specifications, undefined can
not be assigned to qml type real

fixes part of #25601.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoqml: fix qml error in PlaylistListView
Fatih Uzunoglu [Sun, 11 Apr 2021 21:45:29 +0000 (00:45 +0300)]
qml: fix qml error in PlaylistListView

according to specifications, null can
not be assigned to qml type point

fixes part of #25601.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoqml: fix qml errors in OverlayMenu
Fatih Uzunoglu [Sun, 11 Apr 2021 21:45:28 +0000 (00:45 +0300)]
qml: fix qml errors in OverlayMenu

This patch fixes a component which tries to access
undefined object and tries to assign undefined to
QString.

fixes part of #25601.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoqml: fix binding loop detected warning in PlaylistDelegate
Fatih Uzunoglu [Sun, 11 Apr 2021 21:45:27 +0000 (00:45 +0300)]
qml: fix binding loop detected warning in PlaylistDelegate

fixes part of #25601.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoqml: fix binding loop detected warning in PlaylistToolbar
Fatih Uzunoglu [Sun, 11 Apr 2021 21:45:26 +0000 (00:45 +0300)]
qml: fix binding loop detected warning in PlaylistToolbar

fixes part of #25601

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
8 weeks agoinhibit: add UIKit-based inhibiter
Alexandre Janniaux [Wed, 14 Apr 2021 09:42:58 +0000 (11:42 +0200)]
inhibit: add UIKit-based inhibiter

The inhibiter code is taken from VLCKit inhibiter's handling, and is
meant to replace this handling.

8 weeks agoavcodec: encoder: fix comment location
Alexandre Janniaux [Wed, 14 Apr 2021 08:05:29 +0000 (10:05 +0200)]
avcodec: encoder: fix comment location

8 weeks agotest: Makefile.am: compile vlccoreios for tvOS
Alexandre Janniaux [Sat, 20 Feb 2021 15:59:34 +0000 (16:59 +0100)]
test: Makefile.am: compile vlccoreios for tvOS

8 weeks agotest: iosvlc: disable pinchRecognizer on tvOS
Alexandre Janniaux [Sun, 21 Feb 2021 13:35:51 +0000 (14:35 +0100)]
test: iosvlc: disable pinchRecognizer on tvOS

The pinch recognizer cannot work on tvOS, since tvOS doesn't have a
touchscreen.

8 weeks agoinput: rename vlc_input_event_times variables
Thomas Guillem [Thu, 11 Feb 2021 16:27:59 +0000 (17:27 +0100)]
input: rename vlc_input_event_times variables

8 weeks agocdda: fix format-truncation warning
Thomas Guillem [Wed, 7 Apr 2021 12:49:06 +0000 (14:49 +0200)]
cdda: fix format-truncation warning

8 weeks agocore: add --clock-master long description
Thomas Guillem [Mon, 12 Apr 2021 08:38:04 +0000 (10:38 +0200)]
core: add --clock-master long description

2 months agorist: add missing translations
Pierre Ynard [Tue, 13 Apr 2021 01:01:33 +0000 (03:01 +0200)]
rist: add missing translations

2 months agopo: add missing dav1d.c
Pierre Ynard [Tue, 13 Apr 2021 01:00:54 +0000 (03:00 +0200)]
po: add missing dav1d.c

2 months agovideo_output: fix comment and move do_snapshot
Alexandre Janniaux [Mon, 22 Mar 2021 09:14:40 +0000 (10:14 +0100)]
video_output: fix comment and move do_snapshot

The comment /* Get the subpicture to be displayed */ was written twice
in places where no subpictures were involved. In addition, do_snapshot
was computed where the rendering date was computed although it was not
used there.

Move the do_snapshot computation just before it's used, replace the
misplaced comments by comment actually describing what's follow, and
rewrite the removed comment where spu_Render actually returns the
subpicture.

2 months agoopengl: add plane filtering to mock filter
Romain Vimont [Tue, 30 Mar 2021 11:14:11 +0000 (13:14 +0200)]
opengl: add plane filtering to mock filter

This helps for testing plane filtering.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoopengl: add support for planes filtering
Romain Vimont [Tue, 30 Mar 2021 11:14:10 +0000 (13:14 +0200)]
opengl: add support for planes filtering

If config.filter_planes is set on a filter, generate one output texture
for each input texture, and call draw() for each plane separately.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoopengl: make direct sampler support multi-texture
Romain Vimont [Tue, 30 Mar 2021 11:14:09 +0000 (13:14 +0200)]
opengl: make direct sampler support multi-texture

A "direct" sampler (i.e. a sampler without interop) only supported one
texture, because the output of the previous filter was assumed to be
RGBA in a single plane.

A deinterlace filter will output several planes, so the sampler of the
next filter must be able to receive all of them.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoopengl: add support for plane samplers
Romain Vimont [Tue, 30 Mar 2021 11:14:08 +0000 (13:14 +0200)]
opengl: add support for plane samplers

A sampler gives access to the input picture, in RGBA.

Add support for giving access to individual input planes, selected by
vlc_gl_sampler_SelectPlane(), in their native format.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoopengl: expose texture sizes in sampler
Romain Vimont [Tue, 30 Mar 2021 11:14:07 +0000 (13:14 +0200)]
opengl: expose texture sizes in sampler

The number of input planes and their sizes might be useful to filters
implementation.

It could be retrieved by vlc_fourcc_GetChromaDescription(), but for
convenience, expose them in sampler.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoopengl: extract shader extensions
Romain Vimont [Tue, 30 Mar 2021 11:14:06 +0000 (13:14 +0200)]
opengl: extract shader extensions

Compute the shader extensions in a separate function, to be able to
reuse it.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoopengl: extract sampler and texture lookup names
Romain Vimont [Tue, 30 Mar 2021 11:14:05 +0000 (13:14 +0200)]
opengl: extract sampler and texture lookup names

The type and function to use depends on the texture target.

Extract the mapping to a separate function to be able to reuse it.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoopengl: replace multi-variables by arrays in GLSL
Romain Vimont [Tue, 30 Mar 2021 11:14:04 +0000 (13:14 +0200)]
opengl: replace multi-variables by arrays in GLSL

Variables were generated on the fly with an index in the name. For
example:

    uniform sampler2D Texture0;
    uniform mat3 TexCoordsMap0;
    uniform sampler2D Texture1;
    uniform mat3 TexCoordsMap1;
    uniform sampler2D Texture2;
    uniform mat3 TexCoordsMap2;

Replace them by arrays:

    uniform sampler2D Textures[3];
    uniform mat3 TexCoordsMaps[3];

This will enable to expose a GLSL function providing a color for a
particular plane number passed as a parameter.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoopengl: factorize sampler creation
Romain Vimont [Tue, 30 Mar 2021 11:14:03 +0000 (13:14 +0200)]
opengl: factorize sampler creation

Now that both types of samplers (interop and direct) use the same
fragment shader code generation, factorize their creation.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoopengl: use main shader for direct samplers
Romain Vimont [Tue, 30 Mar 2021 11:14:02 +0000 (13:14 +0200)]
opengl: use main shader for direct samplers

A sampler may receive their input picture either:
 - from an interop, uploading a picture_t
 - from a previous filter, giving an OpenGL texture directly (a "direct"
   sampler)

The fragment shader for a "direct" sampler was straightforward: the
input was always an RGBA texture. On the contrary, samplers from interop
always applied chroma conversion to expose individual pixels in RGBA.

However, deinterlace filters operate on individual input planes, so
the chroma conversion must be applied afterwards.

To prepare support for this feature, use the same fragment shader code
generation for both types of samplers.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoopengl: init fragment shader without interop
Romain Vimont [Tue, 30 Mar 2021 11:14:01 +0000 (13:14 +0200)]
opengl: init fragment shader without interop

This will allow to generate chroma conversion code for "direct"
samplers, in order to convert chroma between OpenGL filters.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoopengl: init swizzle without interop
Romain Vimont [Tue, 30 Mar 2021 11:14:00 +0000 (13:14 +0200)]
opengl: init swizzle without interop

Swizzle will be necessary even for "direct" samplers (samplers without
interop).

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoopengl: explicit texture scaling computation
Romain Vimont [Tue, 30 Mar 2021 11:13:59 +0000 (13:13 +0200)]
opengl: explicit texture scaling computation

In OpenGL, some values of picture planes scaling are hardcoded, and
might differ from the values provided by in a vlc_chroma_description_t.

Make the computation explicit and explain why.

Signed-off-by: Alexandre Janniaux <ajanni@videolabs.io>
2 months agoblock: double the possible allocation size
Alexandre Janniaux [Thu, 8 Apr 2021 13:07:25 +0000 (15:07 +0200)]
block: double the possible allocation size

An 8k RGB image doesn't fit within the maximum allocation size
constraint installed in block_Alloc. Indeed, 2^27 is 134217728 while
the RGB 8k jpeg image sample in #19979 will allocate 201326592.

In general, 8k with 4 byte per pixel can go up to 132710400, without
taking into account additional padding, so doubling the allocation size
is enough to handle those pictures, while keeping a limit for the
maximum allocation size.

Fixes #19979

2 months agoqt/mlplaylistmedia: Add the 'm_thumbnailStatus' initialize
Benjamin Arnaud [Thu, 1 Apr 2021 17:45:07 +0000 (19:45 +0200)]
qt/mlplaylistmedia: Add the 'm_thumbnailStatus' initialize

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
2 months agoqml/PlaylistMediaList: Remove the 'onItemDoubleClicked' event
Benjamin Arnaud [Thu, 1 Apr 2021 14:30:52 +0000 (16:30 +0200)]
qml/PlaylistMediaList: Remove the 'onItemDoubleClicked' event

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
2 months agoqml/PlaylistMediaDisplay: Remove deprecated '_actionAtIndex' function
Benjamin Arnaud [Tue, 30 Mar 2021 08:51:27 +0000 (10:51 +0200)]
qml/PlaylistMediaDisplay: Remove deprecated '_actionAtIndex' function

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
2 months agoqml/PlaylistMediaList: Update '_actionAtIndex' implementation
Benjamin Arnaud [Tue, 30 Mar 2021 08:51:38 +0000 (10:51 +0200)]
qml/PlaylistMediaList: Update '_actionAtIndex' implementation

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
2 months agoqt/mlplaylistmodel: Add the 'thumbnailUpdated' function
Benjamin Arnaud [Tue, 30 Mar 2021 10:54:47 +0000 (12:54 +0200)]
qt/mlplaylistmodel: Add the 'thumbnailUpdated' function

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
2 months agoqml/TableViewDelegate: Syntax cleanup
Benjamin Arnaud [Tue, 30 Mar 2021 08:52:14 +0000 (10:52 +0200)]
qml/TableViewDelegate: Syntax cleanup

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
2 months agoqt: improve volume slider control
Romain Vimont [Wed, 7 Apr 2021 16:27:06 +0000 (18:27 +0200)]
qt: improve volume slider control

The slider has some width, which must be taken into account to compute
the volume.

This avoids to control the left of the handle near 0% but the right of
the handle near 125%. Instead, it always controls the center of the
handle.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
2 months agoqt: fix volume slider control
Romain Vimont [Wed, 7 Apr 2021 16:27:05 +0000 (18:27 +0200)]
qt: fix volume slider control

When changing the volume slider with the mouse, the new value considered
the width of the complete component instead of the relevant visual part.

As a consequence, the slider did not follow the mouse correctly.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
2 months agoqt: improve right-click volume control
Romain Vimont [Wed, 7 Apr 2021 16:27:04 +0000 (18:27 +0200)]
qt: improve right-click volume control

Right-click allows to set the volume control to predefined steps (0%,
50%, 100% and 125%).

However, the last step (125%) was only reachable from the last pixel.

Instead, set to the nearest predefined value (and simplify the code for
readability).

         0%      50%      100% 125%
         |        |        |    |
         ^^^^^---------^^^^^^^^^-    (before)
         ^^^^^---------^^^^^^^---    (after)

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
2 months agoqml: fix foreground color handling in TabButtonExt
Prince Gupta [Mon, 5 Apr 2021 10:50:40 +0000 (16:20 +0530)]
qml: fix foreground color handling in TabButtonExt

fixes tab button not using accentText color when active

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
2 months agoqml: draw background from Player for resume dialog
Prince Gupta [Mon, 5 Apr 2021 10:50:39 +0000 (16:20 +0530)]
qml: draw background from Player for resume dialog

This makes all possible backgrounds for TopBar of Player at one place,
this is also necessary since application margin is applied in content
of TopBar but background don't need to follow the application margins
also controls like PlaylistView needs to overlap with TopBar's
background but not content.

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
2 months agoqml: correctly align CSD decorations in ResumeDialog
Prince Gupta [Mon, 5 Apr 2021 10:50:38 +0000 (16:20 +0530)]
qml: correctly align CSD decorations in ResumeDialog

Amends 79b4f5290d921557151e013945f478458e16b88a

Signed-off-by: Pierre Lamot <pierre@videolabs.io>
2 months agocore: use "auto" as the default clock-master source
Thomas Guillem [Thu, 1 Apr 2021 13:53:08 +0000 (15:53 +0200)]
core: use "auto" as the default clock-master source

2 months agocore: add the "auto" clock source
Thomas Guillem [Thu, 1 Apr 2021 13:31:49 +0000 (15:31 +0200)]
core: add the "auto" clock source

The "--clock-master=auto" option will select the input as the clock
source when the input can't pace (live content), and will fallback to
the "audio" source otherwise (most common case).

2 months agocore: add the "input" clock source
Thomas Guillem [Thu, 1 Apr 2021 13:31:38 +0000 (15:31 +0200)]
core: add the "input" clock source

The "--clock-master=input" option (disabled by default) allow to setup
the input_clock_t as the master clock. This will restore the VLC 3.0
behavior and use PCR update points as the clock source. Therefore, audio
and video tracks will be altered to catch-up with the input.

2 months agoes_out: constify p_master_clock
Thomas Guillem [Wed, 31 Mar 2021 13:59:34 +0000 (15:59 +0200)]
es_out: constify p_master_clock

Since it's used as a "weak ref" and should not be accessed directly.

2 months agoes_out: change clocks allocation order
Thomas Guillem [Wed, 31 Mar 2021 13:52:18 +0000 (15:52 +0200)]
es_out: change clocks allocation order

No functional changes.

2 months agoinput_clock: add the ability to drive the main_clock
Thomas Guillem [Wed, 31 Mar 2021 12:38:49 +0000 (14:38 +0200)]
input_clock: add the ability to drive the main_clock

2 months agoes_out: refactor clock_source cat selection
Thomas Guillem [Wed, 31 Mar 2021 13:33:33 +0000 (15:33 +0200)]
es_out: refactor clock_source cat selection

No functional changes.

2 months agocore: change the "--clock-master" type to string
Thomas Guillem [Wed, 31 Mar 2021 13:10:04 +0000 (15:10 +0200)]
core: change the "--clock-master" type to string

Keeping compatibility with the legacy type (0 and 1).

2 months agolibvlc: fix title count conditional for chapter descriptions
Mark Lee [Thu, 8 Apr 2021 17:30:53 +0000 (18:30 +0100)]
libvlc: fix title count conditional for chapter descriptions

Chapter descriptions were not being returned for valid title
indices.

The conditional check would return true (and therefore abort the
method) when the requested title index was less than the title
count, i.e. when it was valid.

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
2 months agocontrib: rav1e: update to v0.4.1
Tristan Matthews [Thu, 8 Apr 2021 15:05:30 +0000 (11:05 -0400)]
contrib: rav1e: update to v0.4.1

 * Avoid a crash for 1pixel videos
 * Make write_color_config() spec compliant
 * Fix an intermittent test failure
 * Make sure Intel AVX512 support works
 * Update v_frame to 0.2.1

 Source: https://github.com/xiph/rav1e/releases/tag/v0.4.1

2 months agoinput: add url parsing of `input-slave` option
Alaric Senat [Fri, 2 Apr 2021 14:30:07 +0000 (16:30 +0200)]
input: add url parsing of `input-slave` option

As shown in #25549, we need to extract the path from the url in order to
check the file extension without the eventual HTTP's options noise.

Fixes: #25549
Signed-off-by: Thomas Guillem <thomas@gllm.fr>
2 months agodemux: adaptive: delegate chunk source creation to manager
Francois Cartegnie [Thu, 18 Mar 2021 20:03:29 +0000 (21:03 +0100)]
demux: adaptive: delegate chunk source creation to manager

2 months agodemux: adaptive: always create chunk with range
Francois Cartegnie [Thu, 18 Mar 2021 12:48:11 +0000 (13:48 +0100)]
demux: adaptive: always create chunk with range

2 months agodemux: adaptive: add getter for chunk type
Francois Cartegnie [Thu, 18 Mar 2021 10:26:53 +0000 (11:26 +0100)]
demux: adaptive: add getter for chunk type

2 months agodemux: adaptive: add inheritable wrapper deleter
Francois Cartegnie [Sun, 10 Jan 2021 16:05:02 +0000 (17:05 +0100)]
demux: adaptive: add inheritable wrapper deleter