summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKlaus Schmidinger <vdr@tvdr.de>2013-02-01 12:06:50 +0100
committerKlaus Schmidinger <vdr@tvdr.de>2013-02-01 12:06:50 +0100
commit45f660e35894902316045782232cb5a95a971212 (patch)
tree33d43b061edbe71baf5590896728b67271001ca5
parent250419d2c9fce77bdd4714d0d7a0debbd893db51 (diff)
downloadvdr-45f660e35894902316045782232cb5a95a971212.tar.gz
vdr-45f660e35894902316045782232cb5a95a971212.tar.bz2
When pausing live video, the current audio and subtitle tracks are now retained
-rw-r--r--HISTORY3
-rw-r--r--UPDATE-2.0.01
-rw-r--r--config.h6
-rw-r--r--device.c9
-rw-r--r--device.h7
-rw-r--r--menu.c4
6 files changed, 23 insertions, 7 deletions
diff --git a/HISTORY b/HISTORY
index 012ea082..d7e22972 100644
--- a/HISTORY
+++ b/HISTORY
@@ -7534,7 +7534,7 @@ Video Disk Recorder Revision History
- Reduced the number of retries in cTransfer::Receive() to avoid blocking recordings
in case the primary device can't handle the current live signal.
-2013-01-30: Version 1.7.37
+2013-02-01: Version 1.7.37
- Now also using FindHeader() in cMpeg2Fixer::AdjTref() (pointed out by Sören Moch).
- Added missing template for DVBDIR to Make.config.template (reported by Derek Kelly).
@@ -7558,3 +7558,4 @@ Video Disk Recorder Revision History
switched (reported by Uwe Scheffler).
- Updated the Slovakian language texts (thanks to Milan Hrala).
- Improved LIRC timing for repeat function.
+- When pausing live video, the current audio and subtitle tracks are now retained.
diff --git a/UPDATE-2.0.0 b/UPDATE-2.0.0
index d1753678..b13ac410 100644
--- a/UPDATE-2.0.0
+++ b/UPDATE-2.0.0
@@ -282,6 +282,7 @@ Time Shifting:
deleted.
- The setup parameter "Recording/Instant rec. time (min)" can now be set to '0',
which means to record only the currently running event.
+- When pausing live video, the current audio and subtitle tracks are now retained.
Timers:
diff --git a/config.h b/config.h
index 5832c1df..44ea7146 100644
--- a/config.h
+++ b/config.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: config.h 2.61 2013/01/22 17:08:50 kls Exp $
+ * $Id: config.h 2.62 2013/02/01 12:00:35 kls Exp $
*/
#ifndef __CONFIG_H
@@ -27,8 +27,8 @@
// The plugin API's version number:
-#define APIVERSION "1.7.36"
-#define APIVERSNUM 10736 // Version * 10000 + Major * 100 + Minor
+#define APIVERSION "1.7.37"
+#define APIVERSNUM 10737 // Version * 10000 + Major * 100 + Minor
// When loading plugins, VDR searches them by their APIVERSION, which
// may be smaller than VDRVERSION in case there have been no changes to
diff --git a/device.c b/device.c
index 2678d688..af416411 100644
--- a/device.c
+++ b/device.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: device.c 2.70 2012/11/19 09:59:09 kls Exp $
+ * $Id: device.c 2.71 2013/02/01 12:00:09 kls Exp $
*/
#include "device.h"
@@ -98,6 +98,7 @@ cDevice::cDevice(void)
currentAudioTrack = ttNone;
currentAudioTrackMissingCount = 0;
currentSubtitleTrack = ttNone;
+ keepTracks = false;
liveSubtitle = NULL;
dvbSubtitleConverter = NULL;
autoSelectPreferredSubtitleLanguage = true;
@@ -923,6 +924,8 @@ void cDevice::SetVolume(int Volume, bool Absolute)
void cDevice::ClrAvailableTracks(bool DescriptionsOnly, bool IdsOnly)
{
+ if (keepTracks)
+ return;
if (DescriptionsOnly) {
for (int i = ttNone; i < ttMaxTrackTypes; i++)
*availableTracks[i].description = 0;
@@ -1044,6 +1047,8 @@ bool cDevice::SetCurrentSubtitleTrack(eTrackType Type, bool Manual)
void cDevice::EnsureAudioTrack(bool Force)
{
+ if (keepTracks)
+ return;
if (Force || !availableTracks[currentAudioTrack].id) {
eTrackType PreferredTrack = ttAudioFirst;
int PreferredAudioChannel = 0;
@@ -1075,6 +1080,8 @@ void cDevice::EnsureAudioTrack(bool Force)
void cDevice::EnsureSubtitleTrack(void)
{
+ if (keepTracks)
+ return;
if (Setup.DisplaySubtitles) {
eTrackType PreferredTrack = ttNone;
int LanguagePreference = INT_MAX; // higher than the maximum possible value
diff --git a/device.h b/device.h
index e8673969..a6254517 100644
--- a/device.h
+++ b/device.h
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: device.h 2.44 2013/01/22 17:01:16 kls Exp $
+ * $Id: device.h 2.45 2013/02/01 11:54:08 kls Exp $
*/
#ifndef __DEVICE_H
@@ -490,6 +490,7 @@ private:
cMutex mutexCurrentSubtitleTrack;
int currentAudioTrackMissingCount;
bool autoSelectPreferredSubtitleLanguage;
+ bool keepTracks;
int pre_1_3_19_PrivateStream;
protected:
virtual void SetAudioTrackDevice(eTrackType Type);
@@ -539,6 +540,10 @@ public:
void EnsureSubtitleTrack(void);
///< Makes sure one of the preferred language subtitle tracks is selected.
///< Only has an effect if Setup.DisplaySubtitles is on.
+ void SetKeepTracks(bool KeepTracks) { keepTracks = KeepTracks; }
+ ///< Controls whether the current audio and subtitle track settings shall
+ ///< be kept as they currently are, or if they shall be automatically
+ ///< adjusted. This is used when pausing live video.
// Audio facilities
diff --git a/menu.c b/menu.c
index d7faa872..e303681d 100644
--- a/menu.c
+++ b/menu.c
@@ -4,7 +4,7 @@
* See the main source file 'vdr.c' for copyright information and
* how to reach the author.
*
- * $Id: menu.c 2.74 2013/01/17 14:20:08 kls Exp $
+ * $Id: menu.c 2.75 2013/02/01 12:00:10 kls Exp $
*/
#include "menu.h"
@@ -4485,6 +4485,7 @@ cString cReplayControl::fileName;
cReplayControl::cReplayControl(bool PauseLive)
:cDvbPlayerControl(fileName, PauseLive)
{
+ cDevice::PrimaryDevice()->SetKeepTracks(PauseLive);
currentReplayControl = this;
displayReplay = NULL;
marksModified = false;
@@ -4504,6 +4505,7 @@ cReplayControl::cReplayControl(bool PauseLive)
cReplayControl::~cReplayControl()
{
+ cDevice::PrimaryDevice()->SetKeepTracks(false);
Hide();
cStatus::MsgReplaying(this, NULL, fileName, false);
Stop();