diff options
author | Andy Walls <awalls@radix.net> | 2009-12-31 20:09:51 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2010-02-26 13:10:30 -0500 |
commit | 82acdc84cc4acc11389bdc648b23b15426d2038c (patch) | |
tree | 17f9bc1f4f20611a17f6d1063270e44fc932de2c /drivers/media/video/cx18/cx18-driver.h | |
parent | ef99179710d6ec04d6783afdf8387523c7087920 (diff) |
V4L/DVB (13908): cx18: Add initial working VIDIOC_G_ENC_INDEX ioctl() support
VIDIOC_G_ENC_INDEX support see the light of day.
Some notes:
1. With default capture parameters, the CX23418 seems to transfer 192 index
entries (4.5 kB worth) at 10 second intervals.
2. Index streams don't seem to be supported for MPEG 2 TS streams
3. The index entries seem to claim every frame is a B-Frame. Possible
firmware bug.
4. The cx18 driver does not try to capture an index stream when inserting
sliced VBI into the MPEg stream as the offsets would need fixup.
Signed-off-by: Andy Walls <awalls@radix.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Diffstat (limited to 'drivers/media/video/cx18/cx18-driver.h')
-rw-r--r-- | drivers/media/video/cx18/cx18-driver.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/drivers/media/video/cx18/cx18-driver.h b/drivers/media/video/cx18/cx18-driver.h index ff3426206765..930bab647467 100644 --- a/drivers/media/video/cx18/cx18-driver.h +++ b/drivers/media/video/cx18/cx18-driver.h | |||
@@ -288,6 +288,18 @@ struct cx18_options { | |||
288 | #define CX18_SLICED_TYPE_WSS_625 (5) | 288 | #define CX18_SLICED_TYPE_WSS_625 (5) |
289 | #define CX18_SLICED_TYPE_VPS (7) | 289 | #define CX18_SLICED_TYPE_VPS (7) |
290 | 290 | ||
291 | /** | ||
292 | * list_entry_is_past_end - check if a previous loop cursor is off list end | ||
293 | * @pos: the type * previously used as a loop cursor. | ||
294 | * @head: the head for your list. | ||
295 | * @member: the name of the list_struct within the struct. | ||
296 | * | ||
297 | * Check if the entry's list_head is the head of the list, thus it's not a | ||
298 | * real entry but was the loop cursor that walked past the end | ||
299 | */ | ||
300 | #define list_entry_is_past_end(pos, head, member) \ | ||
301 | (&pos->member == (head)) | ||
302 | |||
291 | struct cx18_buffer { | 303 | struct cx18_buffer { |
292 | struct list_head list; | 304 | struct list_head list; |
293 | dma_addr_t dma_handle; | 305 | dma_addr_t dma_handle; |