I would like to have a function to suspend VDR playback on my
Raspberry Pi 2 or 3, so that I could occasionally use the screen
for something else, such as a text console. Currently this is
impossible because the video overlay would block the view on the
text console layer.
I can think of several possible ways to achieve this.
(1) In the VDR core or in the video output plugin, monitor
/sys/devices/virtual/tty/tty0/active for changes and
automatically suspend and resume the output based on VDR …
[View More]is
running on the active virtual console. The drawback would be:
What if I detached the keyboard but forgot to switch the virtual
console back, and another family member wants to watch TV?
(2) Add a special setting to the video output plugin (rpihddevice
in my case), and activate it from the OSD using remote control.
(3) Change the VDR shutdown logic in some way, so that when the
Power key is pressed, the audio and video output will be
disabled immediately, as if the user had been inactive for a
long time. The assumption here would be that a shutdown script
or the existence of recording timers would prevent an actual
shutdown. Years ago, I had written patches to do this. This
would be easy to use from the remote control: Just press Power
to suspend the output, and any other button to resume it.
When the output is suspended, ideally I would like the tuner
device descriptor to be closed to save some power. It should
only run when needed for recordings or for updating the EPG once
in every few hours.
Marko
[View Less]
VDR version 2.7.3 is now available at the official VDR GIT archive
git://git.tvdr.de
You can also get the latest stable version with
git clone --branch stable/latest git://git.tvdr.de/vdr.git
or as a tar archive with
http://git.tvdr.de/?p=vdr.git;a=snapshot;h=stable/latest;sf=tbz2
The changes since version 2.7.2:
- Removed defining DEPRECATED_* macros with value 0, because this is the preprocessor's
default (suggested by Winfried Köhler).
- Fixed error checking in …
[View More]case of large PTS discontinuities (reported by Matthias Senzel).
- Fixed handling negative values in cSource::Position() on systems where 'int' is 64 bit
(reported by Markus Ehrnsperger, fix suggested by Winfried Köhler).
- Fixed expiring of one-time VPS timers in case there is more than one event with the
same VPS time (suggested by Markus Ehrnsperger).
- The Channel+/- keys can now be used to jump between errors while replaying a recording
(suggested by Stefan Hofmann).
- Added vdrrootdir and incdir to vdr.pc (thanks to Stefan Hofmann).
- Plugins that have been built with API version 5 do not need to be rebuilt.
Homepage: http://www.tvdr.de
Facebook: https://www.facebook.com/VideoDiskRecorder
Have fun!
Klaus
[View Less]
VDR version 2.7.2 is now available at the official VDR GIT archive
git://git.tvdr.de
You can also get the latest stable version with
git clone --branch stable/latest git://git.tvdr.de/vdr.git
or as a tar archive with
http://git.tvdr.de/?p=vdr.git;a=snapshot;h=stable/latest;sf=tbz2
The changes since version 2.7.1:
- Fix for compilers that don't like non-constant format strings (thanks to Stefan Hofmann).
- Deprecated code is now marked with [[deprecated]] to issue a …
[View More]compile time warning when
used.
- Made APIVERSION independent from VDRVERSION to avoid irritation in case only
VDRVERSION is incremented (originally suggested by Winfried Köhler, with contributions
from Lars Hanisch and Manuel Reimer).
APIVERSNUM is now 30003.
- Fixed a problem in cSchedule::Sort(), in case hasRunning was true, but there was no event
with RunningStatus() >= SI::RunningStatusPausing (reported by Markus Ehrnsperger).
- Silenced a compiler warning with gcc 14.1.0 (reported by Winfried Köhler).
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Moved error checking from recorder.c to remux.c.
- The number of errors in a recording now represents the number of broken frames.
- Now distinguishing between frames with errors and completely missing frames.
- Recording errors are now marked in the index file.
- Fixed description of cSkinDisplayReplay::SetRecording().
- Errors are now shown as diamond shaped markers in the replay progress display of the
default skins. Plugin authors can switch to the new constructor of cProgressBar to
benefit from this feature. Of course this only works with recordings that have error
information stored in their index file. If you have existing recordings with errors
and want them to be displayed in the progress bar, you can re-generate their index
file, either by deleting the old index, or by running vdr with the --genindex option.
APIVERSNUM is now 30004.
- When the index file of a recording is regenerated, errors in the recording are now
stored in the index file.
- The info file of an edited recording now contains the number of errors in the edited
version. Note that this applies only to recordings that have errors stored in their
index file. If errors are not stored in the index file, the edited version will have
its number of errors set to that of the original recording.
APIVERSNUM is now 30005.
- Fixed singular when displaying number of errors in the recording info.
- Increased the bpp of cProgressBar to 4 to handle all different colors.
- Fixed a problem with duplicate events if they are moved to a lower table ID and at the
same time get a new event ID (reported by Markus Ehrnsperger).
- Plugins need to be rebuilt.
Homepage: http://www.tvdr.de
Facebook: https://www.facebook.com/VideoDiskRecorder
Have fun!
Klaus
[View Less]
---
drivers/media/usb/cx231xx/cx231xx-cards.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/media/usb/cx231xx/cx231xx-cards.c b/drivers/media/usb/cx231xx/cx231xx-cards.c
index 92efe6c1f..bda729b42 100644
--- a/drivers/media/usb/cx231xx/cx231xx-cards.c
+++ b/drivers/media/usb/cx231xx/cx231xx-cards.c
@@ -994,6 +994,8 @@ const unsigned int cx231xx_bcount = ARRAY_SIZE(cx231xx_boards);
/* table of devices that work with this driver */
struct usb_device_id cx231xx_id_table[] = {
+…
[View More] {USB_DEVICE(0x1D19, 0x6108),
+ .driver_info = CX231XX_BOARD_PV_XCAPTURE_USB},
{USB_DEVICE(0x1D19, 0x6109),
.driver_info = CX231XX_BOARD_PV_XCAPTURE_USB},
{USB_DEVICE(0x0572, 0x5A3C),
--
2.46.1
Dear Maintainers,
This patch adds support for the USB device 1D19:6108 (Dexatek Technology Ltd. Video Grabber) to the cx231xx driver.
This device is similar to the 1D19:6109, and I have tested it successfully on my system:
* Video Capture: CONFIRMED WORKING in OBS & VLC.
* Audio Capture: CONFIRMED WORKING via command `arecord -D hw:1,0 -f S16_LE -r 48000 -c 2 audio_capture_test.wav`.
The sole modification is including a new entry to the device ID table, which can be found in `drivers/media/usb/cx231xx/cx231xx-cards.c`.
I have verified that both video and audio capture are functioning as expected.
Signed-off-by: Rohan Barar rohan.barar(a)gmail.com
Thank you for considering my patch!
Best regards,
Rohan Barar
[View Less]
VDR version 2.7.1 is now available at the official VDR GIT archive
git://git.tvdr.de
You can also get the latest stable version with
git clone --branch stable/latest git://git.tvdr.de/vdr.git
or as a tar archive with
http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.7.1;sf=tbz2
The changes since version 2.6.9:
- Removed deprecated function cDevice::SetCurrentChannel(const cChannel *Channel).
- Removed deprecated function cSkinDisplayMenu::SetItemEvent(const …
[View More]cEvent *Event, int Index,
bool Current, bool Selectable, const cChannel *Channel, bool WithDate, eTimerMatch TimerMatch).
- Removed deprecated functions from cFile.
- The default for DEPRECATED_SCHEDULE_GET_EVENT has been set to 0, which means that
the function GetEvent(tEventID EventID, time_t StartTime = 0) is no longer available.
You can add 'DEPRECATED_SCHEDULE_GET_EVENT=1' when compiling in order to restore this
functionality. However, it is recommended to use GetEventById() and GetEventByTime()
instead.
- The default for DEPRECATED_SECTIONSYNCER_SYNC_REPEAT has been set to 0, which means that
the functions Repeat() and Sync() are no longer available.
You can add 'DEPRECATED_SECTIONSYNCER_SYNC_REPEAT=1' when compiling in order to restore this
functionality. However, it is recommended to use Check() and Processed() instead.
- The default for DEPRECATED_CCONTROL has been set to 0, which means that
the function Control(bool Hidden) is no longer available.
You can add 'DEPRECATED_CCONTROL=1' when compiling in order to restore this
functionality. However, it is recommended to use Control(cMutexLock &MutexLock, bool Hidden)
instead.
- Changed the error message when trying to attach a player to a primary device without
an MPEG decoder.
- The new SVDRP command 'AUDI' can be used to list the currently available audio tracks
and select one of them.
- Fixed a crash when deleting a recording that is currently being edited, and then
immediately deleting the edited version, too (reported by Marko Mäkelä).
- The '.update' file in the video directory is now created if it doesn't already exist.
- Improved the error message when closing a frontend (thanks to Markus Ehrnsperger).
- There will be no more distinction between "developer" and "stable" versions regarding
version numbering. Version numbers are simply counted upwards, with each of the three
parts ("version", "major", "minor") always being a single digit, and '0' being skipped.
- Plugins that have been built with API version 2.6.9 do not need to be rebuilt.
Homepage: http://www.tvdr.de
Facebook: https://www.facebook.com/VideoDiskRecorder
Have fun!
Klaus
[View Less]
On my Raspberry Pi 2, I observed that VDR 2.6.9 (with the rpihddevice
plugin) would hit SIGSEGV due to dereferencing a null pointer:
#0 __GI_strlen () at ../sysdeps/arm/armv6/strlen.S:26
#1 0x76a9b434 in __GI___strdup (s=0x0) at strdup.c:41
#2 0x000ff354 in cRecording::cRecording (this=0x196cab0, FileName=0x0) at recording.c:919
#3 0x00100978 in cRecordings::DelByName (this=this@entry=0x1dd13c <cRecordings::recordings>, FileName=0x0) at recording.c:1699
#4 0x000d92f8 in …
[View More]cMenuRecordings::Delete (this=0x17bf200) at tools.h:188
#5 0x000e755c in cOsdMenu::ProcessKey (this=this@entry=0x1963be8, Key=Key@entry=kYellow) at osdbase.c:535
#6 0x000d640c in cMenuMain::ProcessKey (this=0x1963be8, Key=kYellow) at menu.c:4606
#7 0x000749a0 in main (argc=<optimized out>, argv=<optimized out>) at vdr.c:1419
To reproduce:
1. Start cutting a recording "name" (DVB-T2, H.264 in my case).
2. Delete the original recording.
3. Attempt to delete "%name", which still appears in the menu.
Note: At the time of the crash, an empty subdirectory "%name" will exist.
Because I am not familiar with this part of the code and I don't think
that https://rr-project.org would work in this environment, I did not
try to find the exact root cause or try to develop a fix. I assume that
cCutter would have removed the "%name/2024-08-*.rec" directory as soon
as it noticed that the "name" recording had disappeared. It failed to
remove "%name" or the corresponding Recordings menu entry.
Best regards,
Marko
[View Less]
VDR version 2.6.9 is now available at the official VDR GIT archive
git://git.tvdr.de
You can also get the latest stable version with
git clone --branch stable/2.6 git://git.tvdr.de/vdr.git
or as a tar archive with
http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.6.9;sf=tbz2
The changes since version 2.6.8:
- Fixed a crash in strreplace() for multiple replacements with strings of different
lengths (reported by Markus Ehrnsperger).
- Fixed handling of …
[View More]cSkinDisplayMenu::GetTextAreaFont() (reported by Matthias Senzel).
- Fixed a timeout in cDvbDevice while tuning after the frontend has been reopened.
- Fixed setting the editable width in the LCARS skin (reported by Matthias Senzel).
- Fixed restarting the EPG scan and keeping the frequency of calls to
Device->SetPowerSaveIfUnused() low.
- Added the lines from 'Fixed a timeout in cDvbDevice while tuning after the frontend
has been reopened' to cDvbTuner::ProvidesFrontend() (suggested by Markus Ehrnsperger).
Homepage: http://www.tvdr.de
Facebook: https://www.facebook.com/VideoDiskRecorder
Have fun!
Klaus
[View Less]
VDR version 2.6.8 is now available at the official VDR GIT archive
git://git.tvdr.de
You can also get the latest stable version with
git clone --branch stable/2.6 git://git.tvdr.de/vdr.git
or as a tar archive with
http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.6.8;sf=tbz2
The changes since version 2.6.7:
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Fixed a possible access of a deleted object in the EIT scanner.
- Fixed setting T2 system ID …
[View More]from NIT (thanks to Stefan Herdler).
- When starting an editing process, VDR now first checks whether there is enough
free disk space to take up the edited version of the recording.
- Added an EPG bugfix for broadcasters who put literal "\n" strings in their EPG.
Note that the string version of strreplace() has been modified, so that it
replaces all occurrences of the search string, not just the first one.
- Removed leftover cMenuRecordings::SetPath().
- The EIT scanner now checks whether there is a proper device before adding a
channel to the scan list.
- Unused devices can now be put into a power save mode (suggested by Markus
Ehrnsperger). Device plugins need to implement the new function
cDevice::SetPowerSaveMode() to make this work.
- Implemented power save mode for cDvbDevice (based on a patch from Markus
Ehrnsperger).
- Added 'lnbPowerTurnedOn = false' to cDvbTuner::ProvidesFrontend() (suggested by
Markus Ehrnsperger).
Homepage: http://www.tvdr.de
Facebook: https://www.facebook.com/VideoDiskRecorder
Have fun!
Klaus
[View Less]
VDR version 2.6.7 is now available at the official VDR GIT archive
git://git.tvdr.de
You can also get the latest stable version with
git clone --branch stable/2.6 git://git.tvdr.de/vdr.git
or as a tar archive with
http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.6.7;sf=tbz2
The changes since version 2.6.6:
- Fixed the move assignment operator to check for self-assignment (suggested by
Stefan Herdler).
- Added missing initialization of cChannel::…
[View More]nameSourceMode (thanks to Winfried Köhler).
- Modified handling channel names with source to make it thread safe (thanks to
Stefan Herdler).
- Adapted "Setup/Miscellaneous/Show channel names with source" to the new handling
in cChannel.
- Added a 15 second grace period before actually stopping a VPS timer (thanks to
Markus Ehrnsperger).
- The primary device no longer starts unnecessary threads if it doesn't have a decoder
(thanks to Markus Ehrnsperger).
- The info file of a recording is now re-read if an update of the video directory
is triggered, to make sure modifications from other VDRs are adopted.
- Updated the Hungarian OSD texts (thanks to István Füley).
- The new setup parameters "EPG scan max. channel number" and "EPG pause after scan"
can be used to tune the behavior of the EPG scan (see MANUAL for details).
- Improved handling present/following data for VPS timers (thanks to Markus Ehrnsperger).
- Logging event status changes now also shows the previous status (thanks to Markus
Ehrnsperger).
- Fixed logging when a timer has entered the VPS margin.
- The EIT scan no longer deletes the scanList if no device was switched in this pass.
- The EIT scan now skips scanList entries if a device is already tuned to that
transponder.
- The EIT scan is no longer inhibited if a timer is in VPS margin or needs the
transponder.
- If the current channel is no longer available because of a VPS timer entering the
VPS margin, live view now switches to the channel of that timer.
- A device is now always kept occupied if a timer is in VPS margin or needs the
transponder (thanks to Markus Ehrnsperger).
Homepage: http://www.tvdr.de
Facebook: https://www.facebook.com/VideoDiskRecorder
Have fun!
Klaus
[View Less]
VDR version 2.6.6 is now available at the official VDR GIT archive
git://git.tvdr.de
You can also get the latest stable version with
git clone --branch stable/2.6 git://git.tvdr.de/vdr.git
or as a tar archive with
http://git.tvdr.de/?p=vdr.git;a=snapshot;h=refs/tags/2.6.6;sf=tbz2
The changes since version 2.6.5:
- Changed installing config files to handle potentially broken 'cp -n'.
- Fixed height calculation in progress display (thanks to Matthias Senzel).
- Fixed a …
[View More]possible crash in cDevice::StopSectionHandler() (thanks to Markus
Ehrnsperger).
- Using a dummy OSD if no OSD provider is available is not considered an error any
more (thanks to Markus Ehrnsperger).
- Implemented scaling images (thanks to Andreas Baierl).
- Removed syslog calls in child process after fork() (thanks to Markus Ehrnsperger).
- Fixed an unnecessary double display of the current menu item in page up/down
(thanks to Matthias Senzel).
- Fixed an unnecessary double display of menu items in the Recordings menu (thanks to
Matthias Senzel).
- Added the move constructor to cString for better performance (thanks to Markus
Ehrnsperger).
- Added the total number of errors when logging new recording errors.
- Added '/' to the list of fuzzy characters for pattern timers.
- Fixed handling primary device on headless systems (thanks to Markus Ehrnsperger).
- Workaround in detecting frame height for channels with wrong crop parameters
(thanks to Christoph Haubrich).
- Fixed possible duplicate component entries in the info of an ongoing recording
(reported by Christoph Haubrich).
Homepage: http://www.tvdr.de
Facebook: https://www.facebook.com/VideoDiskRecorder
Have fun!
Klaus
[View Less]