Opened 11 years ago

Closed 7 years ago

#5530 closed Patch - Feature (Won't Fix)

Canal Satellite Caraibes proprietary EIT support

Reported by: eallaud@… Owned by: Stuart Auchterlonie
Priority: minor Milestone: unknown
Component: MythTV - EIT Version: Master Head
Severity: medium Keywords: dvb, eit
Cc: Ticket locked: no

Description

You will find here the different patches. Note that I use the 0.21.fixes branch (and not latest, so let me know if rejects happen). The patches are split into different files. For now everything compiles and runs without crashing (at least on my box). But it does not do what it is supposed to. So I also post it here so I can get comments ;-)

Description:

  • Added collection parsing of the BAT (Bouquet association table) as it is needed to get an index for the channels.
  • Added colletion and parsing of several tables containing eit for all channels on all transponders.

What does not work: well the pids needed are added to the listening pids but I do not collect any of the corresponding tables. I hope someone can help here.

Attachments (12)

csat-dvbtables.diff (4.8 KB) - added by eallaud@… 11 years ago.
csat-mpegtables.diff (1009 bytes) - added by anonymous 11 years ago.
csat-streamlisteners.diff (687 bytes) - added by anonymous 11 years ago.
csat-eithelper.diff (5.1 KB) - added by anonymous 11 years ago.
csat-mpegtables.2.diff (1009 bytes) - added by anonymous 11 years ago.
csat-dtvsignalmonitor.diff (1.0 KB) - added by anonymous 11 years ago.
csat-dvbstreamdata.diff (4.6 KB) - added by anonymous 11 years ago.
5530-v1.patch (9.8 KB) - added by danielk 11 years ago.
portion of patch that i could make apply to trunk w/cleanups
csat-eit.diff (33.6 KB) - added by eallaud@… 11 years ago.
full diff based on trunk
csat-eit-20080711.diff (33.3 KB) - added by anonymous 11 years ago.
csat-eit-20080723.diff (34.4 KB) - added by anonymous 11 years ago.
csat-eit-20080803.diff (38.5 KB) - added by anonymous 11 years ago.

Download all attachments as: .zip

Change History (38)

Changed 11 years ago by eallaud@…

Attachment: csat-dvbtables.diff added

Changed 11 years ago by anonymous

Attachment: csat-mpegtables.diff added

Changed 11 years ago by anonymous

Attachment: csat-streamlisteners.diff added

Changed 11 years ago by anonymous

Attachment: csat-eithelper.diff added

Changed 11 years ago by anonymous

Attachment: csat-mpegtables.2.diff added

Changed 11 years ago by anonymous

Attachment: csat-dtvsignalmonitor.diff added

Changed 11 years ago by anonymous

Attachment: csat-dvbstreamdata.diff added

comment:1 Changed 11 years ago by anonymous

Just one comment: I dont know if the format used by Canal Satellite here (in the caribbean) is the same as in France. Adventurous users can try it.

comment:2 Changed 11 years ago by danielk

eallaud, you are missing files from the diffs, add these with svn add before making the patch. Please also just create one svn diff against _trunk_. Most of this patch gets rejected by 'patch' currently.

Changed 11 years ago by danielk

Attachment: 5530-v1.patch added

portion of patch that i could make apply to trunk w/cleanups

comment:3 Changed 11 years ago by anonymous

You're right I forgot to put the new files here. Anyway I will regenerate everything against trunk. I hope not to have indenting problems in the files... :(

comment:4 Changed 11 years ago by anonymous

OK I rebased the patch on trunk and it applies cleanly. I dont know if it compiles though because I need to sort out a qt4/qt3 parallel install now that I need both (I want to keep 0.21.fixes alongside trunk).

Changed 11 years ago by eallaud@…

Attachment: csat-eit.diff added

full diff based on trunk

comment:5 Changed 11 years ago by anonymous

New version, should apply cleanly (generated via svn diff). Here it does compile. I am still trying to repair a dvb driver problem so testing will be possible in a short while...

Changed 11 years ago by anonymous

Attachment: csat-eit-20080711.diff added

comment:6 Changed 11 years ago by danielk

Manu, I think you missed the concept of the table classes. Parse() should not be doing string substitutions and the like, at most it should collect some offsets.

code like this is no good:

j = (*p & 0x70) >> 4; 
schedule.duration = ( (p[0] & 0x0F)*256 + p[1] ) * 60; 
schedule.theme = (p[2] >> 4) & 0x0F; 

You need accessors in the class so you call a methods like "GetDuration?()" or "GetTheme?()".

Methods like "GetSchedules?(...)" do not belong in these classes. The table classes are supposed to be as thin as humanly possible wrappers around the raw data.

Also, please have a look at http://www.mythtv.org/wiki/index.php/Coding_Standards

comment:7 Changed 11 years ago by anonymous

