Projects
Extra
vlc-beta
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 193
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/extras/tools/SHA512SUMS -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/extras/tools/SHA512SUMS
Changed
@@ -14,7 +14,7 @@ d24849b93de58b20f518c071687e7bfa653a96600382f36c4cf7fc1047656458f75f093b911b786b18b6931b2453cb60868ecbe07cc7d2984e5981a874b34942 help2man-1.47.6.tar.xz 8d23dde18525dccaa648ca01df40151e7f00cec4846bd611c8970dbcfc1fb57a453facfe4d41462e7c3c8bb548d44b961a04e4fc3073ab6b65063e53f42bf6fd nasm-2.14.tar.gz 37b3a421419b16930e53181c431fe3b4afd55ac54733a5df08376641fd2fb88eeb73ee7abe3788f3e491e7c1b215c7f35aefa66f44b09008ad22b76ab2998830 ninja-1.11.1.tar.gz -62e633e07e7e8be1bf4f62f9e5a2df9535750fc0047ee5c21b17bc851d190cc0cf8e6696614692091013dc72e68aa23d2c1fe04500e146f56876591250474d04 meson-1.9.0.tar.gz +e5a167ff035f1494d6b1df7d3bf6feb37aa6421222fd27bfbebb36de4c7c3083e327679b82b7d9d3d4a2cc4dc2a3babb7cbf03358e4a2784d47eb34502014a1c meson-1.9.1.tar.gz 27acef46d9eb67203d708b57d80b853f76fa4b9c2720ff36ec161e6cdf702249e7982214ddf60bae75511aa79bc7d92aa27e3eab7ef9c0f5c040e8e42e76a385 libtool-2.4.7.tar.gz 60599f5c3168a287fe3a35062fd2e32e0b73433fce820bfd18d28b0e3bd7a8fefde6d6f0505fbbc2d664119ab7c539269184993843289932c895847ea1ab9f04 libtool-2.5.4.tar.gz 855ebce5ff36753238a44f14c95be7afdc3990b085960345ca2caf1a2db884f7db74d406ce9eec2f4a52abb8a063d4ed000a36b317c9a353ef4e25e2cca9a3f4 gperf-3.1.tar.gz
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/extras/tools/packages.mak -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/extras/tools/packages.mak
Changed
@@ -49,7 +49,7 @@ HELP2MAN_VERSION=1.47.6 HELP2MAN_URL=$(GNU)/help2man/help2man-$(HELP2MAN_VERSION).tar.xz -MESON_VERSION=1.9.0 +MESON_VERSION=1.9.1 MESON_URL=https://github.com/mesonbuild/meson/releases/download/$(MESON_VERSION)/meson-$(MESON_VERSION).tar.gz NINJA_VERSION=1.11.1
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/modules/codec/webvtt/subsvtt.c -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/modules/codec/webvtt/subsvtt.c
Changed
@@ -777,9 +777,6 @@ if( psz_start == NULL || *psz_start == 0 ) psz_start = p_tagnode->psz_attrs; - if( !p_matchsel ) /* attribute check only */ - return *psz_start != '\0'; - return MatchAttribute( psz_start, p_matchsel->psz_name, p_matchsel->match ); } }
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/modules/gui/qt/Makefile.am -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/modules/gui/qt/Makefile.am
Changed
@@ -1623,6 +1623,7 @@ tests/test_ml_model.cpp \ util/base_model.hpp util/base_model_p.hpp util/base_model.cpp \ util/listcache.hpp \ + util/vlctick.cpp util/vlctick.hpp \ util/locallistcacheloader.hpp \ medialibrary/mlqmltypes.hpp \ medialibrary/mlbasemodel.hpp medialibrary/mlbasemodel.cpp \ @@ -1636,6 +1637,7 @@ util/base_model.moc.cpp \ util/listcache.moc.cpp \ util/locallistcacheloader.moc.cpp \ + util/vlctick.moc.cpp \ medialibrary/mlqmltypes.moc.cpp \ medialibrary/mlbasemodel.moc.cpp \ medialibrary/medialib.moc.cpp \
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/modules/gui/qt/meson.build -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/modules/gui/qt/meson.build
Changed
@@ -1195,6 +1195,7 @@ 'tests/test_ml_model.cpp', 'tests/vlc_stub_modules.cpp', 'util/base_model.cpp', + 'util/vlctick.cpp', 'medialibrary/mlbasemodel.cpp', 'medialibrary/medialib.cpp', 'medialibrary/mlthreadpool.cpp', @@ -1206,15 +1207,16 @@ ), 'moc_headers': files( 'tests/vlc_stub_modules.cpp', - 'util/base_model.hpp', - 'util/listcache.hpp', - 'util/locallistcacheloader.hpp', - 'medialibrary/mlqmltypes.hpp', - 'medialibrary/mlbasemodel.hpp', - 'medialibrary/medialib.hpp', - 'medialibrary/mlthreadpool.hpp', - 'playlist/playlist_controller.hpp', - 'playlist/playlist_item.hpp', + 'util/base_model.hpp', + 'util/listcache.hpp', + 'util/locallistcacheloader.hpp', + 'util/vlctick.hpp', + 'medialibrary/mlqmltypes.hpp', + 'medialibrary/mlbasemodel.hpp', + 'medialibrary/medialib.hpp', + 'medialibrary/mlthreadpool.hpp', + 'playlist/playlist_controller.hpp', + 'playlist/playlist_item.hpp', ), 'suite': 'qt', 'include_directories' : qt_include_dir,
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/modules/gui/qt/playlist/playlist_item.cpp -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/modules/gui/qt/playlist/playlist_item.cpp
Changed
@@ -16,6 +16,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************/ #include "playlist_item.hpp" +#include "util/vlctick.hpp" #include <vlc_input_item.h> //namespace vlc { @@ -61,7 +62,7 @@ return d->artwork; } -vlc_tick_t PlaylistItem::getDuration() const +VLCDuration PlaylistItem::getDuration() const { return d->duration; } @@ -75,7 +76,11 @@ input_item_t *media = inputItem(); assert(media); vlc_mutex_locker locker(&media->lock); - d->duration = media->i_duration; + d->duration = + (media->i_duration == INPUT_DURATION_INDEFINITE + || media->i_duration == INPUT_DURATION_UNSET) + ? VLCDuration{} + : VLCDuration{media->i_duration}; d->url = media->psz_uri; if (media->p_meta) {
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/modules/gui/qt/playlist/playlist_item.hpp -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/modules/gui/qt/playlist/playlist_item.hpp
Changed
@@ -30,6 +30,8 @@ #include <QUrl> #include <QMetaType> +#include "util/vlctick.hpp" + //namespace vlc { // namespace playlist { @@ -53,7 +55,7 @@ Q_PROPERTY(QString artist READ getArtist CONSTANT FINAL) Q_PROPERTY(QString album READ getAlbum CONSTANT FINAL) Q_PROPERTY(QUrl artwork READ getArtwork CONSTANT FINAL) - Q_PROPERTY(vlc_tick_t duration READ getDuration CONSTANT FINAL) + Q_PROPERTY(VLCDuration duration READ getDuration CONSTANT FINAL) Q_PROPERTY(QUrl url READ getUrl CONSTANT FINAL) PlaylistItem(vlc_playlist_item_t *item = nullptr); @@ -84,7 +86,7 @@ QUrl getArtwork() const; - vlc_tick_t getDuration() const; + VLCDuration getDuration() const; QUrl getUrl() const; @@ -103,7 +105,7 @@ QString album; QUrl artwork; - vlc_tick_t duration; + VLCDuration duration; QUrl url; };
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/modules/gui/qt/playlist/playlist_model.cpp -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/modules/gui/qt/playlist/playlist_model.cpp
Changed
@@ -178,7 +178,7 @@ m_items = newContent; q->endResetModel(); - m_duration = VLC_TICK_FROM_SEC(0); + m_duration = VLCDuration(); if (m_items.size()) { for(const auto& i : m_items) @@ -242,6 +242,14 @@ m_items.remove(index, count); q->endRemoveRows(); + //maybe we removed the only valid elements + if (m_duration.toVLCTick() == 0 && m_duration.valid()) + { + m_duration = VLCDuration(); + for(const auto& i : m_items) + m_duration += i.getDuration(); + } + emit q->countChanged(m_items.size()); } @@ -303,7 +311,7 @@ PlaylistListModel::getDuration() const { Q_D(const PlaylistListModel); - return VLCDuration(d->m_duration); + return d->m_duration; } PlaylistItem
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/modules/gui/qt/playlist/playlist_model_p.hpp -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/modules/gui/qt/playlist/playlist_model_p.hpp
Changed
@@ -66,7 +66,7 @@ QVector<PlaylistItem> m_items; ssize_t m_current = -1; - vlc_tick_t m_duration = 0; + VLCDuration m_duration = VLCDuration{}; }; } //namespace playlist
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/modules/gui/qt/util/vlctick.cpp -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/modules/gui/qt/util/vlctick.cpp
Changed
@@ -36,12 +36,12 @@ bool VLCTick::isSubSecond() const { - return asMilliseconds() < 1000; + return valid() && asMilliseconds() < 1000; } bool VLCTick::isSubHour() const { - return asSeconds() < 3600; + return valid() && asSeconds() < 3600; } QString VLCTick::formatHMS(int formatFlags) const @@ -168,22 +168,28 @@ VLCDuration::VLCDuration() : VLCTick(0) + , m_valid(false) { + } VLCDuration::VLCDuration(vlc_tick_t t) : VLCTick(t) + , m_valid(true) { } VLCDuration VLCDuration::operator*(double f) const { - return VLCDuration(m_ticks * f); + if (m_valid) + return VLCDuration(m_ticks * f); + else + return {}; } bool VLCDuration::operator==(const VLCDuration &rhs) const { - return m_ticks == rhs.m_ticks; + return m_valid == rhs.m_valid && m_ticks == rhs.m_ticks; } bool VLCDuration::operator>(const VLCDuration &rhs) const @@ -191,6 +197,34 @@ return m_ticks > rhs.m_ticks; } +VLCDuration VLCDuration::operator+(const VLCDuration &rhs) const +{ + if (m_valid || rhs.m_valid) + return VLCDuration{m_ticks + rhs.m_ticks}; + return VLCDuration{}; +} + +VLCDuration& VLCDuration::operator+=(const VLCDuration &rhs) +{ + m_valid |= rhs.m_valid; + m_ticks += rhs.m_ticks; + return *this; +} + +VLCDuration VLCDuration::operator-(const VLCDuration &rhs) const +{ + if (m_valid || rhs.m_valid) + return VLCDuration{m_ticks + rhs.m_ticks}; + return VLCDuration{}; +} + +VLCDuration& VLCDuration::operator-=(const VLCDuration &rhs) +{ + m_valid |= rhs.m_valid; + m_ticks -= rhs.m_ticks; + return *this; +} + double VLCDuration::toSecf() const { return secf_from_vlc_tick(m_ticks); @@ -198,7 +232,10 @@ VLCDuration VLCDuration::scale(float scalar) const { - return VLCDuration(m_ticks * scalar); + if (m_valid) + return VLCDuration(m_ticks * scalar); + else + return {}; } VLCDuration VLCDuration::fromMS(int64_t ms) @@ -218,7 +255,7 @@ bool VLCDuration::valid() const { - return true; + return m_valid; } ///// VLCTime
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/modules/gui/qt/util/vlctick.hpp -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/modules/gui/qt/util/vlctick.hpp
Changed
@@ -104,6 +104,10 @@ VLCDuration(vlc_tick_t); VLCDuration operator*(double) const; + VLCDuration operator+(const VLCDuration &) const; + VLCDuration& operator+=(const VLCDuration &); + VLCDuration operator-(const VLCDuration &) const; + VLCDuration& operator-=(const VLCDuration &); bool operator==(const VLCDuration &) const; bool operator>(const VLCDuration &) const; @@ -116,6 +120,9 @@ int64_t asMilliseconds() const override; int64_t asSeconds() const override; bool valid() const override; + +private: + bool m_valid; }; class VLCTime : public VLCTick
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/modules/mux/mp4/mp4.c -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/modules/mux/mp4/mp4.c
Changed
@@ -227,6 +227,7 @@ static int stream_cmp(const void *a, const void *b, void *priv) { + VLC_UNUSED(priv); const mp4_stream_t *p_a = *((const mp4_stream_t **)a); const mp4_stream_t *p_b = *((const mp4_stream_t **)b); static const uint8_t orderES_CATEGORY_COUNT = {
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/modules/mux/mpeg/ts.c -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/modules/mux/mpeg/ts.c
Changed
@@ -452,7 +452,7 @@ static void DelStream( sout_mux_t *, sout_input_t * ); static int Mux ( sout_mux_t * ); -static block_t *FixPES( sout_mux_t *p_mux, block_fifo_t *p_fifo ); +static block_t *FixPES( block_fifo_t *p_fifo ); static block_t *Add_ADTS( block_t *, const es_format_t * ); static int TSSchedule ( sout_mux_t *p_mux, sout_buffer_chain_t *p_chain_ts, vlc_tick_t i_pcr_length, vlc_tick_t i_pcr_dts ); @@ -1245,7 +1245,7 @@ p_data = Pack_Opus( p_data ); } else - p_data = FixPES( p_mux, p_input->p_fifo ); + p_data = FixPES( p_input->p_fifo ); SetBlockDuration( p_input, p_data ); @@ -1556,9 +1556,8 @@ } #define STD_PES_PAYLOAD 170 -static block_t *FixPES( sout_mux_t *p_mux, block_fifo_t *p_fifo ) +static block_t *FixPES( block_fifo_t *p_fifo ) { - VLC_UNUSED(p_mux); block_t *p_data; size_t i_size;
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/src/libvlccore.sym -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/src/libvlccore.sym
Changed
@@ -741,6 +741,7 @@ vlc_fifo_DequeueAllUnlocked vlc_fifo_GetCount vlc_fifo_GetBytes +vlc_fifo_Held vlc_queue_Init vlc_queue_EnqueueUnlocked vlc_queue_DequeueUnlocked
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/src/stream_output/stream_output.c -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/src/stream_output/stream_output.c
Changed
@@ -507,7 +507,7 @@ *****************************************************************************/ int sout_MuxGetStream( sout_mux_t *p_mux, unsigned i_blocks, vlc_tick_t *pi_dts ) { - vlc_tick_t i_dts = 0; + vlc_tick_t i_dts = VLC_TICK_MAX; int i_stream = -1; assert( i_blocks > 0 ); @@ -529,7 +529,7 @@ } p_data = block_FifoShow( p_input->p_fifo ); - if( i_stream < 0 || p_data->i_dts < i_dts ) + if( p_data->i_dts < i_dts ) { i_stream = i; i_dts = p_data->i_dts;
View file
_service:obs_scm:vlc-beta-20251128.f6fd3272d.obscpio/src/video_output/video_output.c -> _service:obs_scm:vlc-beta-20251129.310b66830.obscpio/src/video_output/video_output.c
Changed
@@ -283,8 +283,7 @@ { vout_thread_sys_t *sys = VOUT_THREAD_TO_SYS(vout); assert(!sys->dummy); - if (!sys->decoder_fifo) - return true; + assert(sys->decoder_fifo); return picture_fifo_IsEmpty(sys->decoder_fifo); } @@ -851,8 +850,20 @@ config_chain_t *cfg; } vout_filter_t; +static int strcmp_void(const void *a, const void *b) +{ + const char *const *entry = b; + return strcmp(a, *entry); +} + static void ChangeFilters(vout_thread_sys_t *vout) { + /* bsearch: must be sorted alphabetically */ + static const char *const static_filters = { + "amf_frc", + "fps", + "postproc", + }; vout_thread_sys_t *sys = vout; FilterFlush(vout, true); DelAllFilterCallbacks(vout); @@ -888,7 +899,10 @@ if (likely(e)) { e->name = name; e->cfg = cfg; - if (!strcmp(e->name, "postproc") || !strcmp(e->name, "amf_frc")) + bool is_static_filter = + bsearch(e->name, static_filters, ARRAY_SIZE(static_filters), + sizeof(const char *), strcmp_void) != NULL; + if (is_static_filter) vlc_array_append_or_abort(&array_static, e); else vlc_array_append_or_abort(&array_interactive, e); @@ -1818,7 +1832,6 @@ cfg->mouse_event, cfg->mouse_opaque); vlc_mutex_unlock(&sys->window_lock); - sys->decoder_fifo = picture_fifo_New(); sys->private_pool = NULL; sys->filter.configuration = NULL; @@ -1937,11 +1950,6 @@ vlc_video_context_Release(sys->filter.src_vctx); sys->filter.src_vctx = NULL; } - if (sys->decoder_fifo != NULL) - { - picture_fifo_Delete(sys->decoder_fifo); - sys->decoder_fifo = NULL; - } vlc_mutex_lock(&sys->window_lock); vout_display_window_SetMouseHandler(sys->display_cfg.window, NULL, NULL); vlc_mutex_unlock(&sys->window_lock); @@ -2028,11 +2036,6 @@ } free(sys->filter.configuration); - if (sys->decoder_fifo != NULL) - { - picture_fifo_Delete(sys->decoder_fifo); - sys->decoder_fifo = NULL; - } assert(sys->private_pool == NULL); vlc_mutex_lock(&sys->window_lock); @@ -2122,6 +2125,8 @@ return; } + picture_fifo_Delete(sys->decoder_fifo); + free(sys->splitter_name); free(sys->display_cfg.icc_profile); @@ -2177,6 +2182,13 @@ vout_thread_sys_t *sys = p_vout; sys->dummy = false; + sys->decoder_fifo = picture_fifo_New(); + if (sys->decoder_fifo == NULL) + { + vlc_object_delete(vout); + return NULL; + } + /* Register the VLC variable and callbacks. On the one hand, the variables * must be ready early on because further initializations below depend on * some of them. On the other hand, the callbacks depend on said @@ -2192,6 +2204,7 @@ if (config_GetType("video-splitter")) { char *splitter_name = var_InheritString(vout, "video-splitter"); if (unlikely(splitter_name == NULL)) { + picture_fifo_Delete(sys->decoder_fifo); vlc_object_delete(vout); return NULL; } @@ -2245,6 +2258,7 @@ if (sys->display_cfg.window == NULL) { if (sys->spu) spu_Destroy(sys->spu); + picture_fifo_Delete(sys->decoder_fifo); vlc_object_delete(vout); return NULL; }
View file
_service:obs_scm:vlc-beta.obsinfo
Changed
@@ -1,4 +1,4 @@ name: vlc-beta -version: 20251128.f6fd3272d -mtime: 1764321330 -commit: f6fd3272db7ca3ec0d57bcefe665b7927ae101bc +version: 20251129.310b66830 +mtime: 1764400360 +commit: 310b6683039d62a3577f549196de0fdd1ecb9513
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.