[mythtv] DVB Code Update

Kenneth Aafloy ke-aa at frisurf.no
Wed Aug 27 10:22:03 EDT 2003


Ben Bucksch wrote:

> That's a lot better than the earlier versions. A few comments (I haven't 
> read through all the code):
> 
>         perror("DVBChannel ERROR: Opening DVB frontend device failed!\n"\
>                 "\tThe error was");
>         exit(-1);
[..SNIP..]
> roughly like the patch I posted a few days ago.
> Similarily, call dvbrecorder's CloseFilters in its Close().

Fixed.

>         if ( dvr_pids_size >= dvr_pids.size() )
> Make this dvr_pids_next, please, because that's how it's used (I had 
> problems to read that code because of that).

Fixed.

>     dvb_channel_t   dvbchannel;
> In dvbchannel.h, you use that type, but never define it. It only happens 
> to compile, because you include the necessary header in all files where 
> you include the dvbchannel.h. Include dvbtypes.h in dvbchannel.h and use 
> #ifndef DVBTYPES_H guards as usual.

Fixed.

>                             struct dvb_ofdm_parameters *p)
> Better use a reference for out params, not a pointer.

Fixed.

>             dvr_pids.push_back(new dvb_dvr_pid_t);
> No need to use a pointer.
> 
>     cam = new DVBCam(cardnum, sections);
> (in the constructor)
> FYI, you could also get rid of those pointers by using the following:
>     DVBChannel&     channel;
>     DVBSections     sections;
>     DVBCam          cam;
> DVBRecorder::DVBRecorder(DVBChannel& aDVBChannel)
>           : RecorderBase(),
>             channel(aDVBChannel),
>             cardnum(0),
>             sections(),
>             cam(cardnum, sections)
> but I guess the pointers are OK in this case.
> 
>     if (name == "cardnum")
>         cardnum = value;
> Notify the CAM class about this. As-is, the CAM stuff only works on the 
> first card (see above).

Fixed.

>         prev_params.u.ofdm.code_rate_HP != 
> tuning->params.u.ofdm.code_rate_HP ||
>         prev_params.u.ofdm.code_rate_LP != 
> tuning->params.u.ofdm.code_rate_LP ||
>         (and so on)
> prev_params.u.ofdm != tuning->params.u.ofdm or even prev_params != 
> tuning doesn't work?

That won't work on structs.
I guess a memcmp would suffice.

Kenneth


More information about the mythtv-dev mailing list