Share this post

Link to post

Griga 613

Griga
613

PDC (Programme Delivery Control) is only supported by the German, Austrian and Swiss public (ÖR) broadcasters.

In practice it is a PIL (Programme Identification Label) attached to each programme in the EPG. It contains the originally intended binary coded start time of the programme. It does not change if the actual start time changes.

The main purpose is to re-identify a programme in the EPG data after it has been scheduled, allowing the scheduler to keep track of changes and to perform accurate recording by monitoring the Present/Following EPG or Teletext data (the latter method is out-dated, no more used by the RS / DMS). The Present/Following EPG signals more or less precisely which programme is currently running. The DMS / RS listens to the incoming Present/Following EPG data and starts recording as soon as the PIL of the current programme equals the PIL of the scheduled programme.

Other methods are less reliable (identification by title, start time, duration...) because all these characteristics may change.

The Event ID could serve the same purpose if all broadcasters would handle it unambiguously according to the specs, but several broadcasters don't, so it's quite risky to identify a programme by Event ID.

Share this post

Link to post

DetlefM 0

DetlefM
0

And if I use this within a new timer event from ARD, ZDF the MediaServer will take care of changes of time (maybe program starts and ends later because of an importend incident like 9/11)? Or a program which ends later because it is interrupted?

Share this post

Link to post

Griga 613

Griga
613

Please keep the language of threads consistent so it doesn't get frustrating for other readers. If it has been started in English continue in English!

@HaraldL: Ne parle pas Chinois ici!

Let's continue with the PDC tutorial. The first part was about basic DVB knowledge concerning this matter. Not let's investigate how these values are used in the UI. This should be properly understood before using them in the API!

PDC values must always originate from the DVB EPG. They are not supposed to be created independently from it. And the sheer presence of a PDC value doesn't trigger the mechanisms that are making use of it. They must be configured additionally.

Have a look at the timer (input) window of the Desktop Web Interface after having scheduled a recording from a German public broadcaster. If (and only if) a PDC value is present, an "EPG Monitoring" drop down list shows up that contains three options:

None: Don't use PDC

Start/End time update by EPG: Start and end time of the scheduled recording are adjusted according to changes in the EPG. The lead and follow-up time remain unchanged, however. Of course it can only work if updated EPG data for the channel in question is received in the meantime. This means, the transponder on which the data is broadcasted must be tuned or a regular EPG update must take place that tunes all transponders automatically.

Start/Stop by EPG running status: Same as above, but additionally the running status of the programme signaled in the Present/Following EPG data controls the start/stop of the recording. This means the recorder control is delegated to the broadcaster, hoping it is reliable enough The lead time of the timer recording is very important in this case. It specifies the start time of the Present/Following EPG monitoring. The DMS can't monitor the EPG all the time because this would permanently occupy a tuner. The follow-up time is irrelevant and ignored.

The same options are available in the DMS settings (svcoptions.exe) on the Recordings Page where they specify the default. It can be overridden by the user (in the timer input window) and of course by the API. We'll come to it later... only one thing left to mention here: The "EPG Event ID usage on timer handling" tweak (-> launch DMSTweaker.bat) enables Event ID based timer adjustment and recording control, thus allowing the DMS to use the Event ID for recognizing a programme if no PDC is present, which also enables the options mentioned above without a PDC value being present. But as already stated: A risky thing...

Similar Content

I noticed several things during my tests that make debugging api calls difficult.
/api/epg.html
The returned XML string is often (but not always) incorrect if the EPG entry is not found.
<?xml version="1.0" encoding="utf-8" ?><!-- by DVBViewer Media Server --><epg Ver="1">
The end tag is missing.
Here it would be nice (besides the return of a valid XML string) to get an error code included. For example: wrong channelid, epgid not found
When searching for pdc with a wrong pdc value (in my case 'NOPDC') this filter is completely ignored and the EPG list of the channel is returned. I think also here an error message would be more helpful.
Many other api calls have no return value at all - e.g. timeredit. Here it would be helpful if the changed timer (or an error code in case of problems) would be returned.

(1) When I start PC:
- DVBViewer Media Server in Services is not running,
- tray icon is grey,
- TV is working on clients,
- WEB UI is working.

(2) When Media Server crashes (happens every day!) and when I start it in Services:
- DVBViewer Media Server in Services is running,
- tray icon is blue,
- TV is not working on clients,
- WEB UI is not working.

The only thing I can do to restart Media Server is to restart PC to get case (1)

Why?

NB
I exluded svcdebug.log, because there is not enough space for support.zip here.
But it looks like
:
support.zip