Fedora Packages

vdr-docs-2.8.4-2.fc46 in Fedora Rawhide

↵ Return to the main page of vdr-docs
View build
Search for updates

Package Info
🠗 Changelog
🠗 Provides
🠗 Files

Changelog

Date Author Change
2026-10-29 Dirk Nehring <dnehring at gmx dot net> - 2.8.4-2 - Add 16-numtracks-lock (for upstream), found with ThreadSanitizer and the dvd plugin: count the available tracks under mutexCurrentAudioTrack, under which a player announces them
2026-10-28 Dirk Nehring <dnehring at gmx dot net> - 2.8.4-1 - Update to 2.8.4 (API version 14) - Drop the patches merged into 2.8.4: fsf-address, posix-inet-functions, 08, 14, 15, 18-23, 30, 33, 35, 37-44 and 47; 24, 28, 29 and 31 went in as header-free variants (static mutex/pointer/vector in the .c file) - Drop 13-camslot-assign-lock-scope: cCamSlot::Process() calls Assign() under the slot mutex when the module is removed, so the new assignMutex inverted the lock order against Assign() itself - Rework the rest for upstream as 01-15, by priority in four groups: lifetime (01-05): new 01, 16 -> 02 (only the subtitle converter and the SPU decoder, which delete their OSDs outside the main thread, use the new cOsd::Delete(); ~cOsd() activates Osds[0] only if the active OSD was deleted, so the skins stay as they are), 03+12+the device part of 04 -> 03, 01 -> 04, new 05; lost updates and torn reads (06-07): 36 -> 06 without the header change, 17+45 -> 07; state read without a lock, by subsystem (08-13): 06 -> 08, 07+32 -> 09, 02+26+cTransferControl::receiverDevice -> 10, the PID part of 04 -> 11, 09+34 -> 12, 10+11+25+27 -> 13; globals switched for a local purpose (14-15); cTransfer::activated is under the transfer mutex in 2.8.4 now - New 01: after the EPG scan had taken the primary device, the first key after a replay started without a key press (SVDRP PLAY, a plugin's SVDRP command, the live plugin) switched back to the live channel, which deleted the control, and then passed the key to it (SIGSEGV); the switch now happens before the control is fetched - From the TSan runs of 2.8.4: 04 also re-reads 'active' in cThread::Active() when pthread_kill() finds the thread gone; new 05: the recorder thread gives the stream two seconds for the independent frame it wants to end on and then ends by itself (without video, e.g. when ChannelDataModified() restarts a recording with wrong PIDs, it never ended and Cancel(3) killed it inside cCondWait::Wait() with the mutex held); new 14: the CI TPDU dump switch is thread-local (Poll() toggles it in the CI adapter thread while cCamSlot::Write() reads it from an SVDRP CHAN); new 15: MarkObsoleteChannels() no longer switches Setup.ShowChannelNamesWithSource off and on (cChannel::Name() reads it in every thread) - Add vdr-recording-hook.sh, VDR's --record hook, enabled in the default sysconfig: runs the drop-ins in /etc/vdr/recording-hooks.d for all ten states of VDR 2.8 (before, started, after, editing, edited, deleted, copying, copied, renamed, moved), each with a 10 second limit - vdr-shutdown.sh: use all five arguments for the log line, run the drop-ins in /etc/vdr/shutdown-hooks.d first (a failing one cancels the shutdown with an OSD message), SHUTDOWN_ACTION=poweroff|suspend|hibernate in sysconfig instead of editing the script; sudoers allows suspend - vdr-set-wakeup: clear the RTC alarm when there is no timer, wake up MinEventTimeout minutes after a forced stop during a recording (as VDR itself does), keep the alarm at least two minutes in the future, leave it alone when VDR cannot be asked - vdr-moveto.sh: move through VDR (SVDRP MOVR) instead of mv behind its back, so VDR refuses recordings in use, copies across file systems and runs the recording hook; FOLDER as VDR shows it ('/' or '~' between levels), no sysconfig parsing for the video directory - runvdr: one pass with an associative array, same command line as before; vdr-config: any vdr.pc variable (--cflags, --cxxflags, ...), --list, several options per call; vdr-check-setup: point at w_scan2 and dvbv5-scan instead of the retired dvb-apps - The hooks, vdr-set-wakeup and vdr-check-setup log to the journal when run under systemd (a drop-in with StandardInput=tty, as for vaapivideo's console, puts the unit's stdout on the VT), to the terminal by hand - Document the hooks in README.package, add a vdr-moveto.sh example to reccmds.conf, %check parses the installed scripts; its negated grep checks could never fail under set -e, now explicit - Modernize the spec: %bcond, %{build_cc}/%{build_cxx}, C++ flags from %{build_cxxflags}, %{_sharedstatedir}/%{_localstatedir}/%{_rundir} for the state, cache and runtime directories, no %{?systemd_requires} (the systemd scriptlets need no dependency on systemd)
2026-10-23 Dirk Nehring <dnehring at gmx dot net> - 2.8.3-7 - Drop 46: dvbapi 2.2.8 keeps its CAM slots until VDR has deleted the devices, so VDR no longer has to wait for the device threads before the plugins stop
2026-10-14 Dirk Nehring <dnehring at gmx dot net> - 2.8.3-6 - Add 47: the DVD subpicture decoder read its highlight flag before it was ever set (UndefinedBehaviorSanitizer)
2026-10-14 Dirk Nehring <dnehring at gmx dot net> - 2.8.3-5 - Add 45: the audio and subtitle track menus read the track table without the lock a player writes it under (ThreadSanitizer, DVD replay) - Add 46: stop the device threads before the plugins stop; a CAM slot's receiver kept a device thread using the slot while dvbapi deleted it
2026-10-14 Dirk Nehring <dnehring at gmx dot net> - 2.8.3-4 - Add 43-44 for the DVD subpicture decoder: its destructor freed the subpicture with delete instead of delete[] (AddressSanitizer), and a command time that crossed the 32-bit PTS wrap ran at once or never
2026-10-11 Dirk Nehring <dnehring at gmx dot net> - 2.8.3-3 - Add 24-32 from a ThreadSanitizer run of vdr, vaapivideo, dvbapi, skinflatplus and libdvbcsa on nuc and stone: the status monitor list is walked without its mutex (skin display objects are cStatus monitors), index file entries are read while CatchUp() reallocates them, SVDRP PLAY opened the progress display on the SVDRP thread, cTransfer could still play a packet while Detach() reset the parsers, the audio track mutex and the player's thread lock could deadlock on a track selection during PMT parsing, and plain flags were written by two threads (recordings lastUpdate, volume/mute, recorder working, bonded receivers) - 02 also covers autoSelectPreferredSubtitleLanguage, 06 also the player's eof
2026-10-06 Dirk Nehring <dnehring at gmx dot net> - 2.8.3-2 - Split the StuckAtEof reset for every played frame out of 21-dvbplayer-growing-recording into 20-dvbplayer-stale-stuckateof: it fixes stock 2.8.3 ending fast forward in short recordings early (vdr-portal report), not only growing recordings; renumber 20-22 to 21-23. The built code is unchanged apart from a comment
2026-09-27 Dirk Nehring <dnehring at gmx dot net> - 2.8.3-1 - Update to 2.8.3 (API version 14) - Drop the patches merged into 2.8.3: cache-threadid, hoist-receiver-lock, fix-unused-variable, 03-osd-isopen-locking, 11-dvbdevice-stop-thread, 12-launch-transfer-after-switch, 14-svdrp-stop-order, 15-transfer-serialize-playts, 16-settrackdescriptions-lock-scope, 17-device-track-table-lock, 20-lcars-flush-control-mutex-scope, 23-device-subtitleconverter-lock, 30-detachallreceivers-lock-scope - Drop 26-capid-handlingpid-atomic: 28-device-pid-notify-lock-scope already calls cCamSlot::SetPid() outside of mutexPids, and without its mutex HandlingPid() could make a concurrent SetPid() skip a channel PID - Rework the rest for upstream as 01-17, with short descriptions and comments that give the reason: merge the pairs that guard one link (player/device, receiver PIDs/device, transfer, which also makes cTransfer::activated atomic), split the tuner patch into its atomics and a channel lock that no longer spans the signal ioctls, and fix the misplaced GetTrackId() documentation - Add 18-tsbuffer-get-timeout: faster channel switches - Add 19-22 for the end of a replay: a pause in the tail no longer ends it, B-frame tails are no longer cut, a recording that is still being written no longer ends at a stall or trickles out after its end, and PLUGINS.html describes DrainDevice() - Package the pes2ts script - Install skincurses with VDRDIR set: the plugin's make install resolved vdr.pc through the installed vdr-devel and used its API version
2026-08-22 Dirk Nehring <dnehring at gmx dot net> - 2.8.2-4 - Drop vdr-10-lcars-sttng-event-lock.patch and vdr-19-setchannel-lock-order.patch, both rejected upstream. For 19, every caller of cDevice::SetChannel() already holds the channels read lock before it takes mutexChannel, so the lock the patch hoisted was a recursive re-lock in the same thread and the lock order it was meant to fix was never inverted - Drop vdr-02-displaychannel-lock-order.patch. cDisplayChannel::DisplayInfo() is private and both of its callers already hold LOCK_CHANNELS_READ, so the channels lock the patch added was a recursive re-lock and changed no lock order. The ThreadSanitizer report behind it was a false positive: the inversion it flagged cannot deadlock, because a thread holding the channels read lock blocks cSchedules::Read() from taking the write half

Provides

  • vdr-docs

Files


Sources on Pagure