- 19 Nov, 2016 11 commits
-
-
Rémi Denis-Courmont authored
Controls can be processed if the playlist is empty. They just do nothing. Conversely, stop need not be processed if the playlist was already killed.
-
Rémi Denis-Courmont authored
User interfaces should only add new items under the playlist or the media library nodes. In particular, they have no business adding or removing SD items.
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
This removes the insertion offset parameter to playlist_Add(), playlist_AddExt() and playlist_AddInput(). intf_InsertItem() was the only occurrence where the offset was zero, a side effect of how the command line is parsed backward. This is now done explicitly with playlist_NodeAddInput(). A non-zero positive offset made no sense, since: - the number of children of a node can change asynchronously while the playlist lock, - the back-end asserted or triggered undefined behaviour if the offset was out of range. DBus was the only occurrence of this bug (see also #17451 comment:4), and has been fixed in an earlier change. In all remaining call sites, the offset was PLAYLIST_END. This removes the parameter which would otherwise constitute a useless constant.
-
Rémi Denis-Courmont authored
- Handle and report errors. - Fix and improve documentation.
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
This fixes potential assertion failures. Insertion position must always be valid.
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
The flag is sort-of-implemented, but never actually used.
-
Rémi Denis-Courmont authored
They are set but never used. In practice, the (following) position parameter determines whether the item is inserted or appended. A positive position means insertion; PLAYLIST_END means appendment.
-
Rémi Denis-Courmont authored
PLAYLIST_SPREPARSE is not used anywhere. PLAYLIST_PREPARSE is set but has no effects whatsoever.
-
- 18 Nov, 2016 21 commits
-
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
Remove items from the arrays takes time, especially during playlist destruction. In particular removing an item from the current array requires a linear search and then a memmove(); that was the bottleneck with quadratic complexity while deleting the playlist. (Now the bottleneck is removing items from their parent.) Destroying the arrays early on skips those steps entirely.
-
Rémi Denis-Courmont authored
Regarding input item look-ups, this reduces asymptotic complexity from linear to logarithmic time. Regarding ID look-ups, this reduces insertion and deletion time to logarithmic. Previously it degraded to linear time because of memcpy() and memmove() in ARRAY_APPEND and ARRAY_REMOVE macros. This removes the "all_items" array, and its missing error handlers. Finally, this adds support for allocating more than INT_MAX items during the entire lifetime of the VLC instance. (The maximum number of _concurrent_ items is still INT_MAX, but memory would probably run out before that is reached.) Note: Item deletion still requires linear time. And playlist deletion still consequently requires quadractic time because of the "current" array.
-
Jean-Baptiste Kempf authored
This reverts commit 6290ebf6. It behaves badly depending on the CMake Version, and on our buildbots...
-
Rémi Denis-Courmont authored
LibVLC has zero business messing with process state. This breaks apps other than VLC and other libraries in the same process.
-
Rémi Denis-Courmont authored
vlc.exe already depends on kernel32.dll, so there is no need to load it explicitly. It can simply be looked up.
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
Regression from e44f6165
-
Signed-off-by:
Jean-Baptiste Kempf <jb@videolan.org>
-
Signed-off-by:
Jean-Baptiste Kempf <jb@videolan.org>
-
Signed-off-by:
Jean-Baptiste Kempf <jb@videolan.org>
-
Signed-off-by:
Jean-Baptiste Kempf <jb@videolan.org>
-
Thomas Guillem authored
-
Thomas Guillem authored
-
Thomas Guillem authored
Listen to playlist "input-current" to update the current input_thead_t, and listen to input "intf-event" to update the current vout. The vout/input don't need to be fetched when processing an action, this removes one FIXME, but this adds more lock complexity. This will be mainly needed for the next commit, in order to listen to mouse events from the vout.
-
Thomas Guillem authored
The boolean variable "viewpoint-changeable" will be used by interfaces in order to know if 360° navigation should be handled.
-
vlc_dictionary_all_keys requires the caller to not only release the returned value, but also the entities this value refers to; these changes fixes a memory-leak due to not doing the latter. Signed-off-by:
Pierre Ynard <linkfanel@yahoo.fr>
-
- 17 Nov, 2016 8 commits
-
-
Rémi Denis-Courmont authored
As things stood, the input was paused at EOF... and when resumed would get straight back into pause. This adds a flag to heep track of the occurrence of pause at EOF. If it occurs a second time in a row, terminate the input thread loop. If however the user seeks backward and resume, clear the flag and resume playback normally.
-
Rémi Denis-Courmont authored
Destroy remaining playlist items normally. This does NOT fix #17652.
-
Rémi Denis-Courmont authored
The "current" array is *not* sorted by ID. Binary search cannot work there. (Maybe this should be a linked-listed instead.)
-
Rémi Denis-Courmont authored
Forcing an input item into a playlist item breaks common clean-up procedures.
-
It is necessary because nodes are created with the RO flag. Signed-off-by:
Rémi Denis-Courmont <remi@remlab.net>
-
Rémi Denis-Courmont authored
-
Rémi Denis-Courmont authored
Regression from cc67adbf.
-
François Cartegnie authored
-