mirror of
https://github.com/vdr-projects/vdr.git
synced 2025-03-01 10:50:46 +00:00
Version 2.1.2
VDR developer version 2.1.2 is now available at
ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.2.tar.bz2
A 'diff' against the previous version is available at
ftp://ftp.tvdr.de/vdr/Developer/vdr-2.1.1-2.1.2.diff
MD5 checksums:
4725e9cb26fea8fa3682dd30f5594a50 vdr-2.1.2.tar.bz2
869d9b298b432a505186328bcf0b53c6 vdr-2.1.1-2.1.2.diff
WARNING:
========
This is a *developer* version. Even though *I* use it in my productive
environment, I strongly recommend that you only use it under controlled
conditions and for testing and debugging.
From the HISTORY file:
- Updated the Finnish OSD texts (thanks to Rolf Ahrenberg).
- Fixed displaying DVB subtitles (thanks to Rolf Ahrenberg for helping to debug and
understand subtitle page refreshes):
+ Fixed handling DVB subtitle fill region codes for 2 and 8 bpp.
+ Fixed handling pages without an explicit END_OF_DISPLAY_SET_SEGMENT.
The FINISHPAGE_HACK is no longer necessary.
+ Fixed handling "page refreshes". The data is now parsed and stored closer to the
DVB standard specs, introducing "object refs" and "region refs".
+ The debug output now goes into an HTML file named dbg-log.htm and shows the actual
bitmaps (dbg-nnn.jpg) used to display the subtitles. That way it is much easier to
see what's actually going on.
+ Fixed handling subtitles encoded as a string of characters (the very first
character was always skipped).
- Fixed wrong initialization of Setup.PositionerSwing (reported by Arthur Konovalov).
- Updated the Estonian OSD texts (thanks to Arthur Konovalov).
- Fixed cleaning up old EPG events in case no epg data file is given (reported by
Dave Pickles).
- Unified the internal sequence of actions when pressing the Blue and the Back key,
respectively, during replay (reported by Thomas Maass).
- The Yellow button in the main menu no longer acts as "Pause" if "Pause key handling"
is set to "do not pause live video" (suggested by Ulf Kiener).
- The code for distributing recordings over several video directories has been
removed. VDR now by default assumes that the video directory is one big disk.
If you absolutely need to use several separate disks to store recordings, you can
write a plugin that uses the new cVideoDirectory API to implement the necessary
functionality (see PLUGINS.html, section "The video directory"). You can copy the
respective code from previous versions of videodir.c.
IMPORTANT NOTE: If you write a plugin that implements a distributed video directory,
=============== be sure to make cVideoDirectory::Rename() follow symbolic links!
This functionality was never implemented in VDR and it therefore
used a workaround in cutter.c. See the section marked with
// XXX this can be removed once RenameVideoFile() follows symlinks
in previous versions of cutter.c.
+ CloseVideoFile() is obsolete and has been removed.
+ The functions OpenVideoFile(), RenameVideoFile(), RemoveVideoFile(), VideoFileSpaceAvailable(),
VideoDiskSpace(), RemoveEmptyVideoDirectories(), IsOnVideoDirectoryFileSystem() and
PrefixVideoFileName() are now static members of cVideoDirectory and need to be called
with the proper prefix.
+ The name of the video directory is now available through cVideoDirectory::Name().
- Added renaming and moving recordings and folders, editing a recording's priority and
lifetime, and queueing cutting jobs (inspired by the "extrecmenu" plugin from Martin
Prochnow).
+ The "Recording info" menu now has a new Blue button named "Edit", which opens a
dialog in which several properties of the selected recording can be changed. It can
be renamed or moved into another folder and its priority and lifetime can be
modified (inspired by the "extrecmenu" plugin from Martin Prochnow).
The new blue "Edit" button in the "Recordings" menu opens a dialog in which a folder
can be renamed or moved. See MANUAL, section "Managing folders".
+ In the "Edit recording" menu the Yellow button ("Delete marks") allows you to delete
all editing marks of the selected recording.
+ cCutter is no longer a static class. Cutting requests should now be invoked by
calling RecordingsHandler.Add(ruCut, FileName). See the new cRecordingsHandler
class in recording.h.
+ Cutting jobs are now placed in a queue (together with any move or copy jobs) and
are processed one by one.
+ The new SVDRP command RENR can be used to rename a recording (suggested by Rolf
Ahrenberg).
+ Note that in several places in the source code a "copy" operation is mentioned,
however there is no user interface for this, yet.
- Changed some variable names in positioner.c to match the names used in the page with
the explanation on vdr-portal.de.
- Updated the Italian OSD texts (thanks to Diego Pierotto).
- Fixed writing group separators to channels.conf that contain a comma (reported by
Eike Edener).
- Now also checking the source (in addition to the transponder) when setting the
system time from the TDT, which avoids problems in case devices are tuned to the
same transponder on different sources, and these broadcast different time data
(reported by Torsten Lang).
- Changed cRecorder::Action() to use cTimeMs instead of time() to avoid problems with
unjustified "video data stream broken" errors in case the system time is changed
while a recording is active (reported by Torsten Lang).
- Revised the section on "Learning the remote control keys" in the INSTALL file to
avoid the impression that there actually is a default remote.conf file, and to
not use any alphabetic keys for special functions, so that they remain available
for textual input.
- The function cRecordings::MBperMinute() now only takes into account recordings with
less than 5 seconds per megabyte, in an attempt to filter out radio recordings
(thanks to Harald Koenig). The result of this function was way off any realistic
value in case there are many radio recordings in the video directory.
- Added maximum signal strength value for TechniSat SkyStar 2 DVB-S rev 2.3P (thanks
to Guido Cordaro).
- Fixed an inconsistent behavior between opening the Recordings menu manually via the
main menu and by pressing the Recordings key. In the latter case it automatically
opened all sub folders to position the cursor to the last replayed recording, which
is unexpected at this point (reported by Helmut Auer). You can still navigate to
the last replayed recording (if any) by pressing Ok repeatedly in the Recordings
menu.
This commit is contained in:
committed by
Dieter Hametner
parent
5076cfb2ed
commit
277d66bfe1
40
cutter.h
40
cutter.h
@@ -4,7 +4,7 @@
|
||||
* See the main source file 'vdr.c' for copyright information and
|
||||
* how to reach the author.
|
||||
*
|
||||
* $Id: cutter.h 3.0 2012/02/16 12:05:33 kls Exp $
|
||||
* $Id: cutter.h 3.1 2013/10/05 11:34:55 kls Exp $
|
||||
*/
|
||||
|
||||
#ifndef __CUTTER_H
|
||||
@@ -17,21 +17,31 @@ class cCuttingThread;
|
||||
|
||||
class cCutter {
|
||||
private:
|
||||
static cMutex mutex;
|
||||
static cString originalVersionName;
|
||||
static cString editedVersionName;
|
||||
static cCuttingThread *cuttingThread;
|
||||
static bool error;
|
||||
static bool ended;
|
||||
cString originalVersionName;
|
||||
cString editedVersionName;
|
||||
cCuttingThread *cuttingThread;
|
||||
bool error;
|
||||
public:
|
||||
static bool Start(const char *FileName);
|
||||
static void Stop(void);
|
||||
static bool Active(const char *FileName = NULL);
|
||||
///< Returns true if the cutter is currently active.
|
||||
///< If a FileName is given, true is only returned if either the
|
||||
///< original or the edited file name is equal to FileName.
|
||||
static bool Error(void);
|
||||
static bool Ended(void);
|
||||
cCutter(const char *FileName);
|
||||
///< Sets up a new cutter for the given FileName, which must be the full path
|
||||
///< name of an existing recording directory.
|
||||
~cCutter();
|
||||
static cString EditedFileName(const char *FileName);
|
||||
///< Returns the full path name of the edited version of the recording with
|
||||
///< the given FileName. This static function can be used independent of any
|
||||
///< cCutter object, to determine the file name beforehand.
|
||||
///< Returns NULL in case of error.
|
||||
bool Start(void);
|
||||
///< Starts the actual cutting process.
|
||||
///< Returns true if successful.
|
||||
///< If Start() is called while the cutting process is already active, nothing
|
||||
///< happens and false will be returned.
|
||||
void Stop(void);
|
||||
///< Stops an ongoing cutting process.
|
||||
bool Active(void);
|
||||
///< Returns true if the cutter is currently active.
|
||||
bool Error(void);
|
||||
///< Returns true if an error occurred while cutting the recording.
|
||||
};
|
||||
|
||||
bool CutRecording(const char *FileName);
|
||||
|
||||
Reference in New Issue
Block a user