Re: xine-lib 1.1.7/8 unreliable for DVB-T channel changing (verbose=9 log included)
| Newsgroups | gmane.comp.video.xine.user |
|---|---|
| Organization | nebulon.de |
| Message-ID | <[email protected]> |
Am Dienstag 20 November 2007 12:09:25 schrieb Peter Zelezny: > Hi, > > Since 1.1.7 I have found changing channels extremely unreliable. > That is, 30% of the time it'll return the "XINE" logo and give up. > > For example, if I start up xine-ui on DVB://X and change to channel > Y after it starts up, it'll fail. But if I start xine-ui to DVB://Y, > then it'll work fine. > > I have attached a verbose=9 log of such an event. Any thoughts? I'm > happy to run any other tests/debug, including recompiles! It's extremely > frustrating and I'd really like to solve it. > > P.S. Using xine-ui 0.99.5, but gxine is the same. > > Regards, > Peter. Hi, a week ago I found a bug causing sometimes a segfault on channel switch. Probably the attached patch for 1.1.8 helps you out also. (I thinks it went already into the development tree ?) Thanks, Johannes ------------------------------------------------------------------------- This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ xine-user mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/xine-user
xine-lib-1.1.8-1-dvb-segfault.patch
(text/x-diff, 1.1 KB)
--- src/demuxers/demux_ts.c 2007-08-19 01:36:45.000000000 +0200
+++ src/demuxers/demux_ts.c.new 2007-11-15 16:57:43.000000000 +0100
@@ -371,8 +371,8 @@
}
static uint32_t demux_ts_compute_crc32(demux_ts_t*this, uint8_t *data,
- uint32_t length, uint32_t crc32) {
- uint32_t i;
+ int32_t length, uint32_t crc32) {
+ int32_t i;
for(i = 0; i < length; i++) {
crc32 = (crc32 << 8) ^ this->crc32_table[(crc32 >> 24) ^ data[i]];
@@ -517,7 +517,7 @@
unsigned char *pkt, unsigned int pusi) {
uint32_t table_id;
uint32_t section_syntax_indicator;
- uint32_t section_length;
+ int32_t section_length;
uint32_t transport_stream_id;
uint32_t version_number;
uint32_t current_next_indicator;
@@ -1078,7 +1078,7 @@
uint32_t table_id;
uint32_t section_syntax_indicator;
- uint32_t section_length = 0; /* to calm down gcc */
+ int32_t section_length = 0; /* to calm down gcc */
uint32_t program_number;
uint32_t version_number;
uint32_t current_next_indicator;