On T4, when recordings start simultaneously, one may be empty

Issue #408 resolved
prl created an issue

When recordings start simultaneously on a T4, sometimes one of the recordings shows as zero size and zero duration in the Movie Player. If the recording is played in the Movie Player, it exits back to movie selection immediately.

While the recording is usually shown as zero size in the Movie Player, it is not completely empty, even though it has some content. The content is not playable, and appears to simply be the PAT for a different service from the one being recorded.

In the enigma2 logs, the incorrect recording is shown as not having a service matching the one to be recorded in its PAT when eDVBServicePMTHandler::PATready() is called:

[eDVBServicePMTHandler] PATready
[eDVBServicePMTHandler] no PAT entry found.. start delay

Adding debugging code to eDVBServicePMTHandler::PATready() shows that the PAT table contains data, but not for the right broadcast channel; it appears to be for one of the other recordings being made.

When a recording fails in this way, the kernel logs show that more than one tuner is being accessed concurrently:

Jul 28 16:27:48 beyonwizt4 user.warn kernel: TDA18250 Tune start
Jul 28 16:27:48 beyonwizt4 user.warn kernel: TDA18250 Tune start
Jul 28 16:27:48 beyonwizt4 user.warn kernel: TDA18250 Tune OK
Jul 28 16:27:48 beyonwizt4 user.warn kernel: TDA18250 Tune OK
Jul 28 16:27:48 beyonwizt4 user.warn kernel: {1447}[DNOQ44QAH109A_TuneTer] (1) PLLState = 1
Jul 28 16:27:48 beyonwizt4 user.warn kernel: {1446}[DNOQ44QAH109A_TuneTer] (0) PLLState = 1

When there isn't a failed recording when recordings start simultaneously, the tuners show in the log as having been accessed sequentially.

Adding code to eDVBFrontend::tuneLoopInt() force sequential access to the tuners appears to work around this problem.

The problem also does not appear to occur on the first instance of a multiple recording start after the T4 has been booted.

The problem does not appear to occur on the T2 or T3.

From the above, it appears that the problem may be T4 specific and due to hardware differences and/or T4-specific driver problems.

Reproduction steps

On a T4:

Method 1, two simultaneous recordings:

  1. Reboot the T4
  2. Set the default tuner to C or D
  3. Set two short recording timers on services from different broadcasters (e.g. SBS and Seven)
  4. Before the timers start, change live TV to a service from a third broadcaster (e.g. ABC)
  5. Wait for the timers to complete

Both recordings should have been made correctly.

Repeat from step 3. One recording should show as zero size and duration in the Movie Player, and exit immediately when played. Subsequent repeats from step 3 will also result in one recording showing as zero size and duration.

Method 2, four simultaneous recordings:

  1. Reboot the T4
  2. The default tuner may have any setting
  3. Set four short recording timers on services from different broadcasters (e.g. SBS, Seven, Nine and Ten)
  4. Before the timers start, change live TV to a service from a fifth broadcaster (e.g. ABC)
  5. Wait for the timers to complete

All recordings should have been made correctly.

Repeat from step 3. One recording should show as zero size and duration in the Movie Player, and exit immediately when played. Subsequent repeats from step 3 will also result in one recording showing as zero size and duration.

Comments (5)

  1. prl reporter

    There have also been reports on the Beyonwiz forum that when simultaneous recordings start, sometimes one may incorrectly be a copy of another recording being made.

    It is possible that this has the same underlying cause as the "zero length" recording problem.

    I have not experienced this problem, and there is no known way to replicate the problem.

  2. Peter Urbanec

    Have you noticed any pattern as to which tuner fails? i.e. Is it always recordings that should use tuner A that fail?

  3. prl reporter

    I haven't paid attention to which tuner fails. I have noticed that it can be either recording that fails in the two-recording scenario. I'll see if I can find a pattern to the failing tuner.

  4. prl reporter

    I looked at the enigma2 logs and the recording sizes from 5 two-tuner scenarios where one recording was "zero length". In all cases, the log showed that tuner A was assigned to the first timer of the pair, and tuner B was assigned to the second timer of the pair (i.e. first, second of the pair in the list in timers.xml).

    However, the failed recording was on the first timer in 3 out of the 5 cases and on the second timer in 2 out of the 5 cases.

  5. Log in to comment