Message ID | 4BCB1308.6070509@tvdr.de |
---|---|
State | New |
Headers |
Received: from mail.tu-berlin.de ([130.149.7.33]) by www.linuxtv.org with esmtp (Exim 4.69) (envelope-from <Klaus.Schmidinger@tvdr.de>) id 1O3VDe-00085c-2K for vdr@linuxtv.org; Sun, 18 Apr 2010 16:11:30 +0200 X-tubIT-Incoming-IP: 188.40.50.18 Received: from racoon.tvdr.de ([188.40.50.18]) by mail.tu-berlin.de (exim-4.69/mailfrontend-a) with esmtps [TLSv1:AES256-SHA:256] for <vdr@linuxtv.org> id 1O3VDd-00007x-B0; Sun, 18 Apr 2010 16:11:29 +0200 Received: from whale.cadsoft.de (whale.tvdr.de [192.168.100.6]) by racoon.tvdr.de (8.14.3/8.14.3) with ESMTP id o3IEBQiJ020795 for <vdr@linuxtv.org>; Sun, 18 Apr 2010 16:11:27 +0200 Received: from [192.168.100.10] (hawk.cadsoft.de [192.168.100.10]) by whale.cadsoft.de (8.14.3/8.14.3) with ESMTP id o3IEBKcw017876 for <vdr@linuxtv.org>; Sun, 18 Apr 2010 16:11:21 +0200 Message-ID: <4BCB1308.6070509@tvdr.de> Date: Sun, 18 Apr 2010 16:11:20 +0200 From: Klaus Schmidinger <Klaus.Schmidinger@tvdr.de> User-Agent: Thunderbird 2.0.0.24 (X11/20100302) MIME-Version: 1.0 To: vdr@linuxtv.org References: <201004131744.30902.dplu@free.fr> In-Reply-To: <201004131744.30902.dplu@free.fr> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.0.1 (racoon.tvdr.de [188.40.50.18]); Sun, 18 Apr 2010 16:11:27 +0200 (CEST) X-tubIT-Score: 0.0 () X-PMX-Version: 5.5.4.371499, Antispam-Engine: 2.7.1.369594, Antispam-Data: 2010.4.18.140015 X-PMX-Spam: Gauge=IIIIIIII, Probability=8%, Report=' BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_1800_1899 0, BODY_SIZE_2000_LESS 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, TO_NO_NAME 0, __BOUNCE_CHALLENGE_SUBJ 0, __BOUNCE_NDR_SUBJ_EXEMPT 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __HAS_MSGID 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __MOZILLA_MSGID 0, __SANE_MSGID 0, __TO_MALFORMED_2 0, __URI_NO_MAILTO 0, __URI_NO_PATH 0, __URI_NO_WWW 0, __USER_AGENT 0' X-LSpam-Score: -3.4 (---) X-LSpam-Report: No, score=-3.4 required=5.0 tests=AWL=0.237, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1 autolearn=ham Subject: Re: [vdr] Unable to rebuild index on some French HD records X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.11 Precedence: list Reply-To: VDR Mailing List <vdr@linuxtv.org> List-Id: VDR Mailing List <vdr.linuxtv.org> List-Unsubscribe: <http://www.linuxtv.org/cgi-bin/mailman/options/vdr>, <mailto:vdr-request@linuxtv.org?subject=unsubscribe> List-Archive: <http://www.linuxtv.org/pipermail/vdr> List-Post: <mailto:vdr@linuxtv.org> List-Help: <mailto:vdr-request@linuxtv.org?subject=help> List-Subscribe: <http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr>, <mailto:vdr-request@linuxtv.org?subject=subscribe> X-List-Received-Date: Sun, 18 Apr 2010 14:11:30 -0000 Status: O X-Status: X-Keywords: X-UID: 22832 |
Commit Message
Klaus Schmidinger
April 18, 2010, 2:11 p.m. UTC
On 13.04.2010 17:44, dplu wrote: > Hi > > When we delete index file on some HD recording due to synchronous problem for > editing, sometimes vdr is not able to rebuild it , start for few seconds and > generate an errors > > Stream has "something" in it, you can add mark but not navigate between > without crashing vdr , when playing records, time goes not seconds to seconds > but every two seconds If the index is initially wrong, and ok after regenerating it, this patch may fix the initial index creation: > Is it possible for next release to increase the buffer size to 300 instead of > 100 in recording.c , class cIndexFileGenerator ? This has been tested > successfully by at least two users with same problem I don't see how increasing this buffer size would change anything. cFrameDetector::Analyze() needs to see MIN_TS_PACKETS_FOR_FRAME_DETECTOR packets, which is a mere 376 byte. So even a much smaller buffer should work. But maybe I'm missing something here and somebody can point out why increasing this buffer size would actually change anything. Klaus
Comments
Le Sunday 18 April 2010 16:11:20 Klaus Schmidinger, vous avez écrit : Hi > On 13.04.2010 17:44, dplu wrote: > > Hi > > > > When we delete index file on some HD recording due to synchronous problem > > for editing, sometimes vdr is not able to rebuild it , start for few > > seconds and generate an errors > > > > Stream has "something" in it, you can add mark but not navigate between > > without crashing vdr , when playing records, time goes not seconds to > > seconds but every two seconds > > If the index is initially wrong, and ok after regenerating it, It is not ok until the buffer size is increased ... > this patch may fix the initial index creation: > > --- remux.c 2010/02/28 14:42:07 2.42 > +++ remux.c 2010/04/05 09:32:57 2.43 > @@ -817,7 +817,7 @@ > if (synced && Processed) > return Processed; > if (Length < MIN_TS_PACKETS_FOR_FRAME_DETECTOR * TS_SIZE) > - return 0; // need more data, in case the frame type is > not stored in the first TS packet + return Processed; // > need more data, in case the frame type is not stored in the first TS packet > if (!frameDuration) { > // frame duration unknown, so collect a sequence of > PTS values: if (numPtsValues < MaxPtsValues && numIFrames < 2) { // collect > a sequence containing at least two I-frames > > > Is it possible for next release to increase the buffer size to 300 > > instead of 100 in recording.c , class cIndexFileGenerator ? This has been > > tested successfully by at least two users with same problem > > I don't see how increasing this buffer size would change anything. > cFrameDetector::Analyze() needs to see MIN_TS_PACKETS_FOR_FRAME_DETECTOR > packets, which is a mere 376 byte. So even a much smaller buffer should > work. > > But maybe I'm missing something here and somebody can point out why > increasing this buffer size would actually change anything. Not sure but what happen if the size of data stream between two keyframes is greater than max buffer value ? You will never be able to have inside one buffer range two I frames at the same time ? HD stream in France are not full standard, maybe to prevent copy or other Will test your patch this week and see if it change or not index problem Best regards > > Klaus > > _______________________________________________ > vdr mailing list > vdr@linuxtv.org > http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
On 04/18/10 18:53, dplu wrote: > Le Sunday 18 April 2010 16:11:20 Klaus Schmidinger, vous avez écrit : > Hi >> On 13.04.2010 17:44, dplu wrote: >>> Hi >>> >>> When we delete index file on some HD recording due to synchronous problem >>> for editing, sometimes vdr is not able to rebuild it , start for few >>> seconds and generate an errors >>> >>> Stream has "something" in it, you can add mark but not navigate between >>> without crashing vdr , when playing records, time goes not seconds to >>> seconds but every two seconds >> If the index is initially wrong, and ok after regenerating it, > It is not ok until the buffer size is increased ... >> this patch may fix the initial index creation: >> >> --- remux.c 2010/02/28 14:42:07 2.42 >> +++ remux.c 2010/04/05 09:32:57 2.43 >> @@ -817,7 +817,7 @@ >> if (synced && Processed) >> return Processed; >> if (Length < MIN_TS_PACKETS_FOR_FRAME_DETECTOR * TS_SIZE) >> - return 0; // need more data, in case the frame type is >> not stored in the first TS packet + return Processed; // >> need more data, in case the frame type is not stored in the first TS packet >> if (!frameDuration) { >> // frame duration unknown, so collect a sequence of >> PTS values: if (numPtsValues < MaxPtsValues && numIFrames < 2) { // collect >> a sequence containing at least two I-frames >> >>> Is it possible for next release to increase the buffer size to 300 >>> instead of 100 in recording.c , class cIndexFileGenerator ? This has been >>> tested successfully by at least two users with same problem >> I don't see how increasing this buffer size would change anything. >> cFrameDetector::Analyze() needs to see MIN_TS_PACKETS_FOR_FRAME_DETECTOR >> packets, which is a mere 376 byte. So even a much smaller buffer should >> work. >> >> But maybe I'm missing something here and somebody can point out why >> increasing this buffer size would actually change anything. > Not sure but what happen if the size of data stream between two keyframes is > greater than max buffer value ? You will never be able to have inside one > buffer range two I frames at the same time ? HD stream in France are not full > standard, maybe to prevent copy or other Only two subsequent TS packets are used to analyze the where a new frame starts. > Will test your patch this week and see if it change or not index problem I would expect this patch to fix the problem. I don't see why increasing the buffer size would help. Klaus
Hi Thanks for the patch, seems to work OK for now, as long problem was not on all recordings, long time of checking start ... will reactivate if necessary @+ Le Sunday 18 April 2010 18:53:35 dplu, vous avez écrit : > Le Sunday 18 April 2010 16:11:20 Klaus Schmidinger, vous avez écrit : > Hi > > > On 13.04.2010 17:44, dplu wrote: > > > Hi > > > > > > When we delete index file on some HD recording due to synchronous > > > problem for editing, sometimes vdr is not able to rebuild it , start > > > for few seconds and generate an errors > > > > > > Stream has "something" in it, you can add mark but not navigate between > > > without crashing vdr , when playing records, time goes not seconds to > > > seconds but every two seconds > > > > If the index is initially wrong, and ok after regenerating it, > > It is not ok until the buffer size is increased ... > > > this patch may fix the initial index creation: > > > > --- remux.c 2010/02/28 14:42:07 2.42 > > +++ remux.c 2010/04/05 09:32:57 2.43 > > @@ -817,7 +817,7 @@ > > if (synced && Processed) > > return Processed; > > if (Length < MIN_TS_PACKETS_FOR_FRAME_DETECTOR * > > TS_SIZE) - return 0; // need more data, in case the > > frame type is not stored in the first TS packet + > > return Processed; // need more data, in case the frame type is not stored > > in the first TS packet if (!frameDuration) { > > // frame duration unknown, so collect a sequence of > > PTS values: if (numPtsValues < MaxPtsValues && numIFrames < 2) { // > > collect a sequence containing at least two I-frames > > > > > Is it possible for next release to increase the buffer size to 300 > > > instead of 100 in recording.c , class cIndexFileGenerator ? This has > > > been tested successfully by at least two users with same problem > > > > I don't see how increasing this buffer size would change anything. > > cFrameDetector::Analyze() needs to see MIN_TS_PACKETS_FOR_FRAME_DETECTOR > > packets, which is a mere 376 byte. So even a much smaller buffer should > > work. > > > > But maybe I'm missing something here and somebody can point out why > > increasing this buffer size would actually change anything. > > Not sure but what happen if the size of data stream between two keyframes > is greater than max buffer value ? You will never be able to have inside > one buffer range two I frames at the same time ? HD stream in France are > not full standard, maybe to prevent copy or other > > Will test your patch this week and see if it change or not index problem > > Best regards > > > Klaus > > > > _______________________________________________ > > vdr mailing list > > vdr@linuxtv.org > > http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr > > _______________________________________________ > vdr mailing list > vdr@linuxtv.org > http://www.linuxtv.org/cgi-bin/mailman/listinfo/vdr
--- remux.c 2010/02/28 14:42:07 2.42 +++ remux.c 2010/04/05 09:32:57 2.43 @@ -817,7 +817,7 @@ if (synced && Processed) return Processed; if (Length < MIN_TS_PACKETS_FOR_FRAME_DETECTOR * TS_SIZE) - return 0; // need more data, in case the frame type is not stored in the first TS packet + return Processed; // need more data, in case the frame type is not stored in the first TS packet if (!frameDuration) { // frame duration unknown, so collect a sequence of PTS values: if (numPtsValues < MaxPtsValues && numIFrames < 2) { // collect a sequence containing at least two I-frames