The VDR Scripting plug-in 0.0.1 was just released. This is just a proof-of-concept release with a very minimal set of features and probably some bugs.
From the HISTORY file:
- Removed the '
#define FE_CAN_2ND_GEN_MODULATION', since it was wrong and the
flag is now in the driver, anyway.
- The full-featured DVB cards are now given the TS data directly for replay
(thanks to Oliver Endriss for enhancing the av7110 driver to make it replay
TS data). The patch from ftp://ftp.cadsoft.de/vdr/Developer/av7110_ts_replay__1.diff
implements this change in the driver.
The patch av7110_v4ldvb_api5_audiobuf_test_1.diff mentioned in version 1.7.2
is still necessary to avoid audio and video glitches on some channels.
- Added a typecast in
cUnbufferedFile::Write()to avoid an error message when
compiling on 64 bit systems.
- Added some missing '
const' statements to
cBitmap(thanks to Andreas Regel).
- Fixed returning complete PES packets in
cTsToPes::GetPes()(thanks to Reinhard
- Added a missing
cTransfer::Activate()(thanks to Marco Schlüßler).
- Added clearing the TS buffers in
cDevice::Detach()(thanks to Marco Schlüßler).
- Fixed incrementing the continuity counter in
to Johann Friedrichs).
- Fixed removing deleted recordings in case there is a problem. Once a recording
caused a problem with removing, no others were removed any more and an ongoing
recording could fill up the disk and cause other recordings to be deleted
automatically (reported by Reinhard Nissl).
- Added "
DEFINES += -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
Make.config.template(thanks to Johann Friedrichs for pointing this out).
Plugin authors should add this line to their Makefile or Make.config if they use
file access functions that need special versions for 64 bit offsets.
- The new command line option -i can be used to set an "instance id", which will
be used to distinguish recordings of the same broadcast made by different instances
of VDR (suggested by Frank Schmirler). This replaces the use of the "resume id"
that was introduced in version 1.7.3.
- Added checking
cDevice::PlayTs()(thanks to Reinhard
Nissl for pointing this out).
- Fixed handling the pointer field in
cPatPmtParser::ParsePmt()(thanks to Frank
Schmirler - sorry I swapped two lines when adopting the original patch).
- Checking the remaining packet length after processing the pointer field in
cPatPmtParser::ParsePmt()(suggested by Frank
- Checking the pointer field in
cPatPmtParser::ParsePmt()only in 'payload start'
packets (suggested by Frank Schmirler).
cPatPmtGeneratorto make sure the PMT pid doesn't collide with any of
the actual pids of the channel.
cDevice::PlayTsVideo()return 0 if
PlayVideo()didn't play anything.
- Added an '
int' typecast to calculations involving
compiler warnings (reported by Winfried Koehler).
- Fixed detecting frames for pure audio recordings.
- Fixed editing PES recordings. The frame type in the index.vdr file generated for
the edited PES recording is set to 1 for I-frames and 2 for all others (P- and
B-frames). The exact frame type doesn't matter for VDR, it only needs to know if
it's an I-frame or not.
- The PAT/PMT is now only processed if its version changes (reported by Reinhard
- Fixed handling the maximum video file size (reported by Udo Richter).
- Improved fast-forward/-rewind for audio recordings. The actual data is now sent
to the output device, so that it can be replayed and thus cause the proper delay.
For pure audio recordings the audio is no longer muted in fast-forward/-rewind
mode, so that some orientation regarding the position within the recording is
possible. There may still be some offset in the replay position displayed by the
progress indicator when switching from fast-forward/-rewind to play mode, as well
as in the current position during normal play mode. This is due to the various
buffers between the player and the output device and will be addressed later.
Note the new function
cDevice::IsPlayingVideo(), which is used to inform the
player whether there is video data in the currently replayed stream. If a derived
PlayPes(), it also needs to make sure this
new function works as expected.
- last version broke importing from setup menu
- Lyrics now work with Googlyrics2. Please use Googlyrics2 post beta3, the beta3 version only handles ascii text
- if several versions of lyrics for a song are found, it is now possible to choose among them.
- Lyrics: rewrite the shell script muggle_getlyrics in python and talk directly to the Googlyrics2 python code
- load images: fix buggy error handling (reported in vdr-portal.de by stevie101)
- Lyrics: Fix bug #52: line split could split within 2byte unicode char. Now removed this code from C++ and put it into the python script muggle_getlyrics.
- Lyrics: when calling "mv" to rename a file make sure mv never gets interactive
- muggle-image-convert produces less output if needed programs are not installed
- When loading lyrics, do not show just empty text but the line "loading lyrics from the internet"
- Small bugfix in channel switching code
- Added Portuguese translation provided by Chris Silva
- Updated Italian translation by Davide Cavalca
- Removed the "OSD" from the main menu entry as suggested by Davide Cavalca
- Added Ukrainian translation provided by Yarema P. aka Knedlyk
- Removed obsolete options -R and -r
- Remove remnants of VDR < 1.6 support
- Updated Russian translation provided by Oleg Roitburd (Closes #46)
- Improved error handling
- Background toggling now allows to switch between black, the configured
background transparency and full transparency as suggested by
Walter K. (Closes #41)
- Removed the OSDTELETEXT_REINSERTION_PATCH (dead code)
- Removed timingdebug code
- Merged class ChannelStatus into cTxtStatus and changed the code that
detects, if the current live channel has been changed and the
OsdTeletext receiver needs to switch to the new channel as well
- Updated French translation provided by Nival MichaÃ«l (Closes #56)
Version 0.4.0 of the tvtv-plugin for VDR is released now, some major fixes and minor updates were made since last official version 0.3.3. See the history file for more.
From the HISTORY file:
- Updated the Russian OSD texts (thanks to Oleg Roitburd).
- Fixed handling the 'pointer field' in generating and parsing PAT/PMT (thanks to
- Fixed handling modulation types for DVB-S transponders when processing the NIT.
cDvbDevice::GrabImage()to use V4L2 (thanks to Marco Schlüßler).
- Added a poll to
excessive CPU load (this is just a makeshift solution until the FF DVB cards
can play TS directly).
- The recording format is now Transport Stream. Existing recordings in PES format
can still be replayed and edited, but new recordings are done in TS.
All code for recording in PES has been removed.
The following changes were made to switch to TS recording format:
- The index file format has been changed to support file sizes of up to 1TB
(previously 2GB), and up to 65535 separate files per recording (previously
- The recording file names are now of the form
- The frame rate is now detected by looking at two subsequent PTS values.
The "frame duration" (in multiples of 1/90000) is stored in the info.vdr
file using the new tag F (thanks to Artur Skawina for helping to get the
- Several functions now have an additional parameter FramesPerSecond.
- Several functions now have an additional parameter IsPesRecording.
- The functionality of
cFileWriterwas moved into
now obsolete. This also avoids one level of data copying while recording.
c*Repackerclasses have been
- A PAT/PMT is inserted before every independent frame, so that no extra
measures need to be taken when editing a recording.
- The directory name for a recording has been changed from
YYYY-MM-DD-hh[.:]mm.pr.lt.rec(pr=priority, lt=lifetime) to
Priority and Lifetime are now stored in the
info.vdrfile with the new
tags P and L (if no such file exists, the maximum values are assumed by
default, which avoids inadvertently deleting a recording if disk space
is low). No longer storing Priority and Lifetime in the directory name
avoids starting a new recording if one of these is changed in the timer
and the recording is re-started for some reason.
Instead of Priority and Lifetime, the directory name now contains the
channel number from which the recording was made, and the "resume id" of
this instance of VDR. This avoids problems if several VDR instances record
the same show on different channels, or even on the same channel.
The '-' between channel number and resumeId prevents older versions of
VDR from "seeing" these recordings, which makes sure they won't even try
to replay them, or remove them in case the disk runs full.
- The semantics of
PlayTs*()have been changed. These functions are now
required to return the given Length (which is
TS_SIZE) if they have
processed the TS packet.
- The files "
marks" and "
resume" within a TS recording
directory are now created without the ".vdr" extension.
- The "
resume" file is no longer a binary file, but contains tagged lines
to be able to store additional information, like the selected audio or
cDevice::StillPicture()will now be called with either TS or PES data.
cDvbPlayer::Goto()no longer appends a "sequence end code" to the data.
If the output device needs this, it has to take care of it by itself.
- The index file format has been changed to support file sizes of up to 1TB
cPatPmtParser::ParsePmt()to reset vpid and vtype when switching from
a video to an audio channel (thanks to Reinhard Nissl).
cDvbDevicenow uses the
FE_CAN_2G_MODULATIONflag to determine whether a device
can handle DVB-S2. The
#defineis still there to allow people with older drivers
who don't need DVB-S2 to use this version without pathcing.
- when showing covers as bitmaps, honour the image show duration from setup
- after changing into lyrics mode, the lyrics for the first song were not
automatically loaded from the internet
- fix image modes TV and Black: They also showed the cover image
- add italian translation, contributed by Diego Pierotto
- fix off by one error when selecting tracks in play mode by using number keys,
found by Thomas Balke
- DisplayMode is now configurable, found by Thomas Balke. This defines between
how many different types of information the first line toggles in the player.
- README.mysql was incomplete
- Mysql only: Fix order of insertion into empty playlist. Found by Thomas
- update README.* about MySQL with utf8
- importing subdirectories with mugglei: sorting by folder did not work for
those tracks. Found by Thomas Balke.
- fix bug #32 reported by Anonymous: mugglei will not run from a linked subfolder
- when checking if we are in or under the top level dictory, no longer translate
current path to realpath - always go through all symlinks. Fixes bug fix for
bug #32, reported by Thomas. Hoping this does not break other configurations.
- when destroying the OSD object, save muggle state. Fixes bug #37 reported by
- updated translations by Ville Skyttä and Diego Pierotto
- Added WakeupTime
- Added shutdown message
Also available in: Atom