Opened 9 years ago

Closed 9 years ago

Last modified 7 years ago

#9201 closed defect (Fixed)

LiveTV channel change often fails.

Reported by: Sami Tapio <tapio.sami@…> Owned by: markk
Priority: minor Milestone: 0.24.1
Component: MythTV - General Version: 0.24-fixes
Severity: medium Keywords:
Cc: Ticket locked: no

Description

Changing channels on livetv often fails with "Video frame buffering failed too many times." or "Error opening jump program file buffer". Sometimes the error message takes quite some time to pop up. While waiting, FE is unresponsive with dark screen. Happens also while watching livetv, but not so often as when changing channel. Watching previously recorded shows I have never had this issue IIRC.

And then the config info.

./configure --enable-vdpau --disable-audio-oss --disable-audio-jack --disable-hdhomerun --disable-ivtv --enable-opengl-video --enable-opengl-vsync --disable-joystick-menu --disable-firewire --disable-lirc --disable-directfb --disable-iptv --disable-hdpvr --enable-proc-opt --disable-audio-pulseoutput --enable-libfftw3 --disable-mheg # Basic Settings Compile type release Compiler cache yes DistCC no qmake /usr/bin/qmake install prefix /usr/local runtime prefix /usr/local CPU x86 x86_64 (model name : AMD Athlon(tm) 64 X2 Dual Core Processor 5200+) yasm yes MMX enabled yes MMX2 enabled yes 3DNow! enabled yes 3DNow! extended enabled yes SSE enabled yes SSSE3 enabled yes CMOV enabled yes

# Input Support Joystick menu no lirc support no Video4Linux sup. yes ivtv support no HD-PVR support no FireWire? support no DVB support yes usr/include DVB-S2 support yes HDHomeRun support no IPTV support no

# Sound Output Support PulseAudio? support no OSS support no ALSA support yes JACK support no libfftw3 support yes

# Video Output Support x11 support yes xrandr support yes xv support yes XvMC support yes XvMC VLD support yes XvMC libs -lXvMCW VDPAU support yes CrystalHD support no OpenGL video yes OpenGL vsync yes DirectFB no MHEG support no

# Misc Features multi threaded libavcodec yes Frontend yes Backend yes

# Bindings bindings_perl yes bindings_python yes

Creating libs/libmythdb/mythconfig.h and libs/libmythdb/mythconfig.mak

WARNING: When using --enable-proc-opt you must include the

output of ./configure along with any bug report.

libs/libmythdb/mythconfig.h is unchanged external/FFmpeg/libavutil/avconfig.h is unchanged

mythbackend --version Please attach all output as a file in bug reports. MythTV Version : 27143 MythTV Branch : branches/release-0-24-fixes Network Protocol : 63 Library API : 0.24.20101028-1 QT Version : 4.6.2 Options compiled in:

linux release using_alsa using_pulse using_backend using_bindings_perl using_bindings_python using_dvb using_frontend using_libfftw3 using_opengl_video using_opengl_vsync using_qtdbus using_qtwebkit using_v4l using_x11 using_xrandr using_xv using_xvmc using_xvmc_vld using_xvmcw using_bindings_perl using_bindings_python using_mythtranscode using_opengl using_vdpau using_ffmpeg_threads

Attachments (4)

FE.log (49.5 KB) - added by Sami Tapio <tapio.sami@…> 9 years ago.
BE.log (170.7 KB) - added by Sami Tapio <tapio.sami@…> 9 years ago.
mythbackend.20120810142930.2808.log (88.9 KB) - added by Jeff Markley <jeff@…> 7 years ago.
BE log
mythfrontend.log (225.7 KB) - added by Jeff Markley <jeff@…> 7 years ago.
FE log

Download all attachments as: .zip

Change History (14)

Changed 9 years ago by Sami Tapio <tapio.sami@…>

Attachment: FE.log added

Changed 9 years ago by Sami Tapio <tapio.sami@…>

Attachment: BE.log added

comment:1 Changed 9 years ago by trollo4@…

The same happens to me after upgrading from 0.23.1 to 0.24. The conditions for this behavior are a bit mysterous for me. Sometimes it works, sometimes it fails and the frontend doesn't accept any input from the remote control. Waiting for any output on the screen for several minutes shows no result.

comment:2 Changed 9 years ago by robertm

Owner: set to danielk
Status: newassigned

