From patchwork Wed Jan 7 22:34:06 2009 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Reinhard Nissl X-Patchwork-Id: 12693 Received: from mail.gmx.net ([213.165.64.20]) by www.linuxtv.org with smtp (Exim 4.63) (envelope-from ) id 1LKgz7-0004MM-VB for vdr@linuxtv.org; Wed, 07 Jan 2009 23:34:48 +0100 Received: (qmail invoked by alias); 07 Jan 2009 22:34:12 -0000 Received: from p549356F5.dip.t-dialin.net (EHLO [192.168.101.15]) [84.147.86.245] by mail.gmx.net (mp007) with SMTP; 07 Jan 2009 23:34:12 +0100 X-Authenticated: #527675 X-Provags-ID: V01U2FsdGVkX1+V/YhmEwqVQbM9xSX8OJIXBBWAAMfdUI7Ta3ZqTx hVqUegNjVcvC31 Message-ID: <49652DDE.70501@gmx.de> Date: Wed, 07 Jan 2009 23:34:06 +0100 From: Reinhard Nissl User-Agent: Mozilla/5.0 (X11; U; Linux i686; de; rv:1.8.1.17) Gecko/20080922 SUSE/2.0.0.17-0.1 Thunderbird/2.0.0.17 Mnenhy/0.7.5.666 MIME-Version: 1.0 To: VDR Mailing List References: <4963735A.2090706@cadsoft.de> In-Reply-To: <4963735A.2090706@cadsoft.de> X-Y-GMX-Trusted: 0 X-FuHaFi: 0.72 X-LSpam-Score: -2.5 (--) X-LSpam-Report: No, score=-2.5 required=5.0 tests=AWL=0.093, BAYES_00=-2.599 autolearn=ham Subject: Re: [vdr] [ANNOUNCE] VDR developer version 1.7.3 X-BeenThere: vdr@linuxtv.org X-Mailman-Version: 2.1.9 Precedence: list Reply-To: VDR Mailing List List-Id: VDR Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 07 Jan 2009 22:34:48 -0000 Status: O X-Status: X-Keywords: X-UID: 19084 Hi, according to documentation, cTsToPes::GetPes() shall return a complete PES packet. The attached diff fixes this. cDevice::PlayTsAudio() and cDevice::PlayTsSubtitle() have to return the Length passed as parameter. But cTsToPes::GetPes() modified this parameter. The attached diff fixes this like for cDevice::PlayTsVideo(). Bye. --- ../vdr-1.7.3-orig/remux.c 2009-01-06 15:46:21.000000000 +0100 +++ remux.c 2009-01-07 23:16:54.000000000 +0100 @@ -559,8 +559,10 @@ const uchar *cTsToPes::GetPes(int &Lengt } else { Length = PesLength(data); - offset = Length; // to make sure we break out in case of garbage data - return data; + if (Length <= length) { + offset = Length; // to make sure we break out in case of garbage data + return data; + } } } return NULL;