mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Initiating an emergency exit on too many UPT errors per recording
This commit is contained in:
parent
06d5342393
commit
96055681fc
@ -438,6 +438,8 @@ Gregoire Favre <greg@ulima.unil.ch>
|
|||||||
for fixing some function headers to make them compile with gcc 3.x
|
for fixing some function headers to make them compile with gcc 3.x
|
||||||
for reporting a bug in taking an active SVDRP connection into account when doing shutdown
|
for reporting a bug in taking an active SVDRP connection into account when doing shutdown
|
||||||
for translating OSD texts to the French language
|
for translating OSD texts to the French language
|
||||||
|
for suggesting to initiate an "emergency exit" if there are UPT errors during a
|
||||||
|
recording
|
||||||
|
|
||||||
Sven Grothklags <sven@uni-paderborn.de>
|
Sven Grothklags <sven@uni-paderborn.de>
|
||||||
for fixing the cutting mechanism to make it re-sync in case a frame is larger
|
for fixing the cutting mechanism to make it re-sync in case a frame is larger
|
||||||
|
6
HISTORY
6
HISTORY
@ -2652,7 +2652,7 @@ Video Disk Recorder Revision History
|
|||||||
actual CAM type as reported by the CAM. The 'ca.conf' file has been stripped
|
actual CAM type as reported by the CAM. The 'ca.conf' file has been stripped
|
||||||
down to the values 0..4.
|
down to the values 0..4.
|
||||||
|
|
||||||
2004-02-13: Version 1.3.5
|
2004-02-14: Version 1.3.5
|
||||||
|
|
||||||
- Fixed reading the EPG preferred language parameter from 'setup.conf'.
|
- Fixed reading the EPG preferred language parameter from 'setup.conf'.
|
||||||
- Fixed switching to a visible programme in case the current channel has neither
|
- Fixed switching to a visible programme in case the current channel has neither
|
||||||
@ -2663,3 +2663,7 @@ Video Disk Recorder Revision History
|
|||||||
transponders on the same frequency, with different polarization, like Hispasat
|
transponders on the same frequency, with different polarization, like Hispasat
|
||||||
at S30.0W (thanks to Thomas Bergwinkl for pointing this out). See man vdr(5)
|
at S30.0W (thanks to Thomas Bergwinkl for pointing this out). See man vdr(5)
|
||||||
for details about the enhanced channel ID format.
|
for details about the enhanced channel ID format.
|
||||||
|
- Since there appears to be no general solution for the UPT error yet, a recording
|
||||||
|
now initiates an "emergency exit" if the number of UPT errors during one
|
||||||
|
recording exceeds 10 (suggested by Gregoire Favre). Since the UPT error doesn't
|
||||||
|
happen on my system, this has not been explicitly tested.
|
||||||
|
9
remux.c
9
remux.c
@ -8,7 +8,7 @@
|
|||||||
* the Linux DVB driver's 'tuxplayer' example and were rewritten to suit
|
* the Linux DVB driver's 'tuxplayer' example and were rewritten to suit
|
||||||
* VDR's needs.
|
* VDR's needs.
|
||||||
*
|
*
|
||||||
* $Id: remux.c 1.17 2003/09/14 10:34:39 kls Exp $
|
* $Id: remux.c 1.18 2004/02/14 10:40:37 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* The calling interface of the 'cRemux::Process()' function is defined
|
/* The calling interface of the 'cRemux::Process()' function is defined
|
||||||
@ -114,6 +114,7 @@
|
|||||||
#define SC_PICTURE 0x00 // "picture header"
|
#define SC_PICTURE 0x00 // "picture header"
|
||||||
|
|
||||||
#define MAXNONUSEFULDATA (10*1024*1024)
|
#define MAXNONUSEFULDATA (10*1024*1024)
|
||||||
|
#define MAXNUMUPTERRORS 10
|
||||||
|
|
||||||
class cTS2PES {
|
class cTS2PES {
|
||||||
private:
|
private:
|
||||||
@ -459,6 +460,7 @@ cRemux::cRemux(int VPid, int APid1, int APid2, int DPid1, int DPid2, bool ExitOn
|
|||||||
dPid1 = DPid1;
|
dPid1 = DPid1;
|
||||||
dPid2 = DPid2;
|
dPid2 = DPid2;
|
||||||
exitOnFailure = ExitOnFailure;
|
exitOnFailure = ExitOnFailure;
|
||||||
|
numUPTerrors = 0;
|
||||||
synced = false;
|
synced = false;
|
||||||
skipped = 0;
|
skipped = 0;
|
||||||
resultCount = resultDelivered = 0;
|
resultCount = resultDelivered = 0;
|
||||||
@ -618,8 +620,11 @@ XXX*/
|
|||||||
if (l < 0)
|
if (l < 0)
|
||||||
return NULL; // no useful data found, wait for more
|
return NULL; // no useful data found, wait for more
|
||||||
if (pt != NO_PICTURE) {
|
if (pt != NO_PICTURE) {
|
||||||
if (pt < I_FRAME || B_FRAME < pt)
|
if (pt < I_FRAME || B_FRAME < pt) {
|
||||||
esyslog("ERROR: unknown picture type '%d'", pt);
|
esyslog("ERROR: unknown picture type '%d'", pt);
|
||||||
|
if (++numUPTerrors > MAXNUMUPTERRORS && exitOnFailure)
|
||||||
|
cThread::EmergencyExit(true);
|
||||||
|
}
|
||||||
else if (!synced) {
|
else if (!synced) {
|
||||||
if (pt == I_FRAME) {
|
if (pt == I_FRAME) {
|
||||||
resultDelivered = i; // will drop everything before this position
|
resultDelivered = i; // will drop everything before this position
|
||||||
|
3
remux.h
3
remux.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: remux.h 1.10 2003/04/26 14:13:11 kls Exp $
|
* $Id: remux.h 1.11 2004/02/14 10:40:41 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __REMUX_H
|
#ifndef __REMUX_H
|
||||||
@ -30,6 +30,7 @@ class cTS2PES;
|
|||||||
class cRemux {
|
class cRemux {
|
||||||
private:
|
private:
|
||||||
bool exitOnFailure;
|
bool exitOnFailure;
|
||||||
|
int numUPTerrors;
|
||||||
bool synced;
|
bool synced;
|
||||||
int skipped;
|
int skipped;
|
||||||
int vPid, aPid1, aPid2, dPid1, dPid2;
|
int vPid, aPid1, aPid2, dPid1, dPid2;
|
||||||
|
Loading…
Reference in New Issue
Block a user