comment:3 Changed 9 years ago by gilson585@…

I too am experiencing the same issue since upgrading to 0.24 currently running build 27299 from mythbuntu autobuilds. This only occurs on my analog tuner and does not affect my digital tuners. I can however go to a dig channel and then back to analog no prob. Sometimes crashes to desktop or plays interlaced video with wrong A/R ratio and no sound if I try to change channels directly on analog tuner. I also posted here http://ubuntuforums.org/showthread.php?t=1626755

comment:4 Changed 9 years ago by Kenni Lund [kenni a kelu dot dk]

Ticket locked: set

comment:5 Changed 9 years ago by danielk

Owner: changed from danielk to markk

This was captured using an altered source, so it may not match exactly what you see with trunk:

#0  0x00007fffed202ff3 in select () from /lib/libc.so.6
#1  0x00007ffff5641dc0 in MSocketDevice::waitForMore(int, bool*) const () from /usr/local/lib/libmythdb-0.24.so.0
#2  0x00007ffff55bea05 in RemoteFile::Read(void*, int) () from /usr/local/lib/libmythdb-0.24.so.0
#3  0x00007ffff72fb208 in RingBuffer::safe_read(RemoteFile*, void*, unsigned int) () from /usr/local/lib/libmythtv-0.24.so.0
#4  0x00007ffff7303d5e in RingBuffer::ReadDirect(void*, int, bool) () from /usr/local/lib/libmythtv-0.24.so.0
#5  0x00007ffff7304ff4 in RingBuffer::ReadPriv(void*, int, bool) () from /usr/local/lib/libmythtv-0.24.so.0
#6  0x00007ffff730664d in RingBuffer::Read(void*, int) () from /usr/local/lib/libmythtv-0.24.so.0
#7  0x00007ffff6c4444c in get_buffer () from /usr/local/lib/libmythavformat.so.52
#8  0x00007ffff6c77036 in ?? () from /usr/local/lib/libmythavformat.so.52
#9  0x00007ffff6cb8bcd in av_read_packet () from /usr/local/lib/libmythavformat.so.52
#10 0x00007ffff6cba7f0 in ?? () from /usr/local/lib/libmythavformat.so.52
#11 0x00007ffff6cbb67c in av_find_stream_info () from /usr/local/lib/libmythavformat.so.52
#12 0x00007ffff768b7f6 in AvFormatDecoder::OpenFile(RingBuffer*, bool, char*, int) () from /usr/local/lib/libmythtv-0.24.so.0
#13 0x00007ffff7611e3e in MythPlayer::OpenFile(unsigned int, bool) () from /usr/local/lib/libmythtv-0.24.so.0
#14 0x00007ffff7612c1b in MythPlayer::JumpToProgram() () from /usr/local/lib/libmythtv-0.24.so.0
#15 0x00007ffff7614e4c in MythPlayer::EventLoop() () from /usr/local/lib/libmythtv-0.24.so.0
#16 0x00007ffff75f11ec in PlayerTimer::event(QEvent*) () from /usr/local/lib/libmythtv-0.24.so.0
#17 0x00007fffee5c422c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#18 0x00007fffee5ca6fb in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#19 0x00007fffeddc306c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#20 0x00007fffeddc57e7 in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#21 0x00007fffeddec9d3 in ?? () from /usr/lib/libQtCore.so.4
#22 0x00007fffe9c1f8c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#23 0x00007fffe9c23748 in ?? () from /lib/libglib-2.0.so.0
#24 0x00007fffe9c238fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#25 0x00007fffeddec513 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#26 0x00007fffee67446e in ?? () from /usr/lib/libQtGui.so.4
#27 0x00007fffeddc5c0f in QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#28 0x00007ffff7591148 in TV::StartTV(ProgramInfo*, unsigned int) () from /usr/local/lib/libmythtv-0.24.so.0
#29 0x0000000000431df6 in ?? ()
#30 0x00007ffff520c94a in MythThemedMenu::handleAction(QString const&, QString const&) () from /usr/local/lib/libmythui-0.24.so.0
#31 0x00007ffff520d5cd in MythThemedMenu::buttonAction(MythUIButtonListItem*, bool) () from /usr/local/lib/libmythui-0.24.so.0
#32 0x00007ffff52de8f5 in MythThemedMenu::qt_metacall(QMetaObject::Call, int, void**) () from /usr/local/lib/libmythui-0.24.so.0
#33 0x00007fffeddd5e3f in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#34 0x00007ffff52dff72 in MythUIButtonList::itemClicked(MythUIButtonListItem*) () from /usr/local/lib/libmythui-0.24.so.0
#35 0x00007ffff5232270 in MythUIButtonList::keyPressEvent(QKeyEvent*) () from /usr/local/lib/libmythui-0.24.so.0
#36 0x00007ffff520e44a in MythThemedMenu::keyPressEvent(QKeyEvent*) () from /usr/local/lib/libmythui-0.24.so.0
#37 0x00007ffff519c1a1 in MythMainWindow::eventFilter(QObject*, QEvent*) () from /usr/local/lib/libmythui-0.24.so.0
#38 0x00007fffeddc2487 in QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
---Type <return> to continue, or q <return> to quit---
#39 0x00007fffee5c41fc in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#40 0x00007fffee5cbec5 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#41 0x00007fffeddc306c in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#42 0x00007fffee66f16a in ?? () from /usr/lib/libQtGui.so.4
#43 0x00007fffee6716f0 in ?? () from /usr/lib/libQtGui.so.4
#44 0x00007fffee648904 in QApplication::x11ProcessEvent(_XEvent*) () from /usr/lib/libQtGui.so.4
#45 0x00007fffee674882 in ?? () from /usr/lib/libQtGui.so.4
#46 0x00007fffe9c1f8c2 in g_main_context_dispatch () from /lib/libglib-2.0.so.0
#47 0x00007fffe9c23748 in ?? () from /lib/libglib-2.0.so.0
#48 0x00007fffe9c238fc in g_main_context_iteration () from /lib/libglib-2.0.so.0
#49 0x00007fffeddec513 in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#50 0x00007fffee67446e in ?? () from /usr/lib/libQtGui.so.4
#51 0x00007fffeddc1992 in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#52 0x00007fffeddc1d6c in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#53 0x00007fffeddc5aab in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#54 0x00000000004308ee in ?? ()
#55 0x00007fffed142c4d in __libc_start_main () from /lib/libc.so.6
#56 0x0000000000426cf9 in ?? ()
#57 0x00007fffffffe208 in ?? ()
#58 0x000000000000001c in ?? ()
#59 0x0000000000000003 in ?? ()
#60 0x00007fffffffe518 in ?? ()
#61 0x00007fffffffe534 in ?? ()
#62 0x00007fffffffe537 in ?? ()
#63 0x0000000000000000 in ?? ()

