From patchwork Sun Aug 7 08:10:42 2005 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Reinhard Nissl X-Patchwork-Id: 11967 Received: from imap.gmx.net ([213.165.64.20] helo=mail.gmx.net) by www.linuxtv.org with smtp (Exim 4.34) id 1E1gG4-0006AP-8s for vdr@linuxtv.org; Sun, 07 Aug 2005 10:11:48 +0200 Received: (qmail invoked by alias); 07 Aug 2005 08:11:15 -0000 Received: from ambg-d9b97164.pool.mediaWays.net (EHLO [192.168.101.15]) [217.185.113.100] by mail.gmx.net (mp013) with SMTP; 07 Aug 2005 10:11:15 +0200 X-Authenticated: #527675 Message-ID: <42F5C202.50602@gmx.de> Date: Sun, 07 Aug 2005 10:10:42 +0200 From: Reinhard Nissl User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050317) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Guy Roussin Subject: Re: [vdr] vdr slowness when browsing channels References: <200508062107.j76L7xR19128@teledetection.fr> In-Reply-To: <200508062107.j76L7xR19128@teledetection.fr> X-Y-GMX-Trusted: 0 Cc: Klaus Schmidinger's VDR X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Klaus Schmidinger's VDR List-Id: Klaus Schmidinger's VDR List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Aug 2005 08:11:48 -0000 Status: O X-Status: X-Keywords: X-UID: 3967 Hi, Guy Roussin wrote: > I notice that vdr is slow when i try to quickly browse > channels. it eats around 18-20% of the cpu (atlon1200) when > i hold left or right key when browsing channels (vdr 1.3.27 > vanilla - classic skin) . > With text2skin (1.0) and Enigma, it eats around 40-50% of > the cpu and browsing channels is very very slow ... > Note: cat channels.conf | wc -l --> 2600 lines Just give the attached patch a try and report the effect. The problem seems to be, that for scrolling one line, all 2600 channels are sent to plugins. The patch changes this behaviour to just send those channels to plugins that will be shown on screen by VDR. Other people say that this change is not good as some plugins are able to display more lines than VDR does and therefore they nolonger receive the necessary data. I'd vote for a change in API where VDR just announces the lines it will display on screen and any plugin that needs more lines than that should be able to pull this data on its own. Bye. --- ../vdr-1.3.27-orig/osdbase.c 2005-06-18 12:30:51.000000000 +0200 +++ osdbase.c 2005-07-16 17:49:47.000000000 +0200 @@ -196,8 +196,11 @@ void cOsdMenu::Display(void) int count = Count(); if (count > 0) { int ni = 0; - for (cOsdItem *item = First(); item; item = Next(item)) + for (cOsdItem *item = Get(first); item; item = Next(item)) { cStatus::MsgOsdItem(item->Text(), ni++); + if (ni == displayMenuItems) + break; + } if (current < 0) current = 0; // just for safety - there HAS to be a current item! if (current - first >= displayMenuItems || current < first) {