mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
When pausing live video, the current audio and subtitle tracks are now retained
This commit is contained in:
parent
250419d2c9
commit
45f660e358
3
HISTORY
3
HISTORY
@ -7534,7 +7534,7 @@ Video Disk Recorder Revision History
|
|||||||
- Reduced the number of retries in cTransfer::Receive() to avoid blocking recordings
|
- Reduced the number of retries in cTransfer::Receive() to avoid blocking recordings
|
||||||
in case the primary device can't handle the current live signal.
|
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).
|
- 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).
|
- 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).
|
switched (reported by Uwe Scheffler).
|
||||||
- Updated the Slovakian language texts (thanks to Milan Hrala).
|
- Updated the Slovakian language texts (thanks to Milan Hrala).
|
||||||
- Improved LIRC timing for repeat function.
|
- Improved LIRC timing for repeat function.
|
||||||
|
- When pausing live video, the current audio and subtitle tracks are now retained.
|
||||||
|
@ -282,6 +282,7 @@ Time Shifting:
|
|||||||
deleted.
|
deleted.
|
||||||
- The setup parameter "Recording/Instant rec. time (min)" can now be set to '0',
|
- The setup parameter "Recording/Instant rec. time (min)" can now be set to '0',
|
||||||
which means to record only the currently running event.
|
which means to record only the currently running event.
|
||||||
|
- When pausing live video, the current audio and subtitle tracks are now retained.
|
||||||
|
|
||||||
Timers:
|
Timers:
|
||||||
|
|
||||||
|
6
config.h
6
config.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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
|
#ifndef __CONFIG_H
|
||||||
@ -27,8 +27,8 @@
|
|||||||
|
|
||||||
// The plugin API's version number:
|
// The plugin API's version number:
|
||||||
|
|
||||||
#define APIVERSION "1.7.36"
|
#define APIVERSION "1.7.37"
|
||||||
#define APIVERSNUM 10736 // Version * 10000 + Major * 100 + Minor
|
#define APIVERSNUM 10737 // Version * 10000 + Major * 100 + Minor
|
||||||
|
|
||||||
// When loading plugins, VDR searches them by their APIVERSION, which
|
// When loading plugins, VDR searches them by their APIVERSION, which
|
||||||
// may be smaller than VDRVERSION in case there have been no changes to
|
// may be smaller than VDRVERSION in case there have been no changes to
|
||||||
|
9
device.c
9
device.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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"
|
#include "device.h"
|
||||||
@ -98,6 +98,7 @@ cDevice::cDevice(void)
|
|||||||
currentAudioTrack = ttNone;
|
currentAudioTrack = ttNone;
|
||||||
currentAudioTrackMissingCount = 0;
|
currentAudioTrackMissingCount = 0;
|
||||||
currentSubtitleTrack = ttNone;
|
currentSubtitleTrack = ttNone;
|
||||||
|
keepTracks = false;
|
||||||
liveSubtitle = NULL;
|
liveSubtitle = NULL;
|
||||||
dvbSubtitleConverter = NULL;
|
dvbSubtitleConverter = NULL;
|
||||||
autoSelectPreferredSubtitleLanguage = true;
|
autoSelectPreferredSubtitleLanguage = true;
|
||||||
@ -923,6 +924,8 @@ void cDevice::SetVolume(int Volume, bool Absolute)
|
|||||||
|
|
||||||
void cDevice::ClrAvailableTracks(bool DescriptionsOnly, bool IdsOnly)
|
void cDevice::ClrAvailableTracks(bool DescriptionsOnly, bool IdsOnly)
|
||||||
{
|
{
|
||||||
|
if (keepTracks)
|
||||||
|
return;
|
||||||
if (DescriptionsOnly) {
|
if (DescriptionsOnly) {
|
||||||
for (int i = ttNone; i < ttMaxTrackTypes; i++)
|
for (int i = ttNone; i < ttMaxTrackTypes; i++)
|
||||||
*availableTracks[i].description = 0;
|
*availableTracks[i].description = 0;
|
||||||
@ -1044,6 +1047,8 @@ bool cDevice::SetCurrentSubtitleTrack(eTrackType Type, bool Manual)
|
|||||||
|
|
||||||
void cDevice::EnsureAudioTrack(bool Force)
|
void cDevice::EnsureAudioTrack(bool Force)
|
||||||
{
|
{
|
||||||
|
if (keepTracks)
|
||||||
|
return;
|
||||||
if (Force || !availableTracks[currentAudioTrack].id) {
|
if (Force || !availableTracks[currentAudioTrack].id) {
|
||||||
eTrackType PreferredTrack = ttAudioFirst;
|
eTrackType PreferredTrack = ttAudioFirst;
|
||||||
int PreferredAudioChannel = 0;
|
int PreferredAudioChannel = 0;
|
||||||
@ -1075,6 +1080,8 @@ void cDevice::EnsureAudioTrack(bool Force)
|
|||||||
|
|
||||||
void cDevice::EnsureSubtitleTrack(void)
|
void cDevice::EnsureSubtitleTrack(void)
|
||||||
{
|
{
|
||||||
|
if (keepTracks)
|
||||||
|
return;
|
||||||
if (Setup.DisplaySubtitles) {
|
if (Setup.DisplaySubtitles) {
|
||||||
eTrackType PreferredTrack = ttNone;
|
eTrackType PreferredTrack = ttNone;
|
||||||
int LanguagePreference = INT_MAX; // higher than the maximum possible value
|
int LanguagePreference = INT_MAX; // higher than the maximum possible value
|
||||||
|
7
device.h
7
device.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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
|
#ifndef __DEVICE_H
|
||||||
@ -490,6 +490,7 @@ private:
|
|||||||
cMutex mutexCurrentSubtitleTrack;
|
cMutex mutexCurrentSubtitleTrack;
|
||||||
int currentAudioTrackMissingCount;
|
int currentAudioTrackMissingCount;
|
||||||
bool autoSelectPreferredSubtitleLanguage;
|
bool autoSelectPreferredSubtitleLanguage;
|
||||||
|
bool keepTracks;
|
||||||
int pre_1_3_19_PrivateStream;
|
int pre_1_3_19_PrivateStream;
|
||||||
protected:
|
protected:
|
||||||
virtual void SetAudioTrackDevice(eTrackType Type);
|
virtual void SetAudioTrackDevice(eTrackType Type);
|
||||||
@ -539,6 +540,10 @@ public:
|
|||||||
void EnsureSubtitleTrack(void);
|
void EnsureSubtitleTrack(void);
|
||||||
///< Makes sure one of the preferred language subtitle tracks is selected.
|
///< Makes sure one of the preferred language subtitle tracks is selected.
|
||||||
///< Only has an effect if Setup.DisplaySubtitles is on.
|
///< 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
|
// Audio facilities
|
||||||
|
|
||||||
|
4
menu.c
4
menu.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* 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"
|
#include "menu.h"
|
||||||
@ -4485,6 +4485,7 @@ cString cReplayControl::fileName;
|
|||||||
cReplayControl::cReplayControl(bool PauseLive)
|
cReplayControl::cReplayControl(bool PauseLive)
|
||||||
:cDvbPlayerControl(fileName, PauseLive)
|
:cDvbPlayerControl(fileName, PauseLive)
|
||||||
{
|
{
|
||||||
|
cDevice::PrimaryDevice()->SetKeepTracks(PauseLive);
|
||||||
currentReplayControl = this;
|
currentReplayControl = this;
|
||||||
displayReplay = NULL;
|
displayReplay = NULL;
|
||||||
marksModified = false;
|
marksModified = false;
|
||||||
@ -4504,6 +4505,7 @@ cReplayControl::cReplayControl(bool PauseLive)
|
|||||||
|
|
||||||
cReplayControl::~cReplayControl()
|
cReplayControl::~cReplayControl()
|
||||||
{
|
{
|
||||||
|
cDevice::PrimaryDevice()->SetKeepTracks(false);
|
||||||
Hide();
|
Hide();
|
||||||
cStatus::MsgReplaying(this, NULL, fileName, false);
|
cStatus::MsgReplaying(this, NULL, fileName, false);
|
||||||
Stop();
|
Stop();
|
||||||
|
Loading…
Reference in New Issue
Block a user