mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 15:08:53 +00:00
expand tabs
Original commit message from CVS: expand tabs
This commit is contained in:
parent
3ecf433432
commit
b6540959e6
12 changed files with 319 additions and 319 deletions
|
@ -340,57 +340,57 @@ gst_iir_equalizer_get_property (GObject * object, guint prop_id,
|
||||||
|
|
||||||
/* start of code that is type specific */
|
/* start of code that is type specific */
|
||||||
|
|
||||||
#define CREATE_OPTIMIZED_FUNCTIONS(TYPE,BIG_TYPE,MIN_VAL,MAX_VAL) \
|
#define CREATE_OPTIMIZED_FUNCTIONS(TYPE,BIG_TYPE,MIN_VAL,MAX_VAL) \
|
||||||
typedef struct { \
|
typedef struct { \
|
||||||
TYPE x1, x2; /* history of input values for a filter */ \
|
TYPE x1, x2; /* history of input values for a filter */ \
|
||||||
TYPE y1, y2; /* history of output values for a filter */ \
|
TYPE y1, y2; /* history of output values for a filter */ \
|
||||||
} SecondOrderHistory ## TYPE; \
|
} SecondOrderHistory ## TYPE; \
|
||||||
\
|
\
|
||||||
static inline TYPE \
|
static inline TYPE \
|
||||||
one_step_ ## TYPE (SecondOrderFilter *filter, \
|
one_step_ ## TYPE (SecondOrderFilter *filter, \
|
||||||
SecondOrderHistory ## TYPE *history, TYPE input) \
|
SecondOrderHistory ## TYPE *history, TYPE input) \
|
||||||
{ \
|
{ \
|
||||||
/* calculate output */ \
|
/* calculate output */ \
|
||||||
TYPE output = filter->alpha * (input - history->x2) + \
|
TYPE output = filter->alpha * (input - history->x2) + \
|
||||||
filter->gamma * history->y1 - filter->beta * history->y2; \
|
filter->gamma * history->y1 - filter->beta * history->y2; \
|
||||||
/* update history */ \
|
/* update history */ \
|
||||||
history->y2 = history->y1; \
|
history->y2 = history->y1; \
|
||||||
history->y1 = output; \
|
history->y1 = output; \
|
||||||
history->x2 = history->x1; \
|
history->x2 = history->x1; \
|
||||||
history->x1 = input; \
|
history->x1 = input; \
|
||||||
\
|
\
|
||||||
return output; \
|
return output; \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
static const guint \
|
static const guint \
|
||||||
history_size_ ## TYPE = sizeof (SecondOrderHistory ## TYPE); \
|
history_size_ ## TYPE = sizeof (SecondOrderHistory ## TYPE); \
|
||||||
\
|
\
|
||||||
static void \
|
static void \
|
||||||
gst_iir_equ_process_ ## TYPE (GstIirEqualizer *equ, guint8 *data, \
|
gst_iir_equ_process_ ## TYPE (GstIirEqualizer *equ, guint8 *data, \
|
||||||
guint size, guint channels) \
|
guint size, guint channels) \
|
||||||
{ \
|
{ \
|
||||||
guint frames = size / channels / sizeof (TYPE); \
|
guint frames = size / channels / sizeof (TYPE); \
|
||||||
guint i, c, f; \
|
guint i, c, f; \
|
||||||
BIG_TYPE cur; \
|
BIG_TYPE cur; \
|
||||||
TYPE val; \
|
TYPE val; \
|
||||||
\
|
\
|
||||||
for (i = 0; i < frames; i++) { \
|
for (i = 0; i < frames; i++) { \
|
||||||
for (c = 0; c < channels; c++) { \
|
for (c = 0; c < channels; c++) { \
|
||||||
SecondOrderHistory ## TYPE *history = equ->history; \
|
SecondOrderHistory ## TYPE *history = equ->history; \
|
||||||
val = *((TYPE *) data); \
|
val = *((TYPE *) data); \
|
||||||
cur = 0; \
|
cur = 0; \
|
||||||
for (f = 0; f < equ->freq_count; f++) { \
|
for (f = 0; f < equ->freq_count; f++) { \
|
||||||
SecondOrderFilter *filter = &equ->filter[f]; \
|
SecondOrderFilter *filter = &equ->filter[f]; \
|
||||||
\
|
\
|
||||||
cur += one_step_ ## TYPE (filter, history, val); \
|
cur += one_step_ ## TYPE (filter, history, val); \
|
||||||
history++; \
|
history++; \
|
||||||
} \
|
} \
|
||||||
cur += val * 0.25; \
|
cur += val * 0.25; \
|
||||||
cur = CLAMP (cur, MIN_VAL, MAX_VAL); \
|
cur = CLAMP (cur, MIN_VAL, MAX_VAL); \
|
||||||
*((TYPE *) data) = (TYPE) cur; \
|
*((TYPE *) data) = (TYPE) cur; \
|
||||||
data += sizeof (TYPE); \
|
data += sizeof (TYPE); \
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
}
|
}
|
||||||
|
|
||||||
CREATE_OPTIMIZED_FUNCTIONS (gint16, gint, -32768, 32767);
|
CREATE_OPTIMIZED_FUNCTIONS (gint16, gint, -32768, 32767);
|
||||||
|
|
|
@ -33,13 +33,13 @@ GST_DEBUG_CATEGORY_EXTERN (qtdemux_debug);
|
||||||
/* temporary hack */
|
/* temporary hack */
|
||||||
#define gst_util_dump_mem(a,b) /* */
|
#define gst_util_dump_mem(a,b) /* */
|
||||||
|
|
||||||
#define QTDEMUX_GUINT32_GET(a) (GST_READ_UINT32_BE(a))
|
#define QTDEMUX_GUINT32_GET(a) (GST_READ_UINT32_BE(a))
|
||||||
#define QTDEMUX_GUINT24_GET(a) (GST_READ_UINT32_BE(a) >> 8)
|
#define QTDEMUX_GUINT24_GET(a) (GST_READ_UINT32_BE(a) >> 8)
|
||||||
#define QTDEMUX_GUINT16_GET(a) (GST_READ_UINT16_BE(a))
|
#define QTDEMUX_GUINT16_GET(a) (GST_READ_UINT16_BE(a))
|
||||||
#define QTDEMUX_GUINT8_GET(a) (*(guint8 *)(a))
|
#define QTDEMUX_GUINT8_GET(a) (*(guint8 *)(a))
|
||||||
#define QTDEMUX_FP32_GET(a) ((GST_READ_UINT32_BE(a))/65536.0)
|
#define QTDEMUX_FP32_GET(a) ((GST_READ_UINT32_BE(a))/65536.0)
|
||||||
#define QTDEMUX_FP16_GET(a) ((GST_READ_UINT16_BE(a))/256.0)
|
#define QTDEMUX_FP16_GET(a) ((GST_READ_UINT16_BE(a))/256.0)
|
||||||
#define QTDEMUX_FOURCC_GET(a) (GST_READ_UINT32_LE(a))
|
#define QTDEMUX_FOURCC_GET(a) (GST_READ_UINT32_LE(a))
|
||||||
|
|
||||||
#define QTDEMUX_GUINT64_GET(a) ((((guint64)QTDEMUX_GUINT32_GET(a))<<32)|QTDEMUX_GUINT32_GET(((void *)a)+4))
|
#define QTDEMUX_GUINT64_GET(a) ((((guint64)QTDEMUX_GUINT32_GET(a))<<32)|QTDEMUX_GUINT32_GET(((void *)a)+4))
|
||||||
|
|
||||||
|
@ -781,76 +781,76 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux,
|
||||||
|
|
||||||
#define QT_CONTAINER 1
|
#define QT_CONTAINER 1
|
||||||
|
|
||||||
#define FOURCC_moov GST_MAKE_FOURCC('m','o','o','v')
|
#define FOURCC_moov GST_MAKE_FOURCC('m','o','o','v')
|
||||||
#define FOURCC_mvhd GST_MAKE_FOURCC('m','v','h','d')
|
#define FOURCC_mvhd GST_MAKE_FOURCC('m','v','h','d')
|
||||||
#define FOURCC_clip GST_MAKE_FOURCC('c','l','i','p')
|
#define FOURCC_clip GST_MAKE_FOURCC('c','l','i','p')
|
||||||
#define FOURCC_trak GST_MAKE_FOURCC('t','r','a','k')
|
#define FOURCC_trak GST_MAKE_FOURCC('t','r','a','k')
|
||||||
#define FOURCC_udta GST_MAKE_FOURCC('u','d','t','a')
|
#define FOURCC_udta GST_MAKE_FOURCC('u','d','t','a')
|
||||||
#define FOURCC_ctab GST_MAKE_FOURCC('c','t','a','b')
|
#define FOURCC_ctab GST_MAKE_FOURCC('c','t','a','b')
|
||||||
#define FOURCC_tkhd GST_MAKE_FOURCC('t','k','h','d')
|
#define FOURCC_tkhd GST_MAKE_FOURCC('t','k','h','d')
|
||||||
#define FOURCC_crgn GST_MAKE_FOURCC('c','r','g','n')
|
#define FOURCC_crgn GST_MAKE_FOURCC('c','r','g','n')
|
||||||
#define FOURCC_matt GST_MAKE_FOURCC('m','a','t','t')
|
#define FOURCC_matt GST_MAKE_FOURCC('m','a','t','t')
|
||||||
#define FOURCC_kmat GST_MAKE_FOURCC('k','m','a','t')
|
#define FOURCC_kmat GST_MAKE_FOURCC('k','m','a','t')
|
||||||
#define FOURCC_edts GST_MAKE_FOURCC('e','d','t','s')
|
#define FOURCC_edts GST_MAKE_FOURCC('e','d','t','s')
|
||||||
#define FOURCC_elst GST_MAKE_FOURCC('e','l','s','t')
|
#define FOURCC_elst GST_MAKE_FOURCC('e','l','s','t')
|
||||||
#define FOURCC_load GST_MAKE_FOURCC('l','o','a','d')
|
#define FOURCC_load GST_MAKE_FOURCC('l','o','a','d')
|
||||||
#define FOURCC_tref GST_MAKE_FOURCC('t','r','e','f')
|
#define FOURCC_tref GST_MAKE_FOURCC('t','r','e','f')
|
||||||
#define FOURCC_imap GST_MAKE_FOURCC('i','m','a','p')
|
#define FOURCC_imap GST_MAKE_FOURCC('i','m','a','p')
|
||||||
#define FOURCC___in GST_MAKE_FOURCC(' ',' ','i','n')
|
#define FOURCC___in GST_MAKE_FOURCC(' ',' ','i','n')
|
||||||
#define FOURCC___ty GST_MAKE_FOURCC(' ',' ','t','y')
|
#define FOURCC___ty GST_MAKE_FOURCC(' ',' ','t','y')
|
||||||
#define FOURCC_mdia GST_MAKE_FOURCC('m','d','i','a')
|
#define FOURCC_mdia GST_MAKE_FOURCC('m','d','i','a')
|
||||||
#define FOURCC_mdhd GST_MAKE_FOURCC('m','d','h','d')
|
#define FOURCC_mdhd GST_MAKE_FOURCC('m','d','h','d')
|
||||||
#define FOURCC_hdlr GST_MAKE_FOURCC('h','d','l','r')
|
#define FOURCC_hdlr GST_MAKE_FOURCC('h','d','l','r')
|
||||||
#define FOURCC_minf GST_MAKE_FOURCC('m','i','n','f')
|
#define FOURCC_minf GST_MAKE_FOURCC('m','i','n','f')
|
||||||
#define FOURCC_vmhd GST_MAKE_FOURCC('v','m','h','d')
|
#define FOURCC_vmhd GST_MAKE_FOURCC('v','m','h','d')
|
||||||
#define FOURCC_smhd GST_MAKE_FOURCC('s','m','h','d')
|
#define FOURCC_smhd GST_MAKE_FOURCC('s','m','h','d')
|
||||||
#define FOURCC_gmhd GST_MAKE_FOURCC('g','m','h','d')
|
#define FOURCC_gmhd GST_MAKE_FOURCC('g','m','h','d')
|
||||||
#define FOURCC_gmin GST_MAKE_FOURCC('g','m','i','n')
|
#define FOURCC_gmin GST_MAKE_FOURCC('g','m','i','n')
|
||||||
#define FOURCC_dinf GST_MAKE_FOURCC('d','i','n','f')
|
#define FOURCC_dinf GST_MAKE_FOURCC('d','i','n','f')
|
||||||
#define FOURCC_dref GST_MAKE_FOURCC('d','r','e','f')
|
#define FOURCC_dref GST_MAKE_FOURCC('d','r','e','f')
|
||||||
#define FOURCC_stbl GST_MAKE_FOURCC('s','t','b','l')
|
#define FOURCC_stbl GST_MAKE_FOURCC('s','t','b','l')
|
||||||
#define FOURCC_stsd GST_MAKE_FOURCC('s','t','s','d')
|
#define FOURCC_stsd GST_MAKE_FOURCC('s','t','s','d')
|
||||||
#define FOURCC_stts GST_MAKE_FOURCC('s','t','t','s')
|
#define FOURCC_stts GST_MAKE_FOURCC('s','t','t','s')
|
||||||
#define FOURCC_stss GST_MAKE_FOURCC('s','t','s','s')
|
#define FOURCC_stss GST_MAKE_FOURCC('s','t','s','s')
|
||||||
#define FOURCC_stsc GST_MAKE_FOURCC('s','t','s','c')
|
#define FOURCC_stsc GST_MAKE_FOURCC('s','t','s','c')
|
||||||
#define FOURCC_stsz GST_MAKE_FOURCC('s','t','s','z')
|
#define FOURCC_stsz GST_MAKE_FOURCC('s','t','s','z')
|
||||||
#define FOURCC_stco GST_MAKE_FOURCC('s','t','c','o')
|
#define FOURCC_stco GST_MAKE_FOURCC('s','t','c','o')
|
||||||
#define FOURCC_vide GST_MAKE_FOURCC('v','i','d','e')
|
#define FOURCC_vide GST_MAKE_FOURCC('v','i','d','e')
|
||||||
#define FOURCC_soun GST_MAKE_FOURCC('s','o','u','n')
|
#define FOURCC_soun GST_MAKE_FOURCC('s','o','u','n')
|
||||||
#define FOURCC_co64 GST_MAKE_FOURCC('c','o','6','4')
|
#define FOURCC_co64 GST_MAKE_FOURCC('c','o','6','4')
|
||||||
#define FOURCC_cmov GST_MAKE_FOURCC('c','m','o','v')
|
#define FOURCC_cmov GST_MAKE_FOURCC('c','m','o','v')
|
||||||
#define FOURCC_dcom GST_MAKE_FOURCC('d','c','o','m')
|
#define FOURCC_dcom GST_MAKE_FOURCC('d','c','o','m')
|
||||||
#define FOURCC_cmvd GST_MAKE_FOURCC('c','m','v','d')
|
#define FOURCC_cmvd GST_MAKE_FOURCC('c','m','v','d')
|
||||||
#define FOURCC_hint GST_MAKE_FOURCC('h','i','n','t')
|
#define FOURCC_hint GST_MAKE_FOURCC('h','i','n','t')
|
||||||
#define FOURCC_mp4a GST_MAKE_FOURCC('m','p','4','a')
|
#define FOURCC_mp4a GST_MAKE_FOURCC('m','p','4','a')
|
||||||
#define FOURCC_mp4v GST_MAKE_FOURCC('m','p','4','v')
|
#define FOURCC_mp4v GST_MAKE_FOURCC('m','p','4','v')
|
||||||
#define FOURCC_wave GST_MAKE_FOURCC('w','a','v','e')
|
#define FOURCC_wave GST_MAKE_FOURCC('w','a','v','e')
|
||||||
#define FOURCC_appl GST_MAKE_FOURCC('a','p','p','l')
|
#define FOURCC_appl GST_MAKE_FOURCC('a','p','p','l')
|
||||||
#define FOURCC_esds GST_MAKE_FOURCC('e','s','d','s')
|
#define FOURCC_esds GST_MAKE_FOURCC('e','s','d','s')
|
||||||
#define FOURCC_hnti GST_MAKE_FOURCC('h','n','t','i')
|
#define FOURCC_hnti GST_MAKE_FOURCC('h','n','t','i')
|
||||||
#define FOURCC_rtp_ GST_MAKE_FOURCC('r','t','p',' ')
|
#define FOURCC_rtp_ GST_MAKE_FOURCC('r','t','p',' ')
|
||||||
#define FOURCC_sdp_ GST_MAKE_FOURCC('s','d','p',' ')
|
#define FOURCC_sdp_ GST_MAKE_FOURCC('s','d','p',' ')
|
||||||
#define FOURCC_meta GST_MAKE_FOURCC('m','e','t','a')
|
#define FOURCC_meta GST_MAKE_FOURCC('m','e','t','a')
|
||||||
#define FOURCC_ilst GST_MAKE_FOURCC('i','l','s','t')
|
#define FOURCC_ilst GST_MAKE_FOURCC('i','l','s','t')
|
||||||
#define FOURCC__nam GST_MAKE_FOURCC(0xa9,'n','a','m')
|
#define FOURCC__nam GST_MAKE_FOURCC(0xa9,'n','a','m')
|
||||||
#define FOURCC__ART GST_MAKE_FOURCC(0xa9,'A','R','T')
|
#define FOURCC__ART GST_MAKE_FOURCC(0xa9,'A','R','T')
|
||||||
#define FOURCC__wrt GST_MAKE_FOURCC(0xa9,'w','r','t')
|
#define FOURCC__wrt GST_MAKE_FOURCC(0xa9,'w','r','t')
|
||||||
#define FOURCC__grp GST_MAKE_FOURCC(0xa9,'g','r','p')
|
#define FOURCC__grp GST_MAKE_FOURCC(0xa9,'g','r','p')
|
||||||
#define FOURCC__alb GST_MAKE_FOURCC(0xa9,'a','l','b')
|
#define FOURCC__alb GST_MAKE_FOURCC(0xa9,'a','l','b')
|
||||||
#define FOURCC_gnre GST_MAKE_FOURCC('g','n','r','e')
|
#define FOURCC_gnre GST_MAKE_FOURCC('g','n','r','e')
|
||||||
#define FOURCC_disc GST_MAKE_FOURCC('d','i','s','c')
|
#define FOURCC_disc GST_MAKE_FOURCC('d','i','s','c')
|
||||||
#define FOURCC_trkn GST_MAKE_FOURCC('t','r','k','n')
|
#define FOURCC_trkn GST_MAKE_FOURCC('t','r','k','n')
|
||||||
#define FOURCC_cpil GST_MAKE_FOURCC('c','p','i','l')
|
#define FOURCC_cpil GST_MAKE_FOURCC('c','p','i','l')
|
||||||
#define FOURCC_tmpo GST_MAKE_FOURCC('t','m','p','o')
|
#define FOURCC_tmpo GST_MAKE_FOURCC('t','m','p','o')
|
||||||
#define FOURCC__too GST_MAKE_FOURCC(0xa9,'t','o','o')
|
#define FOURCC__too GST_MAKE_FOURCC(0xa9,'t','o','o')
|
||||||
#define FOURCC_____ GST_MAKE_FOURCC('-','-','-','-')
|
#define FOURCC_____ GST_MAKE_FOURCC('-','-','-','-')
|
||||||
#define FOURCC_free GST_MAKE_FOURCC('f','r','e','e')
|
#define FOURCC_free GST_MAKE_FOURCC('f','r','e','e')
|
||||||
#define FOURCC_data GST_MAKE_FOURCC('d','a','t','a')
|
#define FOURCC_data GST_MAKE_FOURCC('d','a','t','a')
|
||||||
#define FOURCC_SVQ3 GST_MAKE_FOURCC('S','V','Q','3')
|
#define FOURCC_SVQ3 GST_MAKE_FOURCC('S','V','Q','3')
|
||||||
#define FOURCC_rmra GST_MAKE_FOURCC('r','m','r','a')
|
#define FOURCC_rmra GST_MAKE_FOURCC('r','m','r','a')
|
||||||
#define FOURCC_rmda GST_MAKE_FOURCC('r','m','d','a')
|
#define FOURCC_rmda GST_MAKE_FOURCC('r','m','d','a')
|
||||||
#define FOURCC_rdrf GST_MAKE_FOURCC('r','d','r','f')
|
#define FOURCC_rdrf GST_MAKE_FOURCC('r','d','r','f')
|
||||||
#define FOURCC__gen GST_MAKE_FOURCC(0xa9, 'g', 'e', 'n')
|
#define FOURCC__gen GST_MAKE_FOURCC(0xa9, 'g', 'e', 'n')
|
||||||
|
|
||||||
static void qtdemux_dump_mvhd (GstQTDemux * qtdemux, void *buffer, int depth);
|
static void qtdemux_dump_mvhd (GstQTDemux * qtdemux, void *buffer, int depth);
|
||||||
static void qtdemux_dump_tkhd (GstQTDemux * qtdemux, void *buffer, int depth);
|
static void qtdemux_dump_tkhd (GstQTDemux * qtdemux, void *buffer, int depth);
|
||||||
|
|
|
@ -39,7 +39,7 @@ extern "C" {
|
||||||
#define GST_IS_QTDEMUX_CLASS(obj) \
|
#define GST_IS_QTDEMUX_CLASS(obj) \
|
||||||
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_QTDEMUX))
|
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_QTDEMUX))
|
||||||
|
|
||||||
#define GST_QTDEMUX_MAX_STREAMS 8
|
#define GST_QTDEMUX_MAX_STREAMS 8
|
||||||
|
|
||||||
typedef struct _GstQTDemux GstQTDemux;
|
typedef struct _GstQTDemux GstQTDemux;
|
||||||
typedef struct _GstQTDemuxClass GstQTDemuxClass;
|
typedef struct _GstQTDemuxClass GstQTDemuxClass;
|
||||||
|
|
|
@ -32,10 +32,10 @@ G_BEGIN_DECLS
|
||||||
(gst_v4l2_color_balance_channel_get_type ())
|
(gst_v4l2_color_balance_channel_get_type ())
|
||||||
#define GST_V4L2_COLOR_BALANCE_CHANNEL(obj) \
|
#define GST_V4L2_COLOR_BALANCE_CHANNEL(obj) \
|
||||||
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_V4L2_COLOR_BALANCE_CHANNEL, \
|
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_V4L2_COLOR_BALANCE_CHANNEL, \
|
||||||
GstV4l2ColorBalanceChannel))
|
GstV4l2ColorBalanceChannel))
|
||||||
#define GST_V4L2_COLOR_BALANCE_CHANNEL_CLASS(klass) \
|
#define GST_V4L2_COLOR_BALANCE_CHANNEL_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_V4L2_COLOR_BALANCE_CHANNEL, \
|
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_V4L2_COLOR_BALANCE_CHANNEL, \
|
||||||
GstV4l2ColorBalanceChannelClass))
|
GstV4l2ColorBalanceChannelClass))
|
||||||
#define GST_IS_V4L2_COLOR_BALANCE_CHANNEL(obj) \
|
#define GST_IS_V4L2_COLOR_BALANCE_CHANNEL(obj) \
|
||||||
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_V4L2_COLOR_BALANCE_CHANNEL))
|
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_V4L2_COLOR_BALANCE_CHANNEL))
|
||||||
#define GST_IS_V4L2_COLOR_BALANCE_CHANNEL_CLASS(klass) \
|
#define GST_IS_V4L2_COLOR_BALANCE_CHANNEL_CLASS(klass) \
|
||||||
|
@ -51,8 +51,8 @@ typedef struct _GstV4l2ColorBalanceChannelClass {
|
||||||
GstColorBalanceChannelClass parent;
|
GstColorBalanceChannelClass parent;
|
||||||
} GstV4l2ColorBalanceChannelClass;
|
} GstV4l2ColorBalanceChannelClass;
|
||||||
|
|
||||||
GType gst_v4l2_color_balance_channel_get_type (void);
|
GType gst_v4l2_color_balance_channel_get_type (void);
|
||||||
|
|
||||||
void gst_v4l2_color_balance_interface_init (GstColorBalanceClass *klass);
|
void gst_v4l2_color_balance_interface_init (GstColorBalanceClass *klass);
|
||||||
|
|
||||||
#endif /* __GST_V4L2_COLOR_BALANCE_H__ */
|
#endif /* __GST_V4L2_COLOR_BALANCE_H__ */
|
||||||
|
|
|
@ -50,87 +50,87 @@
|
||||||
#ifdef GST_V4L2_MISSING_BUFDECL
|
#ifdef GST_V4L2_MISSING_BUFDECL
|
||||||
struct v4l2_buffer
|
struct v4l2_buffer
|
||||||
{
|
{
|
||||||
__u32 index;
|
__u32 index;
|
||||||
enum v4l2_buf_type type;
|
enum v4l2_buf_type type;
|
||||||
__u32 bytesused;
|
__u32 bytesused;
|
||||||
__u32 flags;
|
__u32 flags;
|
||||||
enum v4l2_field field;
|
enum v4l2_field field;
|
||||||
struct timeval timestamp;
|
struct timeval timestamp;
|
||||||
struct v4l2_timecode timecode;
|
struct v4l2_timecode timecode;
|
||||||
__u32 sequence;
|
__u32 sequence;
|
||||||
|
|
||||||
/* memory location */
|
/* memory location */
|
||||||
enum v4l2_memory memory;
|
enum v4l2_memory memory;
|
||||||
union {
|
union {
|
||||||
__u32 offset;
|
__u32 offset;
|
||||||
unsigned long userptr;
|
unsigned long userptr;
|
||||||
} m;
|
} m;
|
||||||
__u32 length;
|
__u32 length;
|
||||||
|
|
||||||
__u32 reserved[2];
|
__u32 reserved[2];
|
||||||
};
|
};
|
||||||
#endif /* GST_V4L2_MISSING_BUFDECL */
|
#endif /* GST_V4L2_MISSING_BUFDECL */
|
||||||
|
|
||||||
|
|
||||||
#define GST_TYPE_V4L2ELEMENT \
|
#define GST_TYPE_V4L2ELEMENT \
|
||||||
(gst_v4l2element_get_type())
|
(gst_v4l2element_get_type())
|
||||||
#define GST_V4L2ELEMENT(obj) \
|
#define GST_V4L2ELEMENT(obj) \
|
||||||
(G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_V4L2ELEMENT, GstV4l2Element))
|
(G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_V4L2ELEMENT, GstV4l2Element))
|
||||||
#define GST_V4L2ELEMENT_CLASS(klass) \
|
#define GST_V4L2ELEMENT_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_V4L2ELEMENT, GstV4l2ElementClass))
|
(G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_V4L2ELEMENT, GstV4l2ElementClass))
|
||||||
#define GST_IS_V4L2ELEMENT(obj) \
|
#define GST_IS_V4L2ELEMENT(obj) \
|
||||||
(G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_V4L2ELEMENT))
|
(G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_V4L2ELEMENT))
|
||||||
#define GST_IS_V4L2ELEMENT_CLASS(obj) \
|
#define GST_IS_V4L2ELEMENT_CLASS(obj) \
|
||||||
(G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_V4L2ELEMENT))
|
(G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_V4L2ELEMENT))
|
||||||
#define GST_V4L2ELEMENT_GET_CLASS(obj) \
|
#define GST_V4L2ELEMENT_GET_CLASS(obj) \
|
||||||
(G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_V4L2ELEMENT, GstV4l2ElementClass))
|
(G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_V4L2ELEMENT, GstV4l2ElementClass))
|
||||||
|
|
||||||
|
|
||||||
typedef struct _GstV4l2Element GstV4l2Element;
|
typedef struct _GstV4l2Element GstV4l2Element;
|
||||||
typedef struct _GstV4l2ElementClass GstV4l2ElementClass;
|
typedef struct _GstV4l2ElementClass GstV4l2ElementClass;
|
||||||
typedef struct _GstV4l2Xv GstV4l2Xv;
|
typedef struct _GstV4l2Xv GstV4l2Xv;
|
||||||
|
|
||||||
struct _GstV4l2Element {
|
struct _GstV4l2Element {
|
||||||
GstElement element;
|
GstElement element;
|
||||||
|
|
||||||
/* the video device */
|
/* the video device */
|
||||||
char *device;
|
char *device;
|
||||||
|
|
||||||
/* the video-device's file descriptor */
|
/* the video-device's file descriptor */
|
||||||
gint video_fd;
|
gint video_fd;
|
||||||
|
|
||||||
/* the video buffer (mmap()'ed) */
|
/* the video buffer (mmap()'ed) */
|
||||||
guint8 **buffer;
|
guint8 **buffer;
|
||||||
|
|
||||||
/* the video-device's capabilities */
|
/* the video-device's capabilities */
|
||||||
struct v4l2_capability vcap;
|
struct v4l2_capability vcap;
|
||||||
|
|
||||||
/* the toys available to us */
|
/* the toys available to us */
|
||||||
GList *channels;
|
GList *channels;
|
||||||
GList *norms;
|
GList *norms;
|
||||||
GList *colors;
|
GList *colors;
|
||||||
|
|
||||||
/* X-overlay */
|
/* X-overlay */
|
||||||
GstV4l2Xv *xv;
|
GstV4l2Xv *xv;
|
||||||
XID xwindow_id;
|
XID xwindow_id;
|
||||||
|
|
||||||
/* properties */
|
/* properties */
|
||||||
gchar *norm;
|
gchar *norm;
|
||||||
gchar *channel;
|
gchar *channel;
|
||||||
gulong frequency;
|
gulong frequency;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstV4l2ElementClass {
|
struct _GstV4l2ElementClass {
|
||||||
GstElementClass parent_class;
|
GstElementClass parent_class;
|
||||||
|
|
||||||
/* probed devices */
|
/* probed devices */
|
||||||
GList *devices;
|
GList *devices;
|
||||||
|
|
||||||
/* signals */
|
/* signals */
|
||||||
void (*open) (GstElement *element,
|
void (*open) (GstElement *element,
|
||||||
const gchar *device);
|
const gchar *device);
|
||||||
void (*close) (GstElement *element,
|
void (*close) (GstElement *element,
|
||||||
const gchar *device);
|
const gchar *device);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -28,78 +28,78 @@ GST_DEBUG_CATEGORY_EXTERN (v4l2src_debug);
|
||||||
#define GST_V4L2_MIN_BUFFERS 2
|
#define GST_V4L2_MIN_BUFFERS 2
|
||||||
|
|
||||||
#define GST_TYPE_V4L2SRC \
|
#define GST_TYPE_V4L2SRC \
|
||||||
(gst_v4l2src_get_type())
|
(gst_v4l2src_get_type())
|
||||||
#define GST_V4L2SRC(obj) \
|
#define GST_V4L2SRC(obj) \
|
||||||
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_V4L2SRC,GstV4l2Src))
|
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_V4L2SRC,GstV4l2Src))
|
||||||
#define GST_V4L2SRC_CLASS(klass) \
|
#define GST_V4L2SRC_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_V4L2SRC,GstV4l2SrcClass))
|
(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_V4L2SRC,GstV4l2SrcClass))
|
||||||
#define GST_IS_V4L2SRC(obj) \
|
#define GST_IS_V4L2SRC(obj) \
|
||||||
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_V4L2SRC))
|
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_V4L2SRC))
|
||||||
#define GST_IS_V4L2SRC_CLASS(obj) \
|
#define GST_IS_V4L2SRC_CLASS(obj) \
|
||||||
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_V4L2SRC))
|
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_V4L2SRC))
|
||||||
|
|
||||||
typedef struct _GstV4l2BufferPool GstV4l2BufferPool;
|
typedef struct _GstV4l2BufferPool GstV4l2BufferPool;
|
||||||
typedef struct _GstV4l2Buffer GstV4l2Buffer;
|
typedef struct _GstV4l2Buffer GstV4l2Buffer;
|
||||||
typedef struct _GstV4l2Src GstV4l2Src;
|
typedef struct _GstV4l2Src GstV4l2Src;
|
||||||
typedef struct _GstV4l2SrcClass GstV4l2SrcClass;
|
typedef struct _GstV4l2SrcClass GstV4l2SrcClass;
|
||||||
|
|
||||||
/* global info */
|
/* global info */
|
||||||
struct _GstV4l2BufferPool {
|
struct _GstV4l2BufferPool {
|
||||||
GstAtomicInt refcount; /* number of users: 1 for every buffer, 1 for element */
|
GstAtomicInt refcount; /* number of users: 1 for every buffer, 1 for element */
|
||||||
gint video_fd;
|
gint video_fd;
|
||||||
guint buffer_count;
|
guint buffer_count;
|
||||||
GstV4l2Buffer * buffers;
|
GstV4l2Buffer * buffers;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstV4l2Buffer {
|
struct _GstV4l2Buffer {
|
||||||
struct v4l2_buffer buffer;
|
struct v4l2_buffer buffer;
|
||||||
guint8 * start;
|
guint8 * start;
|
||||||
guint length;
|
guint length;
|
||||||
GstAtomicInt refcount; /* add 1 if in use by element, add 1 if in use by GstBuffer */
|
GstAtomicInt refcount; /* add 1 if in use by element, add 1 if in use by GstBuffer */
|
||||||
GstV4l2BufferPool * pool;
|
GstV4l2BufferPool * pool;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstV4l2Src {
|
struct _GstV4l2Src {
|
||||||
GstV4l2Element v4l2element;
|
GstV4l2Element v4l2element;
|
||||||
|
|
||||||
/* pads */
|
/* pads */
|
||||||
GstPad *srcpad;
|
GstPad *srcpad;
|
||||||
|
|
||||||
/* internal lists */
|
/* internal lists */
|
||||||
GSList *formats; /* list of available capture formats */
|
GSList *formats; /* list of available capture formats */
|
||||||
|
|
||||||
/* buffers */
|
/* buffers */
|
||||||
GstV4l2BufferPool *pool;
|
GstV4l2BufferPool *pool;
|
||||||
|
|
||||||
struct v4l2_requestbuffers breq;
|
struct v4l2_requestbuffers breq;
|
||||||
struct v4l2_format format;
|
struct v4l2_format format;
|
||||||
|
|
||||||
/* True if we want to stop */
|
/* True if we want to stop */
|
||||||
gboolean quit, is_capturing;
|
gboolean quit, is_capturing;
|
||||||
|
|
||||||
/* A/V sync... frame counter and internal cache */
|
/* A/V sync... frame counter and internal cache */
|
||||||
gulong handled;
|
gulong handled;
|
||||||
gint need_writes;
|
gint need_writes;
|
||||||
GstBuffer *cached_buffer;
|
GstBuffer *cached_buffer;
|
||||||
gulong last_seq;
|
gulong last_seq;
|
||||||
|
|
||||||
/* clock */
|
/* clock */
|
||||||
GstClock *clock;
|
GstClock *clock;
|
||||||
|
|
||||||
/* time to substract from clock time to get back to timestamp */
|
/* time to substract from clock time to get back to timestamp */
|
||||||
GstClockTime substract_time;
|
GstClockTime substract_time;
|
||||||
|
|
||||||
/* how are we going to push buffers? */
|
/* how are we going to push buffers? */
|
||||||
gboolean use_fixed_fps;
|
gboolean use_fixed_fps;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _GstV4l2SrcClass {
|
struct _GstV4l2SrcClass {
|
||||||
GstV4l2ElementClass parent_class;
|
GstV4l2ElementClass parent_class;
|
||||||
|
|
||||||
void (*frame_capture) (GObject *object);
|
void (*frame_capture) (GObject *object);
|
||||||
void (*frame_drop) (GObject *object);
|
void (*frame_drop) (GObject *object);
|
||||||
void (*frame_insert) (GObject *object);
|
void (*frame_insert) (GObject *object);
|
||||||
void (*frame_lost) (GObject *object,
|
void (*frame_lost) (GObject *object,
|
||||||
gint num_lost);
|
gint num_lost);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -33,10 +33,10 @@ G_BEGIN_DECLS
|
||||||
(gst_v4l2_tuner_channel_get_type ())
|
(gst_v4l2_tuner_channel_get_type ())
|
||||||
#define GST_V4L2_TUNER_CHANNEL(obj) \
|
#define GST_V4L2_TUNER_CHANNEL(obj) \
|
||||||
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_V4L2_TUNER_CHANNEL, \
|
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_V4L2_TUNER_CHANNEL, \
|
||||||
GstV4l2TunerChannel))
|
GstV4l2TunerChannel))
|
||||||
#define GST_V4L2_TUNER_CHANNEL_CLASS(klass) \
|
#define GST_V4L2_TUNER_CHANNEL_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_V4L2_TUNER_CHANNEL, \
|
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_V4L2_TUNER_CHANNEL, \
|
||||||
GstV4l2TunerChannelClass))
|
GstV4l2TunerChannelClass))
|
||||||
#define GST_IS_V4L2_TUNER_CHANNEL(obj) \
|
#define GST_IS_V4L2_TUNER_CHANNEL(obj) \
|
||||||
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_V4L2_TUNER_CHANNEL))
|
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_V4L2_TUNER_CHANNEL))
|
||||||
#define GST_IS_V4L2_TUNER_CHANNEL_CLASS(klass) \
|
#define GST_IS_V4L2_TUNER_CHANNEL_CLASS(klass) \
|
||||||
|
@ -58,10 +58,10 @@ typedef struct _GstV4l2TunerChannelClass {
|
||||||
(gst_v4l2_tuner_norm_get_type ())
|
(gst_v4l2_tuner_norm_get_type ())
|
||||||
#define GST_V4L2_TUNER_NORM(obj) \
|
#define GST_V4L2_TUNER_NORM(obj) \
|
||||||
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_V4L2_TUNER_NORM, \
|
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_V4L2_TUNER_NORM, \
|
||||||
GstV4l2TunerNorm))
|
GstV4l2TunerNorm))
|
||||||
#define GST_V4L2_TUNER_NORM_CLASS(klass) \
|
#define GST_V4L2_TUNER_NORM_CLASS(klass) \
|
||||||
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_V4L2_TUNER_NORM, \
|
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_V4L2_TUNER_NORM, \
|
||||||
GstV4l2TunerNormClass))
|
GstV4l2TunerNormClass))
|
||||||
#define GST_IS_V4L2_TUNER_NORM(obj) \
|
#define GST_IS_V4L2_TUNER_NORM(obj) \
|
||||||
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_V4L2_TUNER_NORM))
|
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_V4L2_TUNER_NORM))
|
||||||
#define GST_IS_V4L2_TUNER_NORM_CLASS(klass) \
|
#define GST_IS_V4L2_TUNER_NORM_CLASS(klass) \
|
||||||
|
@ -77,9 +77,9 @@ typedef struct _GstV4l2TunerNormClass {
|
||||||
GstTunerNormClass parent;
|
GstTunerNormClass parent;
|
||||||
} GstV4l2TunerNormClass;
|
} GstV4l2TunerNormClass;
|
||||||
|
|
||||||
GType gst_v4l2_tuner_channel_get_type (void);
|
GType gst_v4l2_tuner_channel_get_type (void);
|
||||||
GType gst_v4l2_tuner_norm_get_type (void);
|
GType gst_v4l2_tuner_norm_get_type (void);
|
||||||
|
|
||||||
void gst_v4l2_tuner_interface_init (GstTunerClass *klass);
|
void gst_v4l2_tuner_interface_init (GstTunerClass *klass);
|
||||||
|
|
||||||
#endif /* __GST_V4L2_TUNER_H__ */
|
#endif /* __GST_V4L2_TUNER_H__ */
|
||||||
|
|
|
@ -29,9 +29,9 @@
|
||||||
|
|
||||||
G_BEGIN_DECLS
|
G_BEGIN_DECLS
|
||||||
|
|
||||||
void gst_v4l2_xoverlay_interface_init (GstXOverlayClass *klass);
|
void gst_v4l2_xoverlay_interface_init (GstXOverlayClass *klass);
|
||||||
|
|
||||||
void gst_v4l2_xoverlay_open (GstV4l2Element *v4l2element);
|
void gst_v4l2_xoverlay_open (GstV4l2Element *v4l2element);
|
||||||
void gst_v4l2_xoverlay_close (GstV4l2Element *v4l2element);
|
void gst_v4l2_xoverlay_close (GstV4l2Element *v4l2element);
|
||||||
|
|
||||||
#endif /* __GST_V4L2_X_OVERLAY_H__ */
|
#endif /* __GST_V4L2_X_OVERLAY_H__ */
|
||||||
|
|
|
@ -37,9 +37,9 @@
|
||||||
#include "gstv4l2src.h"
|
#include "gstv4l2src.h"
|
||||||
|
|
||||||
#define DEBUG(format, args...) \
|
#define DEBUG(format, args...) \
|
||||||
GST_DEBUG_OBJECT (\
|
GST_DEBUG_OBJECT (\
|
||||||
GST_ELEMENT(v4l2element), \
|
GST_ELEMENT(v4l2element), \
|
||||||
"V4L2: " format, ##args)
|
"V4L2: " format, ##args)
|
||||||
|
|
||||||
|
|
||||||
/******************************************************
|
/******************************************************
|
||||||
|
|
|
@ -36,86 +36,86 @@
|
||||||
(element->vcap.capabilities & V4L2_CAP_VIDEO_OVERLAY)
|
(element->vcap.capabilities & V4L2_CAP_VIDEO_OVERLAY)
|
||||||
|
|
||||||
/* checks whether the current v4lelement has already been open()'ed or not */
|
/* checks whether the current v4lelement has already been open()'ed or not */
|
||||||
#define GST_V4L2_CHECK_OPEN(element) \
|
#define GST_V4L2_CHECK_OPEN(element) \
|
||||||
if (!GST_V4L2_IS_OPEN(element)) \
|
if (!GST_V4L2_IS_OPEN(element)) \
|
||||||
{ \
|
{ \
|
||||||
GST_ELEMENT_ERROR (element, RESOURCE, TOO_LAZY, \
|
GST_ELEMENT_ERROR (element, RESOURCE, TOO_LAZY, \
|
||||||
(_("Device is not open.")), (NULL)); \
|
(_("Device is not open.")), (NULL)); \
|
||||||
return FALSE; \
|
return FALSE; \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* checks whether the current v4lelement is close()'ed or whether it is still open */
|
/* checks whether the current v4lelement is close()'ed or whether it is still open */
|
||||||
#define GST_V4L2_CHECK_NOT_OPEN(element) \
|
#define GST_V4L2_CHECK_NOT_OPEN(element) \
|
||||||
if (GST_V4L2_IS_OPEN(element)) \
|
if (GST_V4L2_IS_OPEN(element)) \
|
||||||
{ \
|
{ \
|
||||||
GST_ELEMENT_ERROR (element, RESOURCE, TOO_LAZY, \
|
GST_ELEMENT_ERROR (element, RESOURCE, TOO_LAZY, \
|
||||||
(_("Device is open.")), (NULL)); \
|
(_("Device is open.")), (NULL)); \
|
||||||
return FALSE; \
|
return FALSE; \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* checks whether the current v4lelement does video overlay */
|
/* checks whether the current v4lelement does video overlay */
|
||||||
#define GST_V4L2_CHECK_OVERLAY(element) \
|
#define GST_V4L2_CHECK_OVERLAY(element) \
|
||||||
if (!GST_V4L2_IS_OVERLAY(element)) \
|
if (!GST_V4L2_IS_OVERLAY(element)) \
|
||||||
{ \
|
{ \
|
||||||
GST_ELEMENT_ERROR (element, RESOURCE, TOO_LAZY, \
|
GST_ELEMENT_ERROR (element, RESOURCE, TOO_LAZY, \
|
||||||
(NULL), ("Device cannot handle overlay")); \
|
(NULL), ("Device cannot handle overlay")); \
|
||||||
return FALSE; \
|
return FALSE; \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* checks whether we're in capture mode or not */
|
/* checks whether we're in capture mode or not */
|
||||||
#define GST_V4L2_CHECK_ACTIVE(element) \
|
#define GST_V4L2_CHECK_ACTIVE(element) \
|
||||||
if (!GST_V4L2_IS_ACTIVE(element)) \
|
if (!GST_V4L2_IS_ACTIVE(element)) \
|
||||||
{ \
|
{ \
|
||||||
GST_ELEMENT_ERROR (element, RESOURCE, SETTINGS, \
|
GST_ELEMENT_ERROR (element, RESOURCE, SETTINGS, \
|
||||||
(NULL), ("Device is not in streaming mode")); \
|
(NULL), ("Device is not in streaming mode")); \
|
||||||
return FALSE; \
|
return FALSE; \
|
||||||
}
|
}
|
||||||
|
|
||||||
/* checks whether we're out of capture mode or not */
|
/* checks whether we're out of capture mode or not */
|
||||||
#define GST_V4L2_CHECK_NOT_ACTIVE(element) \
|
#define GST_V4L2_CHECK_NOT_ACTIVE(element) \
|
||||||
if (GST_V4L2_IS_ACTIVE(element)) \
|
if (GST_V4L2_IS_ACTIVE(element)) \
|
||||||
{ \
|
{ \
|
||||||
GST_ELEMENT_ERROR (element, RESOURCE, SETTINGS, \
|
GST_ELEMENT_ERROR (element, RESOURCE, SETTINGS, \
|
||||||
(NULL), ("Device is in streaming mode")); \
|
(NULL), ("Device is in streaming mode")); \
|
||||||
return FALSE; \
|
return FALSE; \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* open/close the device */
|
/* open/close the device */
|
||||||
gboolean gst_v4l2_open (GstV4l2Element *v4l2element);
|
gboolean gst_v4l2_open (GstV4l2Element *v4l2element);
|
||||||
gboolean gst_v4l2_close (GstV4l2Element *v4l2element);
|
gboolean gst_v4l2_close (GstV4l2Element *v4l2element);
|
||||||
|
|
||||||
/* norm/input/output */
|
/* norm/input/output */
|
||||||
gboolean gst_v4l2_get_norm (GstV4l2Element *v4l2element,
|
gboolean gst_v4l2_get_norm (GstV4l2Element *v4l2element,
|
||||||
v4l2_std_id *norm);
|
v4l2_std_id *norm);
|
||||||
gboolean gst_v4l2_set_norm (GstV4l2Element *v4l2element,
|
gboolean gst_v4l2_set_norm (GstV4l2Element *v4l2element,
|
||||||
v4l2_std_id norm);
|
v4l2_std_id norm);
|
||||||
gboolean gst_v4l2_get_input (GstV4l2Element *v4l2element,
|
gboolean gst_v4l2_get_input (GstV4l2Element *v4l2element,
|
||||||
gint *input);
|
gint *input);
|
||||||
gboolean gst_v4l2_set_input (GstV4l2Element *v4l2element,
|
gboolean gst_v4l2_set_input (GstV4l2Element *v4l2element,
|
||||||
gint input);
|
gint input);
|
||||||
gboolean gst_v4l2_get_output (GstV4l2Element *v4l2element,
|
gboolean gst_v4l2_get_output (GstV4l2Element *v4l2element,
|
||||||
gint *output);
|
gint *output);
|
||||||
gboolean gst_v4l2_set_output (GstV4l2Element *v4l2element,
|
gboolean gst_v4l2_set_output (GstV4l2Element *v4l2element,
|
||||||
gint output);
|
gint output);
|
||||||
|
|
||||||
/* frequency control */
|
/* frequency control */
|
||||||
gboolean gst_v4l2_get_frequency (GstV4l2Element *v4l2element,
|
gboolean gst_v4l2_get_frequency (GstV4l2Element *v4l2element,
|
||||||
gint tunernum,
|
gint tunernum,
|
||||||
gulong *frequency);
|
gulong *frequency);
|
||||||
gboolean gst_v4l2_set_frequency (GstV4l2Element *v4l2element,
|
gboolean gst_v4l2_set_frequency (GstV4l2Element *v4l2element,
|
||||||
gint tunernum,
|
gint tunernum,
|
||||||
gulong frequency);
|
gulong frequency);
|
||||||
gboolean gst_v4l2_signal_strength (GstV4l2Element *v4l2element,
|
gboolean gst_v4l2_signal_strength (GstV4l2Element *v4l2element,
|
||||||
gint tunernum,
|
gint tunernum,
|
||||||
gulong *signal);
|
gulong *signal);
|
||||||
|
|
||||||
/* attribute control */
|
/* attribute control */
|
||||||
gboolean gst_v4l2_get_attribute (GstV4l2Element *v4l2element,
|
gboolean gst_v4l2_get_attribute (GstV4l2Element *v4l2element,
|
||||||
int attribute,
|
int attribute,
|
||||||
int *value);
|
int *value);
|
||||||
gboolean gst_v4l2_set_attribute (GstV4l2Element *v4l2element,
|
gboolean gst_v4l2_set_attribute (GstV4l2Element *v4l2element,
|
||||||
int attribute,
|
int attribute,
|
||||||
const int value);
|
const int value);
|
||||||
|
|
||||||
#endif /* __V4L2_CALLS_H__ */
|
#endif /* __V4L2_CALLS_H__ */
|
||||||
|
|
|
@ -40,9 +40,9 @@
|
||||||
#define GST_V4L2_SET_INACTIVE(element) (element)->buffer = NULL
|
#define GST_V4L2_SET_INACTIVE(element) (element)->buffer = NULL
|
||||||
|
|
||||||
#define DEBUG(format, args...) \
|
#define DEBUG(format, args...) \
|
||||||
GST_CAT_DEBUG_OBJECT (\
|
GST_CAT_DEBUG_OBJECT (\
|
||||||
v4l2src_debug, v4l2src, \
|
v4l2src_debug, v4l2src, \
|
||||||
"V4L2SRC: " format, ##args)
|
"V4L2SRC: " format, ##args)
|
||||||
|
|
||||||
/* On some systems MAP_FAILED seems to be missing */
|
/* On some systems MAP_FAILED seems to be missing */
|
||||||
#ifndef MAP_FAILED
|
#ifndef MAP_FAILED
|
||||||
|
|
|
@ -24,30 +24,30 @@
|
||||||
#include "v4l2_calls.h"
|
#include "v4l2_calls.h"
|
||||||
|
|
||||||
|
|
||||||
gboolean gst_v4l2src_get_capture (GstV4l2Src *v4l2src);
|
gboolean gst_v4l2src_get_capture (GstV4l2Src *v4l2src);
|
||||||
gboolean gst_v4l2src_set_capture (GstV4l2Src *v4l2src,
|
gboolean gst_v4l2src_set_capture (GstV4l2Src *v4l2src,
|
||||||
struct v4l2_fmtdesc *fmt,
|
struct v4l2_fmtdesc *fmt,
|
||||||
gint width,
|
gint width,
|
||||||
gint height);
|
gint height);
|
||||||
gboolean gst_v4l2src_capture_init (GstV4l2Src *v4l2src);
|
gboolean gst_v4l2src_capture_init (GstV4l2Src *v4l2src);
|
||||||
gboolean gst_v4l2src_capture_start (GstV4l2Src *v4l2src);
|
gboolean gst_v4l2src_capture_start (GstV4l2Src *v4l2src);
|
||||||
gint gst_v4l2src_grab_frame (GstV4l2Src *v4l2src);
|
gint gst_v4l2src_grab_frame (GstV4l2Src *v4l2src);
|
||||||
guint8 * gst_v4l2src_get_buffer (GstV4l2Src *v4l2src,
|
guint8 * gst_v4l2src_get_buffer (GstV4l2Src *v4l2src,
|
||||||
gint num);
|
gint num);
|
||||||
gboolean gst_v4l2src_queue_frame (GstV4l2Src *v4l2src,
|
gboolean gst_v4l2src_queue_frame (GstV4l2Src *v4l2src,
|
||||||
guint i);
|
guint i);
|
||||||
gboolean gst_v4l2src_capture_stop (GstV4l2Src *v4l2src);
|
gboolean gst_v4l2src_capture_stop (GstV4l2Src *v4l2src);
|
||||||
gboolean gst_v4l2src_capture_deinit (GstV4l2Src *v4l2src);
|
gboolean gst_v4l2src_capture_deinit (GstV4l2Src *v4l2src);
|
||||||
|
|
||||||
gboolean gst_v4l2src_fill_format_list (GstV4l2Src *v4l2src);
|
gboolean gst_v4l2src_fill_format_list (GstV4l2Src *v4l2src);
|
||||||
gboolean gst_v4l2src_clear_format_list (GstV4l2Src *v4l2src);
|
gboolean gst_v4l2src_clear_format_list (GstV4l2Src *v4l2src);
|
||||||
|
|
||||||
/* hacky */
|
/* hacky */
|
||||||
gboolean gst_v4l2src_get_size_limits (GstV4l2Src *v4l2src,
|
gboolean gst_v4l2src_get_size_limits (GstV4l2Src *v4l2src,
|
||||||
struct v4l2_fmtdesc *fmt,
|
struct v4l2_fmtdesc *fmt,
|
||||||
gint *min_w, gint *max_w,
|
gint *min_w, gint *max_w,
|
||||||
gint *min_h, gint *max_h);
|
gint *min_h, gint *max_h);
|
||||||
|
|
||||||
void gst_v4l2src_free_buffer (GstBuffer *buffer);
|
void gst_v4l2src_free_buffer (GstBuffer *buffer);
|
||||||
|
|
||||||
#endif /* __V4L2SRC_CALLS_H__ */
|
#endif /* __V4L2SRC_CALLS_H__ */
|
||||||
|
|
Loading…
Reference in a new issue