The important thing to note is that the inability to read more data from the file appears to be blocking the UI thread which prevents it from displaying anything useful, or allowing you to change channels, or jumping to the next recording file if there is one. So this looks like a problem caused by the threading changes made for the port of the OSD to MythUI. I'm not really up to date on those changes yet, so I'm reassigning this to Mark Kendall.

Note: There could also be a RingBuffer? problem (if the file really did grow, but safe_read() failed to read the data), or a signal monitoring problem (if the backend reported the signal was ok, but it really wasn't), or something else.

comment:6 Changed 9 years ago by markk

Status: assignedinfoneeded

Can you please comfirm whether this is still an issue with the latest fixes/0.24 code. There have been a number of fixes and improvements in recent weeks.

comment:7 Changed 9 years ago by Kenni Lund [kenni a kelu dot dk]

Ticket locked: unset

comment:8 Changed 9 years ago by Sami Tapio <tapio.sami@…>

I had 27420 version of 0.24 installed and it still was happening. Two weeks ago I updated to master [v0.25pre-1070-g9590973] and the problem did go away.

comment:9 Changed 9 years ago by sphery

Milestone: unknown0.24.1
Resolution: Fixed
Status: infoneededclosed

Fixed by all of Mark's and Taylor's great work on Live TV. (Assuming it's fixed in 0.24-fixes, too, since those changes were backported.)

Changed 7 years ago by Jeff Markley <jeff@…>

BE log

Changed 7 years ago by Jeff Markley <jeff@…>

Attachment: mythfrontend.log added

FE log

comment:10 Changed 7 years ago by Jeff Markley <jeff@…>

I'm not sure if the proper thing to do is to add to an existing closed ticket or open a new ticket. If the latter please let me know and I'll move the following.

While researching various bugs with LiveTV both "Open" and "Closed" this particular ticket most accurately matches an issue which my myth ecosystem experiences. I first noticed the issue when adding a Ceton card and Ron Fraizer's patch to 0.24.1. It has continued to been an issue for me in every release since.

With all the commotion now around LiveTV I thought the following information would help.


Background:

System(s):

Combined BE/FE system: My primary system is an Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz stepping 0b running Debian Squeeze 2.6.32-5-amd64 #1 SMP Fri Sep 9 20:23:16 UTC 2011 x86_64 GNU/Linux with X.Org X Server 1.7.7 Release Date: 2010-05-04 X Protocol Version 11, Revision 0 Build Operating System: Linux 2.6.37-trunk-amd64 x86_64 Debian Current Operating System: Linux mythhd 2.6.32-5-amd64 #1 SMP Fri Sep 9 20:23:16 UTC 2011 x86_64 and an NVIDIA Corporation NV34 8500 GT?. The system has one Ceton card with CableCard? (Xfinity) and two pc3000 DVB off-air cards.

Current Myth configuration is as follows:

mythhd:~# mythbackend --version Please attach all output as a file in bug reports. MythTV Version : v0.26-beta-9-g8c551e6 MythTV Branch : master Network Protocol : 75 Library API : 0.26.20120807-1 QT Version : 4.6.3 Options compiled in:

linux profile use_hidesyms using_alsa using_jack using_oss using_backend using_bindings_perl using_bindings_python using_bindings_php using_dvb using_frontend using_hdhomerun using_ceton using_iptv using_ivtv using_joystick_menu using_libcrypto using_libdns_sd using_libxml2 using_libudf using_lirc using_mheg using_opengl_video using_qtwebkit using_qtscript using_qtdbus using_v4l2 using_v4l1 using_x11 using_xrandr using_xv using_bindings_perl using_bindings_python using_bindings_php using_mythtranscode using_opengl using_ffmpeg_threads using_live using_mheg using_libxml2 using_libudf

mythhd:~# mythfrontend --version Please attach all output as a file in bug reports. MythTV Version : v0.26-beta-9-g8c551e6 MythTV Branch : master Network Protocol : 75 Library API : 0.26.20120807-1 QT Version : 4.6.3 Options compiled in:

linux profile use_hidesyms using_alsa using_jack using_oss using_backend using_bindings_perl using_bindings_python using_bindings_php using_dvb using_frontend using_hdhomerun using_ceton using_iptv using_ivtv using_joystick_menu using_libcrypto using_libdns_sd using_libxml2 using_libudf using_lirc using_mheg using_opengl_video using_qtwebkit using_qtscript using_qtdbus using_v4l2 using_v4l1 using_x11 using_xrandr using_xv using_bindings_perl using_bindings_python using_bindings_php using_mythtranscode using_opengl using_ffmpeg_threads using_live using_mheg using_libxml2 using_libudf

Other Frontends: I have four other frontends (2 Intel/Nvidia? and 2 MacBook? Pros) All frontends exhibit the same issue.

Storage: Initially storage was a group of 4 internal SATA drives in an LVM RAID 0 configuration. While fighting the "Program Boundary Pauseing" issue I moved storage to an NFS share located on a NETGEAR ReadyNas? Pro. This effort reduced the pausing greatly (from ~10 sec to ~2) but had no effect on the LiveTV channel change issue. Another point to make here is a test performed to make sure my network was not the issue where I started 4 Ceton Xfinity HD recordings and 4 recorded program playbacks on my FE's. This stress test proved my gigE network was up to the test as now playback issues were encountered.

Findings:

Selecting "Watch TV" from the UI always results in a successful tune of a Ceton tuner to the last successfully tuned channel.

Changing channels in LiveTV on the Ceton card results in the "Error opening jump program file buffer" 90+% of the time. To be clear this situation is tuning to another Ceton CableCard? Xfinity channel from a Ceton CableCard? Xfinity channel. I am able to switch inputs to other Ceton tuners which always results in a successful tune to the last tuned channel. Using the program guide to change channels then results in the "Error opening jump program file buffer" message. The only work around is to use the program guide to select a channel on one of my pc3000 cards which completed successfully and then use the guide to select a Ceton channel. This works 90+% of the time. That said it seems the extra delay in switching tuner cards results in successful channel changes. Channel changes involving the same tuner are where I see my issue.

Note: See TracTickets for help on using tickets.