[media] dvb-usb: add support for dvb-usb-adapters that deliver raw payload
Select this feature setting the dvb-usb-adapter caps field with DVB_USB_ADAP_RECEIVES_RAW_PAYLOAD Signed-off-by: Michael Krufky <mkrufky@linuxtv.org> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Родитель
8e156702aa
Коммит
379aa4d0c0
|
@ -80,6 +80,14 @@ static void dvb_usb_data_complete_204(struct usb_data_stream *stream, u8 *buffer
|
|||
dvb_dmx_swfilter_204(&adap->demux, buffer, length);
|
||||
}
|
||||
|
||||
static void dvb_usb_data_complete_raw(struct usb_data_stream *stream,
|
||||
u8 *buffer, size_t length)
|
||||
{
|
||||
struct dvb_usb_adapter *adap = stream->user_priv;
|
||||
if (adap->feedcount > 0 && adap->state & DVB_USB_ADAP_STATE_DVB)
|
||||
dvb_dmx_swfilter_raw(&adap->demux, buffer, length);
|
||||
}
|
||||
|
||||
int dvb_usb_adapter_stream_init(struct dvb_usb_adapter *adap)
|
||||
{
|
||||
int i, ret = 0;
|
||||
|
@ -90,6 +98,10 @@ int dvb_usb_adapter_stream_init(struct dvb_usb_adapter *adap)
|
|||
adap->fe_adap[i].stream.complete =
|
||||
dvb_usb_data_complete_204;
|
||||
else
|
||||
if (adap->props.fe[i].caps & DVB_USB_ADAP_RECEIVES_RAW_PAYLOAD)
|
||||
adap->fe_adap[i].stream.complete =
|
||||
dvb_usb_data_complete_raw;
|
||||
else
|
||||
adap->fe_adap[i].stream.complete = dvb_usb_data_complete;
|
||||
adap->fe_adap[i].stream.user_priv = adap;
|
||||
ret = usb_urb_init(&adap->fe_adap[i].stream,
|
||||
|
|
|
@ -141,6 +141,7 @@ struct dvb_usb_adapter_fe_properties {
|
|||
#define DVB_USB_ADAP_PID_FILTER_CAN_BE_TURNED_OFF 0x02
|
||||
#define DVB_USB_ADAP_NEED_PID_FILTERING 0x04
|
||||
#define DVB_USB_ADAP_RECEIVES_204_BYTE_TS 0x08
|
||||
#define DVB_USB_ADAP_RECEIVES_RAW_PAYLOAD 0x10
|
||||
int caps;
|
||||
int pid_filter_count;
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче