From 99d7fe6cf9ff07deac2924c3a24cb58279ba94e3 Mon Sep 17 00:00:00 2001 From: Klaus Schmidinger Date: Sun, 13 Apr 2014 14:00:42 +0200 Subject: Fixed a possible division by zero in frame rate detection --- remux.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'remux.c') diff --git a/remux.c b/remux.c index c42bf933..5aed2673 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.75.1.5 2014/03/08 15:10:24 kls Exp $ + * $Id: remux.c 2.75.1.6 2014/04/13 13:59:21 kls Exp $ */ #include "remux.h" @@ -1511,7 +1511,12 @@ int cFrameDetector::Analyze(const uchar *Data, int Length) for (int i = 0; i < numPtsValues; i++) ptsValues[i] = ptsValues[i + 1] - ptsValues[i]; qsort(ptsValues, numPtsValues, sizeof(uint32_t), CmpUint32); - uint32_t Delta = ptsValues[0] / (framesPerPayloadUnit + parser->IFrameTemporalReferenceOffset()); + int Div = framesPerPayloadUnit; + if (framesPerPayloadUnit > 1) + Div += parser->IFrameTemporalReferenceOffset(); + if (Div <= 0) + Div = 1; + uint32_t Delta = ptsValues[0] / Div; // determine frame info: if (isVideo) { if (abs(Delta - 3600) <= 1) -- cgit v1.2.3