← Back to team overview

mythbuntu-bugs team mailing list archive

[Bug 562690] [NEW] No LiveTV nor recording with V4L cards and 64-bit Linux backend

 

Public bug reported:

Binary package hint: mythtv

Package: mythtv 0.23.0+fixes23820-0ubuntu1
Ubuntu: Lucid 10.04 Beta 2 LTS 64-bit

Problem:
LiveTV stalls on the frontend with the 'Please wait' message for a couple of seconds and then turns to black; after a couple more seconds the 'Video frame buffering failed too many times' dialog pops up.
Recording creates a very small file (~1 MB/minute) and when attempting to play it back it does the same as LiveTV.

Context:
Backend running on a 64-bit system, with V4L capture cards (anything that compresses by RTJPEG + LZO for the network).

Analysis:
In line 3050 of the NuppelVideoRecorder.cpp file a pointer to the variable 'out_len' is passed to the function lzo1x_1_compress, typecast from a pointer to a int (&out_len) to a pointer to a lzo_uint (lzo_uint *). But when compiling on a 64-bit system an int = 4 bytes and lzo_uint = 8 bytes. So when the function stores the value in the 'out_len' variable it overwrites the previous variable on the stack, that is 'tmp'. This causes the call to ringBuffer->Write(strm, tmp) to not write any frame data.
The problem may actually be caused by incorrect #defines in the lzoconf.h file.

Possible solution:
Change the line 2902 from :

int tmp = 0,out_len = OUT_LEN;

to:

int tmp = 0;
lzo_uint out_len = OUT_LEN;

** Affects: mythtv (Ubuntu)
     Importance: Undecided
         Status: New

-- 
No LiveTV nor recording with V4L cards and 64-bit Linux backend
https://bugs.launchpad.net/bugs/562690
You received this bug notification because you are a member of Mythbuntu
Bug Team, which is subscribed to mythtv in ubuntu.

Status in “mythtv” package in Ubuntu: New

Bug description:
Binary package hint: mythtv

Package: mythtv 0.23.0+fixes23820-0ubuntu1
Ubuntu: Lucid 10.04 Beta 2 LTS 64-bit

Problem:
LiveTV stalls on the frontend with the 'Please wait' message for a couple of seconds and then turns to black; after a couple more seconds the 'Video frame buffering failed too many times' dialog pops up.
Recording creates a very small file (~1 MB/minute) and when attempting to play it back it does the same as LiveTV.

Context:
Backend running on a 64-bit system, with V4L capture cards (anything that compresses by RTJPEG + LZO for the network).

Analysis:
In line 3050 of the NuppelVideoRecorder.cpp file a pointer to the variable 'out_len' is passed to the function lzo1x_1_compress, typecast from a pointer to a int (&out_len) to a pointer to a lzo_uint (lzo_uint *). But when compiling on a 64-bit system an int = 4 bytes and lzo_uint = 8 bytes. So when the function stores the value in the 'out_len' variable it overwrites the previous variable on the stack, that is 'tmp'. This causes the call to ringBuffer->Write(strm, tmp) to not write any frame data.
The problem may actually be caused by incorrect #defines in the lzoconf.h file.

Possible solution:
Change the line 2902 from :

int tmp = 0,out_len = OUT_LEN;

to:

int tmp = 0;
lzo_uint out_len = OUT_LEN;





Follow ups

References