Opened 11 years ago
Closed 17 months ago
#11018 closed Patch - Bug Fix (Trac EOL)
Distortion of Recordings/LiveTV if EIT-Scan is processing on another capturecard
Reported by: | Owned by: | Klaas de Waal | |
---|---|---|---|
Priority: | minor | Milestone: | needs_triage |
Component: | MythTV - General | Version: | 0.25-fixes |
Severity: | medium | Keywords: | EIT |
Cc: | Ticket locked: | no |
Description
After upgrading from MythTV 0.21 / Mythbuntu 08.10 to MythTV 0.24 / Mythbuntu 10.04 I detected distortions and artefacts in video/audio in recordings/LiveTV of my BT878/BTTV based DVB-S capturecard. After further investigations I saw that this was caused by an active EIT-Scan on my other DIBcom-3000mc based DVB-T card. If both two cards are active I saw lots of this lines in backend-log:
E DVBRead mpeg/pespacket.cpp:79 (AddTSPacket) AddTSPacket: Out of sync!!! Need to wait for next payloadStart PID: 0x12, continuity counter: 6 (expected 5).
So I decided to switch of EIT-Scanning of the DVB-T card and the distortions were gone (But as DVB-T and DVB-S in my setup don't based on the same Video-Source I lost EPG-Information of DVB-T and had to record or look LiveTV on the DVB-T channels to update the information). I don't know If this was caused by mythtv or the LinuxTV-v4l/DVB driver framework but I hoped that updating to 0.25 makes things better. As the problem wasn't gone with 0.25 I decided to write a patch that switches of the EIT-Scanning at all capture-cards if a program records or I look liveTV. After the last record finishes the timer eitCrawlIdleStart is set again on all cards. With this attempt I also resolve another problem: I've setup my system to shutdown(hibernate) if it's idle and ACPI-wakeup before new recordings, but it never shutdown after a recording because a EIT-Scan on another card than the recording-card was running after the recording.
So now I provide the patch. Perhaps it could be helpful for some other people.
Attachments (5)
Change History (19)
Changed 11 years ago by
Attachment: | 0002-libmythtv-EIT-ActiveScan-Control-optimized.patch added |
---|
comment:1 Changed 11 years ago by
Are these all PCI devices? Is it possible you are simply putting too much traffic on the bus, and starving your framegrabbers of bandwidth to their frame buffers?
comment:2 Changed 11 years ago by
I don't think so. I've 3 capture-cards. And all stays on different busses. One Bt878-Bttv based DVB-S card on the PCI-Bus, It is for SD-Content only and worked flawlessly at Mythbuntu/Ubuntu? 08.10 with one USB1.1-DVB-T card (Dibcom-3000mc-based) with an hardware PID filter (table count: 16). The third an newest one (but the problem was also before) is an SAA716x_TBS/TBS6928fe based DVB-S2 card on the PCI-express-bus for the DVB-S HD-Content.
comment:3 Changed 11 years ago by
Annotation: None of my cards is an analog framegrabber, all cards are digital DVB-cards.
comment:4 Changed 11 years ago by
Annotation2: And the distortion and discontinuities of video/audio are on the DVB-S card which resides on the PCI bus not the USB1.1 device (it has no problems).
comment:5 Changed 11 years ago by
Recently I switched from fixes/0.25 to master. After some adaptions the patch also works here fine. So I will attach it here.
Changed 11 years ago by
Attachment: | 0003-libmythtv-EIT-ActiveScan-Control-optimized-026.commit added |
---|
Patch for master / 0.26-rc
comment:6 Changed 11 years ago by
What level of logging are you using? Extremely verbose logging (i.e.non standard levels) can have an effect on performance e.g. high disk I/O that has been known to cause problems on some systems. During normal operation the defaults for verbosity/level should be used and greater verbosity only turned on when debugging an issue.
comment:7 Changed 11 years ago by
At daily use I leave the Standard levels (verbose: general and LogLevel?: info). With these levels the distortions were existent. For debugging purposes sometimes I change verbose to idle,eit,record,dvbcam but leave LogLevel? at info.
But since I've switched of EIT-Scanning during recording or LiveTV with the patch the error is gone. So it works now for me.
comment:8 Changed 4 years ago by
This might be useful for low-end devices such as the RPI when used as a backend. Let's keep this one open for now.
comment:9 Changed 4 years ago by
Owner: | set to Klaas de Waal |
---|---|
Status: | new → assigned |
comment:10 Changed 3 years ago by
Milestone: | unknown → needs_triage |
---|
comment:11 Changed 3 years ago by
This can be a useful feature if the backend is very low power, e.g. a RPi3B, and there is more than one video source used with EIT for the guide data.
The implementation is updated to make it compile against today's master.
It works largely as documented:
- No recording and no Live TV then active EIT scan is running on all inputs
- When recording there is passive EIT on that input; the active scan on the other inputs is paused
- When the recording is stopped then the active EIT on all inputs is restored
- With Live TV there is no EIT collection at all. The expected behavior is that there is passive EIT from the input used for Live TV, so this is not yet perfect.
- When Live TV is stopped then the active EIT on all inputs is restored.
Patch is attached.
Changed 3 years ago by
Attachment: | 20201230-trac11018.patch added |
---|
Active EIT scan only when backend is idle, updated to compile against master of 20201230
comment:12 Changed 3 years ago by
As LiveTV is a recording, i'd expect passive EIT collection behaviour
comment:13 Changed 3 years ago by
Figured out why LiveTV does not collect EIT as described in comment 11. It has nothing to do with the code in this ticket.
The reason is that EIT is only collected on the real capture card.
The real capturecard is the entry with parentid=0 in table capturecard. All entries with parentid!=0 are multirec instances and use the capture card identified by the parentid.
To select the input for LiveTV all available inputs are sorted on LiveTV priority. All available inputs includes both the real and the multirec instances. So it is possible that the LiveTV is started on a multirec instance in which case there is no EIT collected.
There is definitely room for improvement here; it would be great if there is passive EIT collection on any input.
comment:14 Changed 17 months ago by
Resolution: | → Trac EOL |
---|---|
Status: | assigned → closed |
We have moved all bug tracking to github [1]
If you continue to have this issue, please open a new issue at github, referencing this ticket.
Stop EIT-Scan on all capture cards if record or liveTV is ongoing and start again afterwards