Are you talking about the ...InfoTable? class? I put it here by ignorance, there is no corresponding table in the stream, it is just a class that centralizes all the info gathered from the different in-stream tables. Should I just put it in eithelper.*? Also I tested it more extensively and everything works fine but I have some troubles understanding the pid adding/removing stuff. Also for the time being the UI part where you select the proprietary eit is not present, I intend to work on it after everything works.

comment:8 Changed 11 years ago by anonymous

One more thing about the "design": I need several PSIP tables to be able to insert eit in the db: eg one table has several shows (title+starttime+duration+the different showings) and then each show has its summary in a separate table, which means that before I can get rid of the PSIP table holding the shows I need to get the 100 summary tables. So the idea is to parse them right away, add the info using an object CSatCaraibesInfo that holds everything together and submit every complete eit. This way we do not cache a bunch of tables for a while (the schedule tables and summary tables are not in sync at all!!). Does that make sense and is compatible with the coding standards? Thx

comment:9 Changed 11 years ago by anonymous

OK here is a new try; I simplified to the extreme the tables classes (all but the BouquetAssociationTable? one, this will come later if what I did with the others is OK with you). I pushed all the real parsing in a new class CSatCaraibesEIT that I put in a new header and source files (csatcaraibeseit.h/cpp). As you can see I put some VERBOSE in the pid code because I still do not understand it. For example cyclingfilters is called numerous times although I dont think it is needed (it looks like my card has no trouble having all the needed filters setup at the same time); also I changed the filter params for the 0x11 PID as I needed to receive the BAT. Moreover I was unable to get my pid added correctly to the others so I hacked things in such a way that it is added even in the filters delete part. OK I hope this is closer to what you expect; BTW I used your emacs indent macros, but it does not seem to be the same as what is used for the sources, but this can be changed easily afterwards.

Changed 11 years ago by anonymous

Attachment: csat-eit-20080723.diff added

comment:10 Changed 11 years ago by anonymous

One more problem: in eithelper.cpp I use GetChanID to get the channel id from the DB but it seems to always fail; but I printed the query and did it by hand on mysql command line and go a good result, so something is fishy there, any idea? Thx

comment:11 Changed 11 years ago by anonymous

OK the GetChanID is fixed now.

comment:12 Changed 11 years ago by anonymous

New version:

  • No more BAT parsing, it turned out that this was not working;
  • Added IsRedundant? support to avoid the parsing of tables we already caught;

This works for me (tm) here: it adds EIT for up to 14 days, and when the dvb eit kicks in it adds new info to the one I got before with the proprietary EIT.

Changed 11 years ago by anonymous

Attachment: csat-eit-20080803.diff added

comment:13 Changed 11 years ago by anonymous

Can someone give me some feedback please? Thx.

comment:14 Changed 11 years ago by Dibblah

Status: newassigned

comment:15 Changed 11 years ago by anonymous

Any interest in this? I maintain it for myself for now but as I will perhaps have some spare time I would like to know if it is interesting for me to try, I dont want to spend some time of that if there is no interest in merging it. Thx.

comment:16 Changed 11 years ago by Stuart Auchterlonie

Milestone: unknown0.22
Status: assignedstarted

As this requires BAT processing, i'm planning to put this in following the implementation of BAT processing as relates to #5562 and #5603

Stuart

comment:17 Changed 10 years ago by anonymous

Hmm I do not parse the BAT anymore as the info I extracted wasn't useful for my purposes. Could you outline what pieces I could submit first, or do you prefer to review everything when you think your tree has stabilized enough? Thx

comment:18 Changed 10 years ago by Janne Grunau

Milestone: 0.220.23
Status: startedassigned

deprecated started state

comment:19 Changed 10 years ago by stuartm

Component: eitMythTV - EIT

comment:20 Changed 10 years ago by Stuart Auchterlonie

Milestone: 0.230.24

This is a feature and we are currently in feature freeze. Bumping to 0.24

comment:21 Changed 9 years ago by stuartm

Version: 0.21-fixesTrunk Head

comment:22 Changed 9 years ago by Stuart Auchterlonie

Milestone: 0.240.25

I just haven't had time to work on this for this release.

comment:23 Changed 9 years ago by stuartm

Milestone: 0.25

Milestone 0.25 deleted

comment:24 Changed 8 years ago by stuartm

Milestone: 0.250.26
Type: enhancementPatch - Feature

If this doesn't make 0.26 then it's probably never going to happen and should be put out of it's misery.

comment:25 Changed 8 years ago by eallaud@…

This patch can be dropped: I use now a standalone version (much easier to deal with new myth versions) and apparently it is only useful to me ;-)

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

Milestone: 0.26unknown
Resolution: Won't Fix
Status: assignedclosed

Ok, let's put it out of it's misery.

Note: See TracTickets for help on using tickets.