1
0
mirror of https://github.com/VDR4Arch/vdr.git synced 2023-10-10 13:36:52 +02:00

Fixed detecting frames on radio channels

This commit is contained in:
Klaus Schmidinger 2011-08-27 14:27:22 +02:00
parent d2342ae2ef
commit 6c110a7272
3 changed files with 6 additions and 2 deletions

View File

@ -2771,3 +2771,6 @@ Mark Hawes <MARK.HAWES@au.fujitsu.com>
Frank Niederwipper <f.niederwipper@gmail.com> Frank Niederwipper <f.niederwipper@gmail.com>
for reporting a problem in timer handling in case a recording directory can't for reporting a problem in timer handling in case a recording directory can't
be created be created
Chris Mayo <aklhfex@gmail.com>
for reporting a problem with detecting frames on radio channels

View File

@ -6737,3 +6737,4 @@ Video Disk Recorder Revision History
- The dvbsddevice plugin now supports the new option --outputonly, which disables - The dvbsddevice plugin now supports the new option --outputonly, which disables
receiving on SD FF devices and uses the device only for output (thanks to Udo receiving on SD FF devices and uses the device only for output (thanks to Udo
Richter). Richter).
- Fixed detecting frames on radio channels (reported by Chris Mayo).

View File

@ -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.c 2.59 2011/08/20 09:07:26 kls Exp $ * $Id: remux.c 2.60 2011/08/27 14:20:18 kls Exp $
*/ */
#include "remux.h" #include "remux.h"
@ -840,7 +840,7 @@ int cFrameDetector::Analyze(const uchar *Data, int Length)
return Processed; // flush everything before this new payload return Processed; // flush everything before this new payload
if (framesPerSecond <= 0.0) { if (framesPerSecond <= 0.0) {
// frame rate unknown, so collect a sequence of PTS values: // frame rate unknown, so collect a sequence of PTS values:
if (numPtsValues < MaxPtsValues && numIFrames < 2) { // collect a sequence containing at least two I-frames if (numPtsValues < 2 || numPtsValues < MaxPtsValues && numIFrames < 2) { // collect a sequence containing at least two I-frames
const uchar *Pes = Data + TsPayloadOffset(Data); const uchar *Pes = Data + TsPayloadOffset(Data);
if (numIFrames && PesHasPts(Pes)) { if (numIFrames && PesHasPts(Pes)) {
ptsValues[numPtsValues] = PesGetPts(Pes); ptsValues[numPtsValues] = PesGetPts(Pes);