Projects
Extra
vlc-beta
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 133
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/contrib/src/ffmpeg/0011-avcodec-videotoolboxenc-disable-calls-on-unsupported.patch -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/contrib/src/ffmpeg/0011-avcodec-videotoolboxenc-disable-calls-on-unsupported.patch
Changed
@@ -23,7 +23,7 @@ -#if defined (MAC_OS_X_VERSION_10_13) && (MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_13) - if (__builtin_available(macOS 10.13, *)) { -+#if (TARGET_OS_OSX && defined(__MAC_13_0) && __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_13_0) || \ ++#if (TARGET_OS_OSX && defined(__MAC_10_13) && __MAC_OS_X_VERSION_MAX_ALLOWED >= __MAC_10_13) || \ + (TARGET_OS_IOS && defined(__IPHONE_11_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_11_0) || \ + (TARGET_OS_TV && defined(__TVOS_11_0) && __TV_OS_VERSION_MAX_ALLOWED >= __TVOS_11_0) + if (__builtin_available(macOS 10.13, iOS 11, tvOS 11, *)) {
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/modules/codec/avcodec/chroma.c -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/modules/codec/avcodec/chroma.c
Changed
@@ -59,6 +59,7 @@ {VLC_CODEC_NV12, AV_PIX_FMT_NV12, COLOR_RANGE_UNDEF }, {VLC_CODEC_NV21, AV_PIX_FMT_NV21, COLOR_RANGE_UNDEF }, + {VLC_CODEC_NV16, AV_PIX_FMT_NV16, COLOR_RANGE_UNDEF }, {VLC_CODEC_I420_9L, AV_PIX_FMT_YUV420P9LE, COLOR_RANGE_UNDEF }, {VLC_CODEC_I420_9B, AV_PIX_FMT_YUV420P9BE, COLOR_RANGE_UNDEF }, @@ -119,7 +120,7 @@ #endif /* Packed RGB formats */ - {VLC_CODEC_RGB233, AV_PIX_FMT_RGB8, COLOR_RANGE_UNDEF }, + {VLC_CODEC_RGB332, AV_PIX_FMT_RGB8, COLOR_RANGE_UNDEF }, {VLC_CODEC_BGR233, AV_PIX_FMT_BGR8, COLOR_RANGE_UNDEF }, {VLC_CODEC_RGB565BE, AV_PIX_FMT_RGB565BE, COLOR_RANGE_UNDEF },
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/modules/gui/qt/dialogs/preferences/expert_view.cpp -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/modules/gui/qt/dialogs/preferences/expert_view.cpp
Changed
@@ -68,8 +68,8 @@ copy_value_action = new QAction( qtr( "Copy &value" ), this ); connect( reset_action, &QAction::triggered, this, &ExpertPrefsTable::resetItem ); - connect( toggle_action, &QAction::triggered, this, QOverload<>::of(&ExpertPrefsTable::toggleItem) ); - connect( modify_action, &QAction::triggered, this, QOverload<>::of(&ExpertPrefsTable::modifyItem) ); + connect( toggle_action, &QAction::triggered, this, &ExpertPrefsTable::toggleItem ); + connect( modify_action, &QAction::triggered, this, &ExpertPrefsTable::modifyItem ); connect( copy_name_action, &QAction::triggered, this, &ExpertPrefsTable::copyItemName ); connect( copy_value_action, &QAction::triggered, this, &ExpertPrefsTable::copyItemValue ); } @@ -136,11 +136,11 @@ void ExpertPrefsTable::toggleItem() { - toggleItem( currentIndex() ); + toggleItemPrivate( currentIndex() ); } /* this obviously only applies to boolean options! */ -void ExpertPrefsTable::toggleItem( const QModelIndex &index ) +void ExpertPrefsTable::toggleItemPrivate( const QModelIndex &index ) { if( !index.isValid() ) return; @@ -152,10 +152,10 @@ QModelIndex index = currentIndex(); if( !index.isValid() ) return; - modifyItem( index ); + modifyItemPrivate( index ); } -void ExpertPrefsTable::modifyItem( const QModelIndex &index ) +void ExpertPrefsTable::modifyItemPrivate( const QModelIndex &index ) { ExpertPrefsTableItem *item = myModel()->itemAt( index ); module_config_t *cfg_item = item->getConfig(); @@ -207,11 +207,11 @@ { if( index.data( ExpertPrefsTableModel::TypeClassRole ).toInt() == CONFIG_ITEM_BOOL ) { - toggleItem( index ); + toggleItemPrivate( index ); myModel()->notifyUpdatedRow( index.row() ); } else - modifyItem( index ); + modifyItemPrivate( index ); } /*********************************************************************
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/modules/gui/qt/dialogs/preferences/expert_view.hpp -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/modules/gui/qt/dialogs/preferences/expert_view.hpp
Changed
@@ -60,8 +60,8 @@ #endif // QT_NO_CONTEXTMENU private: - void modifyItem( const QModelIndex & ); - void toggleItem( const QModelIndex & ); + void modifyItemPrivate( const QModelIndex & ); + void toggleItemPrivate( const QModelIndex & ); QAction *reset_action; QAction *toggle_action; QAction *modify_action;
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/modules/gui/qt/dialogs/sout/profile_selector.cpp -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/modules/gui/qt/dialogs/sout/profile_selector.cpp
Changed
@@ -71,7 +71,7 @@ layout->addWidget(newButton); BUTTONACT( newButton, &VLCProfileSelector::newProfile ); - BUTTONACT( editButton, QOverload<>::of(&VLCProfileSelector::editProfile) ); + BUTTONACT( editButton, &VLCProfileSelector::editProfile ); BUTTONACT( deleteButton, &VLCProfileSelector::deleteProfile ); fillProfilesCombo(); @@ -130,16 +130,16 @@ void VLCProfileSelector::newProfile() { - editProfile( "", "" ); + editProfilePrivate( "", "" ); } void VLCProfileSelector::editProfile() { - editProfile( profileBox->currentText(), + editProfilePrivate( profileBox->currentText(), profileBox->itemData( profileBox->currentIndex() ).toString() ); } -void VLCProfileSelector::editProfile( const QString& qs, const QString& value ) +void VLCProfileSelector::editProfilePrivate( const QString& qs, const QString& value ) { /* Create the Profile Editor */ QWidget* windowWidget = window();
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/modules/gui/qt/dialogs/sout/profile_selector.hpp -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/modules/gui/qt/dialogs/sout/profile_selector.hpp
Changed
@@ -49,7 +49,7 @@ private: QComboBox *profileBox; void fillProfilesCombo(); - void editProfile( const QString&, const QString& ); + void editProfilePrivate( const QString&, const QString& ); void saveProfiles(); QString mux; SoutChain transcode;
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/modules/gui/qt/medialibrary/qml/ArtistTopBanner.qml
Changed
@@ -58,7 +58,7 @@ anchors.fill: parent asynchronous: true - source: artist.cover || VLCStyle.noArtArtist + source: root.artist.id ? (root.artist.cover || VLCStyle.noArtArtist) : "" // do not load the fallback image during initialization sourceSize: artist.cover ? Qt.size(Helpers.alignUp(Screen.desktopAvailableWidth, 32), 0) : undefined mipmap: !!artist.cover @@ -77,7 +77,7 @@ Item { anchors.fill: background - visible: (GraphicsInfo.shaderType === GraphicsInfo.RhiShader) + visible: (GraphicsInfo.shaderType === GraphicsInfo.RhiShader) && (root.artist.id) // do not display the effect during initialization // This blur effect does not create an implicit layer that is updated // each time the size changes. The source texture is static, so the blur @@ -92,15 +92,19 @@ // NOTE: No need to disable `live`, as this uses two pass mode so there is no video memory saving benefit. - // If source image is tiled, layering is necessary: - readonly property bool sourceNeedsLayering: (background.fillMode === Image.Tile) + readonly property bool sourceNeedsTiling: (background.fillMode === Image.Tile) readonly property real aspectRatio: (background.implicitHeight / background.implicitWidth) - height: sourceNeedsLayering ? background.height : (aspectRatio * width) + height: sourceNeedsTiling ? background.height : (aspectRatio * width) source: textureProviderItem + // Instead of clipping in the parent, denote the viewport here so we both + // do not need to clip the excess, and also save significant video memory: + viewportRect: !blurEffect.sourceNeedsLayering ? Qt.rect((width - parent.width) / 2, (height - parent.height) / 2, parent.width, parent.height) + : Qt.rect(0, 0, 0, 0) + Widgets.TextureProviderItem { id: textureProviderItem @@ -110,23 +114,17 @@ // we can have an indirection here through `TextureProviderItem`. // This is totally acceptable as there is virtually no overhead. - source: blurEffect.sourceNeedsLayering ? backgroundLayer : background - } - - // Instead of clipping in the parent, denote the viewport here so we both - // do not need to clip the excess, and also save significant video memory: - viewportRect: !blurEffect.sourceNeedsLayering ? Qt.rect((width - parent.width) / 2, (height - parent.height) / 2, parent.width, parent.height) - : Qt.rect(0, 0, 0, 0) + source: background - ShaderEffectSource { - id: backgroundLayer + detachAtlasTextures: blurEffect.sourceNeedsTiling - sourceItem: background + horizontalWrapMode: blurEffect.sourceNeedsTiling ? Widgets.TextureProviderItem.Repeat : Widgets.TextureProviderItem.ClampToEdge + verticalWrapMode: blurEffect.sourceNeedsTiling ? Widgets.TextureProviderItem.Repeat : Widgets.TextureProviderItem.ClampToEdge - // We hope that Qt does not create the layer unless this is actually used as - // texture provider (it is already invisible). GammaRay tells that this is - // already the case (I can not access the texture). - visible: false + textureSubRect: blurEffect.sourceNeedsTiling ? Qt.rect(blurEffect.width / 8, + blurEffect.height / 8, + blurEffect.width * 1.25, + blurEffect.height * 1.25) : undefined } // Strong blurring is not wanted here: @@ -160,7 +158,7 @@ Widgets.ImageExt { id: roundImage - source: artist.cover || VLCStyle.noArtArtist + source: root.artist.id ? (root.artist.cover || VLCStyle.noArtArtist) : "" // do not load the fallback image during initialization sourceSize: Qt.size(width * eDPR, height * eDPR) anchors.fill: parent radius: VLCStyle.cover_normal
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/modules/gui/qt/util/qsgtextureview.cpp -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/modules/gui/qt/util/qsgtextureview.cpp
Changed
@@ -112,9 +112,6 @@ if (m_rect == rect) return; - if (!rect.isValid()) - return; - m_rect = rect; // We need the source texture in order to calculate the normal rect. @@ -122,7 +119,10 @@ // later in `normalizedTextureSubRect()`. if (m_texture) { - adjustNormalRect(); + if (m_rect.isValid()) + adjustNormalRect(); + else + m_normalRect.reset(); emit updateRequested(); } else @@ -284,7 +284,20 @@ void QSGTextureView::commitTextureOperations(QRhi *rhi, QRhiResourceUpdateBatch *resourceUpdates) { if (m_texture) + { + if (m_detachFromAtlasPending) + { + if (isAtlasTexture()) + { + const auto oldTexture = m_texture; + if (removedFromAtlas(resourceUpdates)) + qDebug() << this << ": Detached" << oldTexture << "from the atlas, and re-targeted to" << m_texture; + } + m_detachFromAtlasPending = false; + } + m_texture->commitTextureOperations(rhi, resourceUpdates); + } } bool QSGTextureView::updateTexture() @@ -306,3 +319,7 @@ return ret; } +void QSGTextureView::requestDetachFromAtlas() +{ + m_detachFromAtlasPending = true; +}
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/modules/gui/qt/util/qsgtextureview.hpp -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/modules/gui/qt/util/qsgtextureview.hpp
Changed
@@ -26,10 +26,11 @@ { Q_OBJECT - QSGTexture* m_texture = nullptr; + QPointer<QSGTexture> m_texture; QRect m_rect; mutable std::optional<QRectF> m_normalRect; mutable bool m_normalRectChanged = false; + bool m_detachFromAtlasPending = false; private slots: bool adjustNormalRect() const; @@ -75,6 +76,9 @@ bool updateTexture() override; + // Detaches from atlas (when applicable) upon the next `commitTextureOperations()` call: + void requestDetachFromAtlas(); + signals: void updateRequested(); };
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/modules/gui/qt/widgets/native/textureprovideritem.cpp -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/modules/gui/qt/widgets/native/textureprovideritem.cpp
Changed
@@ -83,11 +83,6 @@ } }; - const auto adjustRect = provider = m_textureProvider(const QRect& rect) { - if (rect.isValid()) - provider->setRect(rect); - }; - const auto synchronizeState = weakThis = QPointer(this), provider = m_textureProvider() { if (Q_UNLIKELY(!weakThis)) return; @@ -97,11 +92,14 @@ provider->setAnisotropyLevel(weakThis->m_anisotropyLevel); provider->setHorizontalWrapMode(weakThis->m_horizontalWrapMode); provider->setVerticalWrapMode(weakThis->m_verticalWrapMode); + + if (weakThis->m_detachAtlasTextures) + provider->requestDetachFromAtlas(); }; // These are going to be queued when necessary: connect(this, &TextureProviderItem::sourceChanged, m_textureProvider, adjustSource); - connect(this, &TextureProviderItem::rectChanged, m_textureProvider, adjustRect); + connect(this, &TextureProviderItem::rectChanged, m_textureProvider, &QSGTextureViewProvider::setRect); connect(this, &TextureProviderItem::filteringChanged, m_textureProvider, &QSGTextureViewProvider::setFiltering); connect(this, &TextureProviderItem::mipmapFilteringChanged, m_textureProvider, &QSGTextureViewProvider::setMipmapFiltering); @@ -109,12 +107,18 @@ connect(this, &TextureProviderItem::horizontalWrapModeChanged, m_textureProvider, &QSGTextureViewProvider::setHorizontalWrapMode); connect(this, &TextureProviderItem::verticalWrapModeChanged, m_textureProvider, &QSGTextureViewProvider::setVerticalWrapMode); + connect(this, &TextureProviderItem::detachAtlasTexturesChanged, m_textureProvider, provider = m_textureProvider(bool detach) { + if (detach) + provider->requestDetachFromAtlas(); + }); + // When the target texture changes, the texture view may reset its state, so we need to synchronize in that case: connect(m_textureProvider, &QSGTextureProvider::textureChanged, m_textureProvider, synchronizeState); // Executed in texture provider's thread // Initial adjustments: adjustSource(m_source); - adjustRect(m_rect); + if (m_rect.isValid()) + m_textureProvider->setRect(m_rect); synchronizeState(); } return m_textureProvider; @@ -264,3 +268,8 @@ m_textureView.setVerticalWrapMode(vwrap); emit textureChanged(); } + +void QSGTextureViewProvider::requestDetachFromAtlas() +{ + m_textureView.requestDetachFromAtlas(); +}
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/modules/gui/qt/widgets/native/textureprovideritem.hpp -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/modules/gui/qt/widgets/native/textureprovideritem.hpp
Changed
@@ -49,6 +49,8 @@ void setAnisotropyLevel(QSGTexture::AnisotropyLevel level); void setHorizontalWrapMode(QSGTexture::WrapMode hwrap); void setVerticalWrapMode(QSGTexture::WrapMode vwrap); + + void requestDetachFromAtlas(); }; class TextureProviderItem : public QQuickItem @@ -62,8 +64,9 @@ // sub-texture (such as a texture in the atlas), wrapping would only be applicable outside // the boundaries of the whole texture and not the source sub-texture, and not considering // this may expose irrelevant parts of the atlas (this means that wrap mode is effectively - // useless for sub- or atlas textures). + // useless for sub- or atlas textures). In such a case, `detachAtlasTextures` can be used. Q_PROPERTY(QRect textureSubRect MEMBER m_rect NOTIFY rectChanged RESET resetTextureSubRect FINAL) + Q_PROPERTY(bool detachAtlasTextures MEMBER m_detachAtlasTextures NOTIFY detachAtlasTexturesChanged FINAL) Q_PROPERTY(QSGTexture::AnisotropyLevel anisotropyLevel MEMBER m_anisotropyLevel NOTIFY anisotropyLevelChanged FINAL) Q_PROPERTY(QSGTexture::WrapMode horizontalWrapMode MEMBER m_horizontalWrapMode NOTIFY horizontalWrapModeChanged FINAL) @@ -122,6 +125,8 @@ void horizontalWrapModeChanged(QSGTexture::WrapMode); void verticalWrapModeChanged(QSGTexture::WrapMode); + void detachAtlasTexturesChanged(bool); + protected: void releaseResources() override; @@ -138,6 +143,7 @@ // When there are mip maps, no mip map filtering should be fine (unlike no mip maps with mip map filtering): // But we want to have mip map filtering by default if the texture has mip maps (if not, it won't be respected): std::atomic<QSGTexture::Filtering> m_mipmapFiltering = QSGTexture::Linear; + std::atomic<bool> m_detachAtlasTextures = false; }; #endif // TEXTUREPROVIDERITEM_HPP
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/modules/video_output/win32/direct3d9.c -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/modules/video_output/win32/direct3d9.c
Changed
@@ -753,13 +753,11 @@ goto error; /* Unrecognized entry in the list. */ /* The source code of the shader needs to be read from a file. */ char *filepath = var_InheritString(vd, "direct3d9-shader-file"); - if (!filepath || !*filepath) - { - free(filepath); + if (!filepath) goto error; - } /* Open file, find its size with fseek/ftell and read its content in a buffer. */ fs = vlc_fopen(filepath, "rb"); + free(filepath); if (!fs) goto error; int ret = fseek(fs, 0, SEEK_END);
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/po/LINGUAS -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/po/LINGUAS
Changed
@@ -3,7 +3,7 @@ am an ar -as_IN +as ast az be
View file
_service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/po/as.po
Changed
(renamed from po/as_IN.po)
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/src/audio_output/output.c -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/src/audio_output/output.c
Changed
@@ -285,6 +285,7 @@ /* Audio output module callbacks */ var_Create (aout, "volume", VLC_VAR_FLOAT); + var_SetFloat(aout, "volume", -1.f); var_AddCallback (aout, "volume", var_Copy, parent); var_Create (aout, "mute", VLC_VAR_BOOL); var_AddCallback (aout, "mute", var_Copy, parent);
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/src/player/aout.c -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/src/player/aout.c
Changed
@@ -87,7 +87,7 @@ if (strcmp(var, "volume") == 0) { - if (oldval.f_float != newval.f_float) + if (oldval.f_float >= 0.f && oldval.f_float != newval.f_float) { vlc_player_aout_SendEvent(player, on_volume_changed, (audio_output_t *)this, newval.f_float);
View file
_service:obs_scm:vlc-beta-20251003.9bbd3ceca.obscpio/src/video_output/vout_intf.c -> _service:obs_scm:vlc-beta-20251005.6958b2951.obscpio/src/video_output/vout_intf.c
Changed
@@ -689,7 +689,9 @@ default: projection = "unknown"; break; } - vout_OSDMessage(vout, VOUT_SPU_CHANNEL_OSD, "Projection: %s", projection); + if (cur.i_int != prev.i_int) + vout_OSDMessage(vout, VOUT_SPU_CHANNEL_OSD, + "Projection: %s", projection); if (cur.i_int == -1) { vout_ResetProjection(vout);
View file
_service:obs_scm:vlc-beta.obsinfo
Changed
@@ -1,4 +1,4 @@ name: vlc-beta -version: 20251003.9bbd3ceca -mtime: 1759494442 -commit: 9bbd3ceca4b0d0038bf2094b70e5a32076c496ef +version: 20251005.6958b2951 +mtime: 1759669655 +commit: 6958b2951940c387795b07028ad890d05e1f59d5
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
.