Projects
Staging
vlc-beta
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 169
View file
_service:obs_scm:vlc-beta-20220122.32b3f47bf0.obscpio/contrib/src/ffmpeg/rules.mak -> _service:obs_scm:vlc-beta-20220123.99f3721426.obscpio/contrib/src/ffmpeg/rules.mak
Changed
@@ -101,6 +101,11 @@ FFMPEGCONF += --arch=mips64 endif +# RISC-V stuff +ifneq ($(findstring $(ARCH),riscv32 riscv64),) +FFMPEGCONF += --arch=riscv +endif + # x86 stuff ifeq ($(ARCH),i386) ifndef HAVE_DARWIN_OS
View file
_service:obs_scm:vlc-beta-20220122.32b3f47bf0.obscpio/contrib/src/gnutls/rules.mak -> _service:obs_scm:vlc-beta-20220123.99f3721426.obscpio/contrib/src/gnutls/rules.mak
Changed
@@ -37,7 +37,6 @@ # fix i686 UWP builds as they were using CertEnumCRLsInStore via invalid LoadLibrary $(APPLY) $(SRC)/gnutls/0001-fix-mingw64-detection.patch - $(call pkg_static,"lib/gnutls.pc.in") $(UPDATE_AUTOCONFIG) $(MOVE) @@ -80,6 +79,7 @@ .gnutls: gnutls cd $< && $(GNUTLS_ENV) ./configure $(GNUTLS_CONF) + $(call pkg_static,"lib/gnutls.pc") cd $< && $(MAKE) -C gl install cd $< && $(MAKE) -C lib install touch $@
View file
_service:obs_scm:vlc-beta-20220122.32b3f47bf0.obscpio/contrib/src/main-rust.mak -> _service:obs_scm:vlc-beta-20220123.99f3721426.obscpio/contrib/src/main-rust.mak
Changed
@@ -33,8 +33,12 @@ ifeq ($(HOST),arm-linux-gnueabihf) RUST_TARGET = arm-unknown-linux-gnueabihf #add eabihf else +ifeq ($(HOST),riscv64-linux-gnu) +RUST_TARGET = riscv64gc-unknown-linux-gnu +else RUST_TARGET = $(ARCH)-unknown-linux-gnu endif +endif else ifdef HAVE_BSD RUST_TARGET = $(HOST) endif
View file
_service:obs_scm:vlc-beta-20220122.32b3f47bf0.obscpio/contrib/src/postproc/rules.mak -> _service:obs_scm:vlc-beta-20220123.99f3721426.obscpio/contrib/src/postproc/rules.mak
Changed
@@ -52,6 +52,11 @@ POSTPROCCONF += --arch=mips64 endif +# RISC-V stuff +ifneq ($(findstring $(ARCH),riscv32 riscv64),) +POSTPROCCONF += --arch=riscv +endif + # x86 stuff ifeq ($(ARCH),i386) POSTPROCCONF += --arch=x86
View file
_service:obs_scm:vlc-beta-20220122.32b3f47bf0.obscpio/modules/codec/vorbis.c -> _service:obs_scm:vlc-beta-20220123.99f3721426.obscpio/modules/codec/vorbis.c
Changed
@@ -476,10 +476,11 @@ } /* Date management */ - if( p_block->i_pts != VLC_TICK_INVALID && - p_block->i_pts != date_Get( &p_sys->end_date ) ) + vlc_tick_t pts = p_block->i_pts != VLC_TICK_INVALID ? p_block->i_pts : p_block->i_dts; + if( pts != VLC_TICK_INVALID && + pts != date_Get( &p_sys->end_date ) ) { - date_Set( &p_sys->end_date, p_block->i_pts ); + date_Set( &p_sys->end_date, pts ); } if( date_Get( &p_sys->end_date ) == VLC_TICK_INVALID )
View file
_service:obs_scm:vlc-beta-20220122.32b3f47bf0.obscpio/modules/demux/ogg.c -> _service:obs_scm:vlc-beta-20220123.99f3721426.obscpio/modules/demux/ogg.c
Changed
@@ -131,9 +131,9 @@ /* Bitstream manipulation */ static int Ogg_ReadPage ( demux_t *, ogg_page * ); -static void Ogg_DecodePacket ( demux_t *, logical_stream_t *, ogg_packet * ); +static void Ogg_DecodePacket ( demux_t *, logical_stream_t *, ogg_packet *, bool ); static unsigned Ogg_OpusPacketDuration( ogg_packet * ); -static void Ogg_QueueBlocks( demux_t *, logical_stream_t *, block_t * ); +static void Ogg_QueueBlocks( demux_t *, logical_stream_t *, block_t *, vlc_tick_t, bool ); static void Ogg_SendQueuedBlock( demux_t *, logical_stream_t * ); static inline bool Ogg_HasQueuedBlocks( const logical_stream_t *p_stream ) @@ -576,7 +576,7 @@ } } - Ogg_DecodePacket( p_demux, p_stream, &oggpacket ); + Ogg_DecodePacket( p_demux, p_stream, &oggpacket, ogg_page_eos( &p_sys->current_page ) ); } @@ -999,31 +999,19 @@ } } -static vlc_tick_t Ogg_FixupOutputQueue( demux_t *p_demux, logical_stream_t *p_stream ) +static vlc_tick_t Ogg_FixupOutputQueue( demux_t *p_demux, logical_stream_t *p_stream, + vlc_tick_t i_enddts, bool b_eos ) { - vlc_tick_t i_enddts = VLC_TICK_INVALID; + demux_sys_t *p_sys = p_demux->p_sys; -#ifdef HAVE_LIBVORBIS - long i_prev_blocksize = 0; -#else - VLC_UNUSED(p_demux); -#endif // PASS 1, set number of samples unsigned i_total_samples = 0; for( block_t *p_block = p_stream->queue.p_blocks; p_block; p_block = p_block->p_next ) { - if( p_block->i_dts != VLC_TICK_INVALID ) - { - i_enddts = p_block->i_dts; - break; - } - if( p_block->i_flags & BLOCK_FLAG_HEADER ) continue; ogg_packet dumb_packet; - dumb_packet.bytes = p_block->i_buffer; - dumb_packet.packet = p_block->p_buffer; switch( p_stream->fmt.i_codec ) { @@ -1032,6 +1020,10 @@ p_stream->special.speex.i_framesperpacket; break; case VLC_CODEC_OPUS: + dumb_packet.bytes = p_block->i_buffer; + dumb_packet.packet = p_block->p_buffer; + /* Less complicated than Vorbis case below as packets samples count + * is known for every packet */ p_block->i_nb_samples = Ogg_OpusPacketDuration( &dumb_packet ); break; #ifdef HAVE_LIBVORBIS @@ -1042,13 +1034,30 @@ msg_Err( p_demux, "missing vorbis headers, can't compute block size" ); break; } + + if( p_block->p_next == NULL ) + break; + + /* Vorbis Hell + Samples are computed from N..N+1 window + We can set samples for packets up to N-1 + Last packet is granule pos - total... but + that would be too easy without truncation + and beginning of stream cases. + If that's BOS, we need to truncate on start (negative samples) + If that's EOS, we need to truncate the end to match granule. + If that's both single page and not starting zero.. we're ***** */ + dumb_packet.bytes = p_block->i_buffer; + dumb_packet.packet = p_block->p_buffer; long i_blocksize = vorbis_packet_blocksize( p_stream->special.vorbis.p_info, &dumb_packet ); - if ( i_prev_blocksize ) - p_block->i_nb_samples = ( i_blocksize + i_prev_blocksize ) / 4; - else - p_block->i_nb_samples = i_blocksize / 2; - i_prev_blocksize = i_blocksize; + dumb_packet.bytes = p_block->p_next->i_buffer; + dumb_packet.packet = p_block->p_next->p_buffer; + long i_nextblocksize = vorbis_packet_blocksize( p_stream->special.vorbis.p_info, + &dumb_packet ); + /* The spec has 3 specific cases depending on long/short prev/next blocksizes + ranging weights from 1/4 to 3/4... but everyone does A/4 + B/4 */ + p_block->i_nb_samples = (i_blocksize + i_nextblocksize) / 4; break; } #endif @@ -1065,24 +1074,41 @@ { date_t d = p_stream->dts; date_Set( &d, i_enddts ); - i_enddts = date_Decrement( &d, i_total_samples ); + date_Decrement( &d, i_total_samples ); + + /* truncate end */ + if( b_eos && date_Get( &d ) < VLC_TICK_0 ) + date_Set( &d, VLC_TICK_0 ); + for( block_t *p_block = p_stream->queue.p_blocks; p_block; p_block = p_block->p_next ) { - if( p_block->i_dts != VLC_TICK_INVALID ) - break; if( p_block->i_flags & BLOCK_FLAG_HEADER ) continue; p_block->i_dts = date_Get( &d ); - if( p_block->i_dts < VLC_TICK_0 ) + + /* truncate start */ + if( !b_eos && p_block->i_dts < VLC_TICK_0 ) p_block->i_dts = VLC_TICK_0; + + /* Last page in the stream case, truncate end */ + if( b_eos && p_block->p_next == NULL ) + p_block->i_dts = __MIN(p_block->i_dts, i_enddts); + + if( p_sys->i_nzpcr_offset ) + p_block->i_dts += p_sys->i_nzpcr_offset; + + if( p_stream->fmt.i_cat == AUDIO_ES ) + p_block->i_pts = p_block->i_dts; date_Increment( &d, p_block->i_nb_samples ); } + } /* else can't do anything, no timestamped blocks in stream */ return i_enddts; } -static void Ogg_QueueBlocks( demux_t *p_demux, logical_stream_t *p_stream, block_t *p_block ) +static void Ogg_QueueBlocks( demux_t *p_demux, logical_stream_t *p_stream, + block_t *p_block, vlc_tick_t i_enddts, bool b_eos ) { demux_sys_t *p_sys = p_demux->p_sys; VLC_UNUSED(p_sys); @@ -1095,10 +1121,12 @@ block_ChainLastAppend( &p_stream->queue.pp_append, p_block ); - if( p_stream->i_pcr == VLC_TICK_INVALID && p_block->i_dts != VLC_TICK_INVALID ) + /* If we can have or compute block start from granule, it is set. + * Otherwise the end dts will be used for reverse calculation */ + if( p_stream->i_pcr == VLC_TICK_INVALID && i_enddts != VLC_TICK_INVALID ) { /* fixup queue */ - p_stream->i_pcr = Ogg_FixupOutputQueue( p_demux, p_stream ); + p_stream->i_pcr = Ogg_FixupOutputQueue( p_demux, p_stream, i_enddts, b_eos ); } DemuxDebug( msg_Dbg( p_demux, "%4.4s block queued > dts %"PRId64" spcr %"PRId64" pcr %"PRId64, @@ -1186,7 +1214,7 @@ ****************************************************************************/ static void Ogg_DecodePacket( demux_t *p_demux, logical_stream_t *p_stream, - ogg_packet *p_oggpacket ) + ogg_packet *p_oggpacket, bool b_eos ) { demux_sys_t *p_sys = p_demux->p_sys; block_t *p_block; @@ -1357,6 +1385,8 @@ } vlc_tick_t i_dts = Ogg_GranuleToTime( p_stream, p_oggpacket->granulepos, true, false ); + vlc_tick_t i_enddts = (i_dts == VLC_TICK_INVALID) ? Ogg_GranuleToTime( p_stream, p_oggpacket->granulepos, false, false ) + : VLC_TICK_INVALID; vlc_tick_t i_expected_dts = p_stream->b_interpolation_failed ? VLC_TICK_INVALID : date_Get( &p_stream->dts ); /* Interpolated or previous end time */ if( i_dts == VLC_TICK_INVALID ) @@ -1495,7 +1525,7 @@ memcpy( p_block->p_buffer, p_oggpacket->packet + i_header_len, p_oggpacket->bytes - i_header_len ); - Ogg_QueueBlocks( p_demux, p_stream, p_block ); + Ogg_QueueBlocks( p_demux, p_stream, p_block, i_enddts, b_eos ); } static unsigned Ogg_OpusPacketDuration( ogg_packet *p_oggpacket )
View file
_service:obs_scm:vlc-beta-20220122.32b3f47bf0.obscpio/modules/gui/qt/dialogs/preferences/complete_preferences.cpp -> _service:obs_scm:vlc-beta-20220123.99f3721426.obscpio/modules/gui/qt/dialogs/preferences/complete_preferences.cpp
Changed
@@ -71,7 +71,7 @@ /* Create base cat/subcat tree from core config set */ unsigned confsize; - module_t *p_module = module_get_main(); + module_t *p_module = main_module; module_config_t *const p_config = module_config_get (p_module, &confsize); for( size_t i = 0; i < confsize; i++ ) { @@ -295,11 +295,14 @@ i_module++ ) { PrefsTreeItem *mod_item = subcat_item->child( i_module ); - mod_item->panel->apply(); + if( mod_item->panel ) + mod_item->panel->apply(); } - subcat_item->panel->apply(); + if( subcat_item->panel ) + subcat_item->panel->apply(); } - cat_item->panel->apply(); + if( cat_item->panel ) + cat_item->panel->apply(); } } @@ -462,16 +465,7 @@ { bool is_core = this->node_type != PrefsTreeItem::PLUGIN_NODE; enum vlc_config_subcat id = this->subcat_id; - - /* find our module */ - module_t *p_module; - if( !is_core ) - p_module = this->p_module; - else - { - p_module = module_get_main(); - assert( p_module ); - } + module_t *p_module = this->p_module; /* check the node itself (its name/longname/helptext) */
View file
_service:obs_scm:vlc-beta-20220122.32b3f47bf0.obscpio/modules/gui/qt/maininterface/qml/BannerSources.qml -> _service:obs_scm:vlc-beta-20220123.99f3721426.obscpio/modules/gui/qt/maininterface/qml/BannerSources.qml
Changed
@@ -80,6 +80,14 @@ anchors.fill: parent } + + MouseArea { + // don't tranfer mouse to underlying components (#26274) + anchors.fill: parent + hoverEnabled: true + preventStealing: true + } + Item { id: pLBannerSources
View file
_service:obs_scm:vlc-beta-20220122.32b3f47bf0.obscpio/modules/video_output/opengl/Makefile.am -> _service:obs_scm:vlc-beta-20220123.99f3721426.obscpio/modules/video_output/opengl/Makefile.am
Changed
@@ -165,6 +165,10 @@ libegl_display_gbm_plugin_la_SOURCES = video_output/opengl/egl_display_gbm.c libegl_display_gbm_plugin_la_CPPFLAGS = $(AM_CPPFLAGS) $(EGL_FLAGS) $(GBM_CFLAGS) libegl_display_gbm_plugin_la_LIBADD = $(EGL_LIBS) $(GBM_LIBS) +if HAVE_KMS +# DRM headers are bringing defines useful for opening DRM devices +libegl_display_gbm_plugin_la_CPPFLAGS += $(KMS_CFLAGS) -DHAVE_KMS=1 +endif if HAVE_EGL if HAVE_GBM vout_LTLIBRARIES += libegl_display_gbm_plugin.la
View file
_service:obs_scm:vlc-beta-20220122.32b3f47bf0.obscpio/modules/video_output/opengl/egl_display_gbm.c -> _service:obs_scm:vlc-beta-20220123.99f3721426.obscpio/modules/video_output/opengl/egl_display_gbm.c
Changed
@@ -31,8 +31,13 @@ #include <EGL/egl.h> #include <EGL/eglext.h> + #include <gbm.h> +#ifdef HAVE_KMS +#include <xf86drm.h> +#endif + #include "egl_display.h" struct sys @@ -57,11 +62,22 @@ static int OpenDeviceFd(const char **out_path) { + /* Usually, /dev/dri/renderD* or /dev/dri/card* on Linux */ static const char *default_drm_device_paths[] = { +#if defined(HAVE_KMS) + /* OpenBSD has moved to Linux file path for DRM. libdrm defines will + * provide the correct path, but otherwise we'll always fallback to + * the standard path for Linux. */ + DRM_DIR_NAME "/" DRM_RENDER_MINOR_NAME "128", + DRM_DIR_NAME "/" DRM_PRIMARY_MINOR_NAME "0", + DRM_DIR_NAME "/" DRM_RENDER_MINOR_NAME "129", + DRM_DIR_NAME "/" DRM_PRIMARY_MINOR_NAME "1", +#else "/dev/dri/renderD128", "/dev/dri/card0", "/dev/dri/renderD129", "/dev/dri/card1", +#endif }; for (size_t i = 0; i < ARRAY_SIZE(default_drm_device_paths); ++i)
View file
_service:obs_scm:vlc-beta.obsinfo
Changed
@@ -1,5 +1,5 @@ name: vlc-beta -version: 20220122.32b3f47bf0 -mtime: 1642839851 -commit: 32b3f47bf09b915d2f9f0ff9c58b71bf33834e2e +version: 20220123.99f3721426 +mtime: 1642929893 +commit: 99f37214269e1737429ced10be92ec5cdf74ea64
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
.