Opened 18 years ago

Closed 18 years ago

Last modified 18 years ago

#4632 closed defect (fixed)

disabling active EIT scan breaks passive EIT gathering

Reported by: Janne Grunau Owned by: Janne Grunau
Priority: minor Milestone: 0.21
Component: eit Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

With disabled active EIT scan, no events are inserted into the DB during LiveTV. stuartm reported the same earlier.

Attachments (1)

passiveeit.patch (3.3 KB ) - added by dm@… 18 years ago.

Download all attachments as: .zip

Change History (9)

comment:1 by Janne Grunau, 18 years ago

Status: newaccepted

comment:2 by dm@…, 18 years ago

I discovered a couple of bugs related to EIT handling, one of which might have this effect. The attached patch fixes both. Since I have a Nova T-500 I have disabled active scanning and rely on passive scanning.

I found that passive scanning worked to begin with but changing channel, or perhaps only when changing multiplex, stopped it working. I forget the exact cause but it was something like TVRec::TuningFrequency calls MPEGStreamData::SetDesiredProgram which calls MpegRecorder::Reset which calls _pids_listening.clear(), removing the EIT listener. Meanwhile _eit_pids in DVBStreamHandler was unaffected so the EIT listener was not reinstated. The fix is simply to call _eit_pids.clear() in one of the functions in DVBStreamHandler that get called when there is a channel change.

The other fix is not critical but affects the handler of present/following EIT. "Present" and "Following" are sent as different packets on the same PID but with different section numbers. When a programme changes updated versions of each are sent and generally the same version number is used for the new present and new following packet. To avoid one being lost the Section ID needs to be included in the version map.

David.

by dm@…, 18 years ago

Attachment: passiveeit.patch added

comment:3 by stuartm, 18 years ago

Patch makes no difference for me. No EIT events are being inserted in LiveTV.

comment:4 by stuartm, 18 years ago

Sorry, looks like I forgot to actually install the patched version .. whoops. Testing it properly now.

comment:5 by stuartm, 18 years ago

Ok. In an hour of LiveTV with the patch applied not one event was inserted into the database. Nothing in the logs regarding EIT.

comment:6 by Janne Grunau, 18 years ago

Resolution: fixed
Status: acceptedclosed

(In [16277]) reset eit pids in dvbstreamhandler, fixes passive eit after channel changing

From <dm prolingua co uk>

minor EIT verbose message changes by me

Fixes #4632

comment:7 by Janne Grunau, 18 years ago

(In [16278]) Merges revision [16277] from trunk: reset eit pids in dvbstreamhandler, fixes passive eit after channel changing

From <dm prolingua co uk>

minor EIT verbose message changes by me

Fixes #4632

in reply to:  2 comment:8 by Janne Grunau, 18 years ago

Replying to dm@prolingua.co.uk:

The other fix is not critical but affects the handler of present/following EIT. "Present" and "Following" are sent as different packets on the same PID but with different section numbers. When a programme changes updated versions of each are sent and generally the same version number is used for the new present and new following packet. To avoid one being lost the Section ID needs to be included in the version map.

_eit_section_seen was not resetted when the version changed, [16281] fixes it.

Note: See TracTickets for help on using tickets.