[linux-dvb] [V4] Querying capabilities

Johannes Stezenbach js at linuxtv.org
Thu Sep 15 15:58:16 CEST 2005


On Thu, Sep 15, 2005 hunold at linuxtv.org wrote:
> struct dvb_demux_pid_filter_prop {
> 	enum dvb_demux_pid_filter_packet_selection packet;
> 	enum dvb_demux_pid_filter_prio_selection prio;
> 	int wait_for_pusi:1;
> 	int output_dupes:1;
> 	int output_errpkts:1;
> }; 

1-bit bitfields should be unsigned


> In order to have a clean solution, I'd like to replace the current 
> DVB_DEMUX_GET_CAPS implementation. Instead of returning one value at a time 
> that needs to be casted to the correct type by the application, I'd like to 
> return only one structure that will have all informations. This structure 
> could look like this: 

I think the current implementation is simpler, more extensible and
more consistent (same interface for video/audio/demux etc.).

But it's not big issue, I don't mind if you change it if you
think it works better.

> struct dvb_demux_capability
> {
> 	int num_pes_filters;,      /*!< number of available PES filters 
> 	(\ref DVB_DEMUX_SET_PES_FILTER) */
> 	int num_audio_dec_feeds;   /*!< number of available audio filters 
> 	(\ref DVB_DEMUX_SET_TS_DECODER_FEED) */
> 	int num_video_dec_feeds;   /*!< number of available video filters 
> 	(\ref DVB_DEMUX_SET_TS_DECODER_FEED) */
> 	int num_pcr_dec_feeds;     /*!< number of available pcr filters 
> 	(\ref DVB_DEMUX_SET_TS_DECODER_FEED) */
> 	int num_section_filters;   /*!< number of available section filters 
> 	(\ref DVB_DEMUX_SET_SECTION_FILTER) */
> 	int num_pid_filters;       /*!< number of available pid filters 
> 	(\ref DVB_DEMUX_SET_PID_FILTER)*/
> 	int num_recording_filters; /*!< number of available recording 
> 	filters (\ref DVB_DEMUX_SET_RECORDING_FILTER)*/
> 	int num_descr_key_pairs; 

should these be unsigned?

> 	int soure_format_ts:1;     /*!< can handle TS input */
> 	int soure_format_ps:1;     /*!< can handle PS input */
> 	int soure_format_pes:1;    /*!< can handle PES input */
> 	int soure_format_mpeg1:1;  /*!< can handle MPEG1 input */ 
> 
> 	int pid_filter_payload_only:1;          /*!< can strip off the TS 
> 	header */
> 	int pid_filter_adaptation_only:1;       /*!< can deliver TS header + 
> adaptation fields only */
> 	int pid_filter_prio_normal_selection:1; /*!< can deliver low 
> 	priority packets only */
> 	int pid_filter_prio_high_selection:1;   /*!< can deliver high 
> 	priority packets only */
> 	int pid_filter_wait_for_pusi:1;         /*!< can wait for pusi 
> 	before filtering */
> 	int pid_filter_output_dupes:1;          /*!< don't filter out 
> 	duplicated packets */
> 	int pid_filter_output_errpkts:1;        /*!< don't filter out 
> 	packets with errors */ 
> 
> 	int recording_event_logging:1;  /*!< recording units have event 
> 	logging support */

1-bit bitfields should be unsigned

> 	uint32_t recording_events;	/*!< bitfield, supported flags for 
> 	recording filters (\ref dvb_demux_recording_filter_flags) */ 
> 
> 	uint32_t priv[16]; /*!< reserved */
> }; 
> 
> #define DVB_DEMUX_GET_CAPS _IOWR(DVB_IOCTL_BASE, 0x20, struct 
> dvb_demux_capability) 
> 
> Comments?

Word-wrapped code sucks.

Johannes



More information about the linux-dvb mailing list