Click here to go to the forum index Click here for the home page
Author Message

<  TAP and patch development  ~  Use of TAP_GetEvent().

Page 1 of 1
Posted: Thu Aug 18, 2005 12:27 am Reply with quote
Frequent contributor Joined: 11 Apr 2005 Posts: 569
Firstly I'll have to admit that my knowlegdge of TAP and the toppy API is somewhat limited. I'd regard myself as an experienced C programmer though...

After getting some odd EPG behaviour with JAGs EPG I thought I'd try a simple diagnostic TAP.

I modified an existing TAP to just call TAP_GetEvent() with the current channel on every keypress, free up the memory and display the number of events obtained on screen.

I assumed the value would slowly increase and stop at some value when I first tuned into a channel as the EPG info was gathered until it was complete. While it sometimes does this the number usually increases and decreases in the 100-200 mark.


If I switch to the standard EPG the number of events rises steadily until it hits a maximum and stays there.

This isn't at all what I'd expect. The most likely explanation is that I've missed something here...

A less likely explanation is that the standard EPG is doing some undocumented things to fill the event buffer which would explain why JAGs EPG often has gaps.
View user's profile Send private message Visit poster's website
Posted: Thu Aug 18, 2005 9:37 am Reply with quote
Forum moderator Joined: 31 Mar 2005 Posts: 325
Hi shenson,

I did the same thing a while back when I was working on EPG buffering code and discovered the same problem. I believe it is precisely because the Toppy contains no EPG buffering that this occurs. The EPG uses information taken from a table in the header file of the MPEG stream. The contents of this table change all the time and this is down to the mechanisms used at the broadcasters. They prioritise current (now and next) for their own channel and then other times from their own channel and then occasionally, there is some data for other channels broadcast. These things appear more frequently in the table if they have priority. The combination changes from header to header and that probably accounts for why the Toppy picks up different numbers of EIT entries when we run this type of test. So, you can be reassured that you made no mistake - this really is how bad the Toppy is at dealing with EIT data. Even the cheapest budget freeview box out there generally stores EIT tables into a growing linked list or indexed structure for quick review. I started (nearly finished) programming such a thing for the Toppy but work constraints have put a brake on me doing any more for a while. I note that Topfield intend to put something in their firmware for next month to do the same so I shall probably not bother developing my version any more unless (like their AFD code) they c**k it up! I was trying to develop a dynamic and fast indexing structure for the data so that retrieval would be ultraquick and therefore building the EPG would happen near to instantly.

There are a number of FAQs floating around the net which describe the EIT header tables in detail (I think the beeb have one) - it might interest you to read them?

View user's profile Send private message

Display posts from previous:  

All times are GMT + 1 Hour
Page 1 of 1

Jump to:  

You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum