V4L/DVB (13399): firedtv: add missing include, rename a constant
Add #include <dvb_demux.h> for dvb_dmx_swfilter_packets(). This was already indirectly included via firedtv.h, but don't rely on it. The 4 bytes which were referred to as FIREWIRE_HEADER_SIZE are actually the source packet header from IEC 61883-4 (MPEG2-TS data transmission over 1394), not e.g. the IEEE 1394 isochronous packet header. So choose a more precise name. Also, express the payload size as a preprocessor constant too. Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de> Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Родитель
054286b12c
Коммит
6e25abb522
|
@ -26,13 +26,16 @@
|
||||||
#include <iso.h>
|
#include <iso.h>
|
||||||
#include <nodemgr.h>
|
#include <nodemgr.h>
|
||||||
|
|
||||||
|
#include <dvb_demux.h>
|
||||||
|
|
||||||
#include "firedtv.h"
|
#include "firedtv.h"
|
||||||
|
|
||||||
static LIST_HEAD(node_list);
|
static LIST_HEAD(node_list);
|
||||||
static DEFINE_SPINLOCK(node_list_lock);
|
static DEFINE_SPINLOCK(node_list_lock);
|
||||||
|
|
||||||
#define FIREWIRE_HEADER_SIZE 4
|
|
||||||
#define CIP_HEADER_SIZE 8
|
#define CIP_HEADER_SIZE 8
|
||||||
|
#define MPEG2_TS_HEADER_SIZE 4
|
||||||
|
#define MPEG2_TS_SOURCE_PACKET_SIZE (4 + 188)
|
||||||
|
|
||||||
static void rawiso_activity_cb(struct hpsb_iso *iso)
|
static void rawiso_activity_cb(struct hpsb_iso *iso)
|
||||||
{
|
{
|
||||||
|
@ -62,20 +65,20 @@ static void rawiso_activity_cb(struct hpsb_iso *iso)
|
||||||
buf = dma_region_i(&iso->data_buf, unsigned char,
|
buf = dma_region_i(&iso->data_buf, unsigned char,
|
||||||
iso->infos[packet].offset + CIP_HEADER_SIZE);
|
iso->infos[packet].offset + CIP_HEADER_SIZE);
|
||||||
count = (iso->infos[packet].len - CIP_HEADER_SIZE) /
|
count = (iso->infos[packet].len - CIP_HEADER_SIZE) /
|
||||||
(188 + FIREWIRE_HEADER_SIZE);
|
MPEG2_TS_SOURCE_PACKET_SIZE;
|
||||||
|
|
||||||
/* ignore empty packet */
|
/* ignore empty packet */
|
||||||
if (iso->infos[packet].len <= CIP_HEADER_SIZE)
|
if (iso->infos[packet].len <= CIP_HEADER_SIZE)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
while (count--) {
|
while (count--) {
|
||||||
if (buf[FIREWIRE_HEADER_SIZE] == 0x47)
|
if (buf[MPEG2_TS_HEADER_SIZE] == 0x47)
|
||||||
dvb_dmx_swfilter_packets(&fdtv->demux,
|
dvb_dmx_swfilter_packets(&fdtv->demux,
|
||||||
&buf[FIREWIRE_HEADER_SIZE], 1);
|
&buf[MPEG2_TS_HEADER_SIZE], 1);
|
||||||
else
|
else
|
||||||
dev_err(fdtv->device,
|
dev_err(fdtv->device,
|
||||||
"skipping invalid packet\n");
|
"skipping invalid packet\n");
|
||||||
buf += 188 + FIREWIRE_HEADER_SIZE;
|
buf += MPEG2_TS_SOURCE_PACKET_SIZE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
|
|
Загрузка…
Ссылка в новой задаче