changing the channels is very slow

Bug #434994 reported by ASDFASDF
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Me TV
Fix Released
Low
Unassigned
1.1
Fix Released
Low
Unassigned
me-tv (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

Changing the channels in Me-TV is very slow, it takes more than 10 seconds to move between the channels (and those are not HD channels).
I am using Me-TV version 1.0.0-1ubuntu1 on Ubuntu Karmic Alpha 6 but this is an issue for quite some time now.
When using Klear, channels switch much faster.

Revision history for this message
Michael Lamothe (lamothe-deactivatedaccount-deactivatedaccount) wrote :

Do you have a ~/.me-tv/xine.config? If so, rename it so that Me TV ignores it.

Revision history for this message
ASDFASDF (user-487-deactivatedaccount) wrote :

I don't have it, I only have me-tv.db and me-tv-0.fifo in ~/.me-tv/

Revision history for this message
ASDFASDF (user-487-deactivatedaccount) wrote :

Is it possible that me-tv waits for EPG data before switching channels?
Because our channels don't have EPG so maybe it just waits until timeout?
I am attaching an output of the "me-tv -v" while I'm changing the channel, you can see that it takes 15 seconds from clicking the button to changing the channel.

Revision history for this message
ASDFASDF (user-487-deactivatedaccount) wrote :

Ok, I tried "me-tv --disable-epg-thread" and changing the channels is much faster, it takes about 4 seconds now which is a huge improvement.

Revision history for this message
Michael Lamothe (lamothe-deactivatedaccount-deactivatedaccount) wrote :

Yeah, you're right. Interestingly enough this is an issue when trying to exit the EPG thread because you basically have to wait for Me TV to timeout with an exception.

27.09.2009 11:12:24: Stopping EPG thread
27.09.2009 11:12:24: Thread 'EPG Thread' marked for termination
27.09.2009 11:12:24: Thread 'EPG Thread' waiting for join ...
27.09.2009 11:12:25: No output connected
27.09.2009 11:12:26: No output connected
27.09.2009 11:12:26: Writing PAT/PMT header
...
27.09.2009 11:12:35: No output connected
27.09.2009 11:12:36: No output connected
27.09.2009 11:12:36: Writing PAT/PMT header
27.09.2009 11:12:36: Exception: Failed to get an EIT demuxer with events
27.09.2009 11:12:36: Exception in EPG thread: Failed to get an EIT demuxer with events
27.09.2009 11:12:36: Exiting EPG thread

I might look at decreasing the timeout value for the EPG thread.

Changed in me-tv:
status: New → Invalid
Changed in me-tv (Ubuntu):
status: New → Invalid
Revision history for this message
ASDFASDF (user-487-deactivatedaccount) wrote :

Wouldn't reducing the timeout just be a workaround instead of a solution?
Anyway, I don't see a reason why me-tv should wait for EPG data.
Would it be possible to load the channel first, and then load the EPG data?
Or load the channel and if by that time the EPG thread doesn't join terminate it (or let it load in the background if that's possible)?
I don't know how these things work so I may be way off, but other DVB clients i tried don't have this problem, so I think it should be considered a valid bug.

Revision history for this message
Michael Lamothe (lamothe-deactivatedaccount-deactivatedaccount) wrote :

> Wouldn't reducing the timeout just be a workaround instead of a solution?

That depends on the "solution" that Me TV is trying to solve. But your point is valid.

> Would it be possible to load the channel first, and then load the EPG data?

You misunderstood my statements earlier, the issue is not on "channel load", it's on "channel unload". I assume that the first channels starts up quickly right? It's when you exit the channel that it takes 10 seconds while it waits for the EPG read from the demuxer to timeout.

I'm not sure if there's a way to know if there's EPG data available but there's only one quick solution that I can see. Reduce the timeout period to 2 seconds (currently 10) and terminate the thread if the demuxers don't return data. My concern is when the broadcasters stop transmitting temporarily (for whatever reason maintenance, fault, loading new EPG data) and then start again. In this scenario the EPG events will not be read again until you change channel. I guess I could make it automatically start the EPG thread every minute if it's not running, this is what other applications do.

Changed in me-tv:
status: Invalid → Confirmed
importance: Undecided → Low
Revision history for this message
Michael Lamothe (lamothe-deactivatedaccount-deactivatedaccount) wrote :

Reduced the EPG timeout to 1 second and the EPG thread now exists if it does not get an event in that time. Seems to be working for me. Someone else please test.

Changed in me-tv:
status: Confirmed → In Progress
status: In Progress → Fix Committed
Revision history for this message
ASDFASDF (user-487-deactivatedaccount) wrote :

I'll test it later today and report the results.

Revision history for this message
Michael Lamothe (lamothe-deactivatedaccount-deactivatedaccount) wrote :

With Igor's help we've fixed this.

Revision history for this message
Michael Lamothe (lamothe-deactivatedaccount-deactivatedaccount) wrote :

Released in Me TV 1.0.1

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.