From 0a2de94d07bbfea2e480c69ce3722744c375d477 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 5 Apr 2009 14:15:25 +0200 Subject: [PATCH] Fixed detecting the frame rate for radio recordings --- HISTORY | 1 + remux.c | 12 ++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/HISTORY b/HISTORY index 2fb8ca75..07b68f8e 100644 --- a/HISTORY +++ b/HISTORY @@ -6024,3 +6024,4 @@ Video Disk Recorder Revision History - Making sure any floating point numbers written use a decimal point (thanks to Oliver Endriss for pointing out a problem with the F record in the info file of a recording). +- Fixed detecting the frame rate for radio recordings. diff --git a/remux.c b/remux.c index 9a76647a..89fe85d4 100644 --- a/remux.c +++ b/remux.c @@ -4,7 +4,7 @@ * See the main source file 'vdr.c' for copyright information and * how to reach the author. * - * $Id: remux.c 2.16 2009/03/27 13:49:58 kls Exp $ + * $Id: remux.c 2.17 2009/04/05 14:07:48 kls Exp $ */ #include "remux.h" @@ -758,7 +758,7 @@ int cFrameDetector::Analyze(const uchar *Data, int Length) if (DebugFrames && !synced) dbgframes("/"); } - for (int i = PayloadOffset; i < TS_SIZE; i++) { + for (int i = PayloadOffset; scanning && i < TS_SIZE; i++) { scanner <<= 8; scanner |= Data[i]; switch (type) { @@ -813,12 +813,12 @@ int cFrameDetector::Analyze(const uchar *Data, int Length) return Processed; newFrame = true; independentFrame = true; - if (synced) - scanning = false; - else { + if (!synced) { framesInPayloadUnit = 1; - numIFrames++; + if (TsPayloadStart(Data)) + numIFrames++; } + scanning = false; break; default: esyslog("ERROR: unknown stream type %d (PID %d) in frame detector", type, pid); pid = 0; // let's just ignore any further data