Missing PCR (Program Clock Reference) PID stream in recordings on some channels

  • (This bug report is a followup to a recent discussion on the Enigma 2 Developer forum.)


    Short description:


    Enigma 2 appears to erroneously filter out the PCR (Program Clock Reference) when recording or streaming certain tv channels. This happens if the PCR is broadcast as a separate stream, with its own PID, and not as a part of the ordinary audio, video, DVB subtitle, or teletext streams.


    The missing PCR causes problems in many (but not all) video players when the recorded file is later played back. One of the players that cannot handle PCR-less files well is VLC. On VLC, such files have a silent audio, the playback is skipping erratically, and seeking on the timeline does not work properly. This affects streaming, too: live streams received from the DM 7025 using VLC do not have sound on certain tv channels.


    Technical details:

    In an earlier discussion, I posted a sample .ts file (80 MB) which was originally recorded with the DM 7025, and which exhibits all the previously-mentioned problems in VLC. When this file is analyzed in a suitable program, such as Ethereal MPEG-2 TS Dissector, one can see that the broadcaster periodically advertises a PCR_PID of 0x81 in the Program Map Table. (For instance, see this summary of the packet number 140.)


    However, the stream recorded by the DM 7025 does not have any packets with that PID! The DM 7025 (Enigma 2? Some lower-level component?) has filtered them out. Apparently, the PCR_PID field of the PMT is not checked at all when recording or streaming. Instead, the current versions of Enigma 2 assume that the PCR is part of some of the audio, video, teletext, or DVB subtitle streams, which will get recorded, anyway. (This is the case for some tv channels and broadcasters, but not for all of them.)


    • • •


    To test my theory further, I made a raw, unfiltered .ts capture containing everything that is being sent within the whole multiplex. And lo and behold, the separate PCR stream (with a PID of 0x81, in this case) was there. The DM 7025 just leaves it out of the recorded file.


    Now, could this be fixed? It happens to affect all the channels broadcast by the Finnish national broadcaster, YLE, so it is a pretty annoying thing (in Finland, at least. :smiling_face: If needed, I can provide short, unfiltered .ts captures of the whole multiplex for testing.


    P.S. Enigma 1 does not have this problem – at least not on the DM 500.

    znark

    2 Mal editiert, zuletzt von Jukka Aho ()

  • How did you create the unfiltered capture? With the DM7025 and pid 0x2000? Or with another device?


    Can you upload some PID=0x81 packets somewhere?

  • Zitat

    Originally posted by tmbinc
    How did you create the unfiltered capture? With the DM7025 and pid 0x2000? Or with another device?


    With a budget DVB-T card (on a Linux PC) and the dvbstream utility, like this:


    dvbstream -o 8192 > stream.ts


    (As the manpage for dvbstream says, “8192 is a "dummy PID" (legal PIDS are in the range 0-8191) and the driver interprets this to mean the entire TS.”)


    Zitat

    Can you upload some PID=0x81 packets somewhere?


    Here’s a 5-minute capture of YLE’s entire multiplex:

    Of course, if you only want to see a couple of those PCR packets, you don’t need to download the entire file. I think a couple of megabytes from the beginning should be enough for that purpose.


    Note that each service on that stream seems to have a separate PCR stream. For example, YLE TV1 uses a PCR PID of 0x80 whereas YLE TV2 uses 0x81.


    Also note that this capture might have some problems with signal quality – I made it yesterday, remotely on a far away machine, and could not check the aerial connections and such. I might be able to make a better capture later this evening, if needed.

    znark

    Einmal editiert, zuletzt von Jukka Aho ()

  • Another test capture of the whole mux is available here (392 MB) – just in case.


    For completeness sake, here’s the corresponding lamedb file as well, for easy reference to the available services. If we’re looking things from the perspective of that file, the captures have been taken from mux (“transponder”) eeee0000:1001:20f6.


    This and the previous full transport stream capture might come handy for testing DVB subtitling and multilanguage EPG support as well, so interested parties would be advised to grab the files while they’re still there. (The built-in DVB subtitling support Enigma2 v2.2 has appeared to still have some rough spots, and I’m probably going to write more about that subject later, in another thread.)

    znark

  • Thank you. The issue should now be fixed, and a bugfix is probably going into the next image.


    For people building OE images, just update the dm7025 driver version to 20070312.


    If it still doesn't work, please drop me a note.

  • Zitat

    Originally posted by tmbinc
    Thank you. The issue should now be fixed, and a bugfix is probably going into the next image.


    For people building OE images, just update the dm7025 driver version to 20070312.


    Will need to give it a bit more testing to make absolutely sure, but as far as I can tell, it would seem to work now. Thanks for your efforts! This should make lots of people happy.

    znark