Linux Kernel
3.7.1
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
drivers
media
pci
cx18
cx18-streams.h
Go to the documentation of this file.
1
/*
2
* cx18 init/start/stop/exit stream functions
3
*
4
* Derived from ivtv-streams.h
5
*
6
* Copyright (C) 2007 Hans Verkuil <
[email protected]
>
7
* Copyright (C) 2008 Andy Walls <
[email protected]
>
8
*
9
* This program is free software; you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License as published by
11
* the Free Software Foundation; either version 2 of the License, or
12
* (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the GNU General Public License
20
* along with this program; if not, write to the Free Software
21
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
22
* 02111-1307 USA
23
*/
24
25
u32
cx18_find_handle
(
struct
cx18
*
cx
);
26
struct
cx18_stream
*
cx18_handle_to_stream
(
struct
cx18
*
cx
,
u32
handle
);
27
int
cx18_streams_setup
(
struct
cx18
*
cx
);
28
int
cx18_streams_register
(
struct
cx18
*
cx
);
29
void
cx18_streams_cleanup
(
struct
cx18
*
cx
,
int
unregister);
30
31
#define CX18_ENC_STREAM_TYPE_IDX_FW_MDL_MIN (3)
32
void
cx18_stream_rotate_idx_mdls
(
struct
cx18
*
cx
);
33
34
static
inline
bool
cx18_stream_enabled(
struct
cx18_stream
*
s
)
35
{
36
return
s->
video_dev
||
37
(s->
dvb
&& s->
dvb
->enabled) ||
38
(s->
type
==
CX18_ENC_STREAM_TYPE_IDX
&&
39
s->
cx
->stream_buffers[
CX18_ENC_STREAM_TYPE_IDX
] != 0);
40
}
41
42
/* Related to submission of mdls to firmware */
43
static
inline
void
cx18_stream_load_fw_queue(
struct
cx18_stream
*s)
44
{
45
schedule_work
(&s->
out_work_order
);
46
}
47
48
static
inline
void
cx18_stream_put_mdl_fw(
struct
cx18_stream
*s,
49
struct
cx18_mdl
*mdl)
50
{
51
/* Put mdl on q_free; the out work handler will move mdl(s) to q_busy */
52
cx18_enqueue(s, mdl, &s->
q_free
);
53
cx18_stream_load_fw_queue(s);
54
}
55
56
void
cx18_out_work_handler
(
struct
work_struct
*
work
);
57
58
/* Capture related */
59
int
cx18_start_v4l2_encode_stream
(
struct
cx18_stream
*s);
60
int
cx18_stop_v4l2_encode_stream
(
struct
cx18_stream
*s,
int
gop_end);
61
62
void
cx18_stop_all_captures
(
struct
cx18
*
cx
);
Generated on Thu Jan 10 2013 13:47:36 for Linux Kernel by
1.8.2