(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:
- MPEG-2 transport streams have a structure called PMT (Program Map Table).
- The PMT has a specific field that defines the PID (Packet IDentifier) for the stream that carries the PCR (Program Clock Reference). (See here for more information about the PCR.)
- This particular field in the PMT is called PCR_PID (see ISO/IEC 13818-1, section 2.4.4.8, Program Map Table.)
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. 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.