mythbuntu-bugs team mailing list archive
-
mythbuntu-bugs team
-
Mailing list archive
-
Message #01573
[Bug 562690] Re: No LiveTV nor recording with V4L cards and 64-bit Linux backend
For further info check this thread:
http://www.mythtvtalk.com/forum/general/13034-no-livetv-nor-
recording-0-23-fixes-23820-ubuntu-10-04-beta-2-a.html
--
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;
References