[mythtv] Seg Fault in backend with dvb-alpha-0.4pre and use_ts=1

Kenneth Aafloy ke-aa at frisurf.no
Tue Sep 2 03:30:14 EDT 2003


> I had to make the following patch to dvbrecorder because calls to set 
> DMX_DONT_FILTER after the first fail with "Failed to set filter for last 
> pid"

Hmmm, I don't get why that would happen (and your code is incorrect btw) as:
        if ((use_transport_stream && fd_demux.size() < 2) ||
            !use_transport_stream)

Should cover what is needed...i got this code confirmed...but you can
go ahead and prove me wrong :)

> With use_ts=1, the backend reads lots of packets, but doesn't seem to 
> match any.

Because you removed the filter logic for most pids.

> If I kill mythtv, the backend seg faults. The backtrace is attached.
> I'll continue to see if I can figure out what's going wrong.

Bah, don't..just remove all reference to dvbcam && dvbsection in
dvbrecorder.cpp for now...

> Also, I think dvbchannel.cpp has the sense of the inversion backward.

No!

> @@ -201,15 +201,16 @@
> void DVBChannel::CheckOptions(dvb_tuning_t& t)
> {
>     if ((t.params.inversion == INVERSION_AUTO)
> -        && (info.caps & FE_CAN_INVERSION_AUTO))
> +        && !(info.caps & FE_CAN_INVERSION_AUTO))
>     {
>         printf("Channel option inversion is set to 'auto', but your"\

This is a check against your frontend capabilities, and inverting that
bitmask is against every rule in the book :)
If it says your frontend can't do INVERSION_AUTO, it can't...fix it
in the database if you don't want to see that warning message.

> Kenneth, thanks for your dvb work.

My pleasure.

Kenneth



More information about the mythtv-dev mailing list