Any chance of this getting introduced into SVN?
The filter solution is a lot of coding and currently I'm still trying to compile the filters of TVE3 myself.
IMHO the fastest and easiest solution is to modify TsWriter/MPFileWriter and TsReader. First the TsWriter/MPFileWriter has to be modified to store the teletext stream in the ts files. When the teletext stream is available in the ts file, it should be possible to create a callback like the TsWriter already have for teletext.
I think that a combined solution for teletext and teletext subtitles is the better approach, because the main part is the decoding and caching of the teletext page (avoid duplicate code). This part isn't also the reason for the performance problems in the current teletext module and the C# code should also be easier to maintain (I hate C++ ). A library for this could be the best, because the TVServer needs teletext decoding for extracting the name of analog channels. The extraction of subtitles or the rendering of the page is the smaller part and could be handled seperatly. The rendering is also the reason for the performance problems.
I saw your modifications for the teletext pids in the server, but I don't think that they will work for timeshifting. :sorry: For recording it should work, but the filter uses fake pids for timeshifting and there is no such pid for teletext. There are also changes in the filter required. But I must admit, that I haven't tested it so far.
I could test your modifications or have a look at it, but as mentioned above, I don't have much test material especially with teletext subtitles. BTW: My problems with compiling the filters are solved.
2. Correct. It only handles the data stream which is transmitted through a callback from the TsWriter filter or the sample caputre filter for analog tv to the TVServer. I must admit that I don't know which informations are in the DVB Service information.
Your idea about the additional filter is good and very similar to the approach I made in the post you quoted.
The problem of all these ideas about creating a new teletext module is that we have to include analog tv in our plan and this could be more complicated than dvb. Such a new teletext module (caching/decoding) should also be used in the whole system, because I want to remove the duplicate code (e.g. Hamming exists in TVServer and TVPlugin).
When I have finished the new version of my plugin, I wil test if the teletext is stored in .ts
This makes everything really easy for dvbIt contains information linking subtitle numbers to actual languages. In the teletext header you only get encoding/character table information in the language field, so for example you have no way of telling Norwegian, Swedish and Danish apart (language is 2 (swedish) for all of them). The DVB SI will map (say) page 693 to 'dan' (danish) so that you can select the correct page automatically based on the users language preference instead of having him manually set up subtitle pages. This also enables you to easily make some fixes in the character encoding, such that for danish you for example swap ö for ø (or something like that).
ea about the additional filter is good and very similar to the approach I made in the post you quoted.
Unfortunately I think that there is no difference if you create a new filter or integrate the code into TsReader. But the new filter solution is of course the cleaner solution.I was just trying to figure out how what i am doing right now, could be used to achieve what your suggesting, without having to make drastic changes. My point is that its probably best to have the callback in a filter separate filter from TsReader, as TsReader is supposed to be essentially a DirectShow demux'er for TS files, and hence it makes more sense that it just provides a teletext output pin (and also because i already created the code for it .
I don't have a analog signal even here, but I think that a complete concept is needed for analog and digital tv. I think the people won't be happy, if we remove the support for teletext of analog tv.I hate analog TV But couldn't we just structure it so that the teletext module has no clue about whether the source is analogue or digital, after all the only difference is bit of the initial data of each packet (ie run-in is not present in DVB etc ). Once its unwrapped digital and analog should be the same, right? So the teletext module should just have a Receive() method that we can call from DirectShow for digital stuff and then you can create an analog teletext grabber that calls the same method (of course not at the same time ).
Unfortunately I think that there is no difference if you create a new filter or integrate the code into TsReader. But the new filter solution is of course the cleaner solution.
I don't have a analog signal even here, but I think that a complete concept is needed for analog and digital tv. I think the people won't be happy, if we remove the support for teletext of analog tv.
Since I haven't looked at analog tv yet, I can't evaluate how complicate it will be to integrate the teletext of analog tv in the .ts. The only difference than will be the missing DVB Service Informations. But first we should concentrate on the things we can "easily" test, which means digital tv.
I just wanted to guarantee that we won't forget those peopleWith the structure im suggesting, we wouldnt. Analog would but just be one supplier of data to the teletext module.
Currently you always get the current teletext informations which is received by the tvserver. The timeshift position is completely ignored.There has never been any support for recording the teletext information of analog TV in MediaPortal (or any other digital recording device i think), so i dont think people will be upset if teletext is only available when watching live TV. The only problem i see is in regards to time shifted TV, i wonder how that is handled right now (meaning if watch TV 5 minutes time shifted is the teletext time shifted or not)?
Frankly grabbing and writing the analog teletext data into the .ts file would be a mess. Why would you want to record teletext anyway (except for the subtitles, which is almost never used for analog TV).