expand tabs

Original commit message from CVS:
expand tabs
This commit is contained in:
Thomas Vander Stichele 2005-12-06 19:55:58 +00:00
parent 04ad447fcf
commit bdb814f6ef
81 changed files with 2288 additions and 2203 deletions

View file

@ -1,3 +1,86 @@
2005-12-06 Thomas Vander Stichele <thomas at apestaart dot org>
* docs/plugins/gst-plugins-bad-plugins-undocumented.txt:
* ext/audiofile/gstafparse.h:
* ext/audiofile/gstafsink.c: (gst_afsink_chain):
* ext/audiofile/gstafsink.h:
* ext/audiofile/gstafsrc.c: (gst_afsrc_close_file):
* ext/audiofile/gstafsrc.h:
* ext/cdaudio/gstcdaudio.c:
* ext/divx/gstdivxenc.c:
* ext/dts/gstdtsdec.h:
* ext/faac/gstfaac.h:
* ext/ivorbis/vorbisenc.h:
* ext/ivorbis/vorbisfile.c:
* ext/musepack/gstmusepackdec.h:
* ext/nas/nassink.c:
* ext/snapshot/gstsnapshot.c:
* ext/sndfile/gstsf.h:
* ext/tarkin/gsttarkindec.h:
* ext/tarkin/gsttarkinenc.h:
* ext/xine/gstxine.h:
* ext/xine/xinecaps.c:
* ext/xvid/gstxvid.h:
* gst-libs/gst/play/play.h:
* gst/apetag/apedemux.h:
* gst/cdxaparse/gstcdxaparse.h:
* gst/cdxaparse/gstcdxastrip.h:
* gst/colorspace/yuv2rgb.c:
* gst/colorspace/yuv2rgb.h:
* gst/equalizer/gstiirequalizer.c:
* gst/festival/gstfestival.h:
* gst/games/gstpuzzle.c:
* gst/games/gstvideoimage.c:
* gst/games/gstvideoimage.h:
* gst/modplug/gstmodplug.h:
* gst/modplug/libmodplug/it_defs.h:
* gst/modplug/libmodplug/modplug.h:
* gst/modplug/libmodplug/sndfile.h:
* gst/modplug/libmodplug/stdafx.h:
* gst/mpeg1sys/buffer.c:
* gst/mpeg1sys/gstmpeg1systemencode.h:
* gst/mpeg1sys/main.h:
* gst/mpeg1sys/systems.c:
* gst/mpeg1videoparse/gstmp1videoparse.h:
* gst/mpeg2sub/gstmpeg2subt.h:
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
* gst/mpegaudioparse/gstmpegaudioparse.h:
* gst/multifilesink/gstmultifilesink.h:
* gst/overlay/gstoverlay.h:
* gst/qtdemux/qtdemux.c:
* gst/qtdemux/qtdemux.h:
* gst/rtjpeg/RTjpeg.c: (RTjpeg_dctY), (RTjpeg_idct):
* gst/rtjpeg/RTjpeg.h:
* gst/tta/crc32.h:
* gst/tta/filters.h:
* gst/tta/ttadec.h:
* gst/videodrop/gstvideodrop.h:
* sys/cdrom/gstcdplayer.h:
* sys/cdrom/gstcdplayer_ioctl.c:
* sys/cdrom/gstcdplayer_ioctl.h:
* sys/cdrom/gstcdplayer_ioctl_bsd.h:
* sys/cdrom/gstcdplayer_ioctl_irix.h:
* sys/cdrom/gstcdplayer_ioctl_solaris.h:
* sys/dxr3/dxr3audiosink.c:
* sys/dxr3/dxr3audiosink.h:
* sys/dxr3/dxr3spusink.c:
* sys/dxr3/dxr3spusink.h:
* sys/dxr3/dxr3videosink.c:
* sys/dxr3/dxr3videosink.h:
* sys/qcam/dark.c:
* sys/qcam/gstqcamsrc.c:
* sys/v4l2/gstv4l2colorbalance.h:
* sys/v4l2/gstv4l2element.h:
* sys/v4l2/gstv4l2src.h:
* sys/v4l2/gstv4l2tuner.h:
* sys/v4l2/gstv4l2xoverlay.h:
* sys/v4l2/v4l2_calls.c:
* sys/v4l2/v4l2_calls.h:
* sys/v4l2/v4l2src_calls.c:
* sys/v4l2/v4l2src_calls.h:
* sys/vcd/vcdsrc.h:
expand tabs
=== release 0.10.0 ===
2005-12-05 <thomas (at) apestaart (dot) org>

View file

@ -1,7 +1,9 @@
50% symbol docs coverage.
1 symbols documented.
75% symbol docs coverage.
3 symbols documented.
0 symbols incomplete.
1 not documented.
GstDfbVideoSink

View file

@ -27,7 +27,7 @@
#include <gst/gst.h>
#include <gst/bytestream/bytestream.h>
#include <audiofile.h> /* what else are we to do */
#include <audiofile.h> /* what else are we to do */
#include <af_vfs.h>
@ -56,7 +56,7 @@ typedef struct _GstAFParseClass GstAFParseClass;
typedef enum {
GST_AFPARSE_OPEN = (GST_ELEMENT_FLAG_LAST << 0),
GST_AFPARSE_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2),
GST_AFPARSE_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2),
} GstAFParseFlags;
struct _GstAFParse {
@ -71,9 +71,9 @@ struct _GstAFParse {
int width;
unsigned int rate;
gboolean is_signed;
int type; /* type of output, compare to audiofile.h
* RAW, AIFF, AIFFC, NEXTSND, WAVE
*/
int type; /* type of output, compare to audiofile.h
* RAW, AIFF, AIFFC, NEXTSND, WAVE
*/
/* blocking */
gulong curoffset;
gulong bytes_per_read;
@ -82,7 +82,7 @@ struct _GstAFParse {
gulong seq;
gint64 timestamp;
/* FIXME : endianness is a little cryptic at this point */
int endianness_data; /* 4321 or 1234 */
int endianness_data; /* 4321 or 1234 */
int endianness_wanted; /* same thing, but what the output format wants */
int endianness_output; /* what the output endianness will be */
};
@ -94,7 +94,7 @@ struct _GstAFParseClass {
void (*handoff) (GstElement *element,GstPad *pad);
};
gboolean gst_afparse_plugin_init (GstPlugin *plugin);
gboolean gst_afparse_plugin_init (GstPlugin *plugin);
#ifdef __cplusplus
}

View file

@ -399,7 +399,7 @@ gst_afsink_chain (GstPad * pad, GstData * _data)
if (bytes_written < GST_BUFFER_SIZE (buf))
{
printf ("afsink : Warning : %d bytes should be written, only %d bytes written\n",
GST_BUFFER_SIZE (buf), bytes_written);
GST_BUFFER_SIZE (buf), bytes_written);
}
}
*/

View file

@ -26,7 +26,7 @@
#include <gst/gst.h>
#include <audiofile.h> /* what else are we to do */
#include <audiofile.h> /* what else are we to do */
#ifdef __cplusplus
@ -54,7 +54,7 @@ typedef struct _GstAFSinkClass GstAFSinkClass;
typedef enum {
GST_AFSINK_OPEN = (GST_ELEMENT_FLAG_LAST << 0),
GST_AFSINK_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2),
GST_AFSINK_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2),
} GstAFSinkFlags;
struct _GstAFSink {
@ -71,11 +71,11 @@ struct _GstAFSink {
int width;
unsigned int rate;
gboolean is_signed;
int type; /* type of output, compare to audiofile.h
* RAW, AIFF, AIFFC, NEXTSND, WAVE
*/
int type; /* type of output, compare to audiofile.h
* RAW, AIFF, AIFFC, NEXTSND, WAVE
*/
/* FIXME : endianness is a little cryptic at this point */
int endianness_data; /* 4321 or 1234 */
int endianness_data; /* 4321 or 1234 */
int endianness_wanted; /* same thing, but what the output format wants */
int endianness_output; /* what the output endianness will be */
};
@ -87,8 +87,8 @@ struct _GstAFSinkClass {
void (*handoff) (GstElement *element,GstPad *pad);
};
GType gst_afsink_get_type (void);
gboolean gst_afsink_plugin_init (GstPlugin *plugin);
GType gst_afsink_get_type (void);
gboolean gst_afsink_plugin_init (GstPlugin *plugin);

View file

@ -364,7 +364,7 @@ gst_afsrc_close_file (GstAFSrc * src)
/* g_print ("DEBUG: closing srcfile...\n"); */
g_return_if_fail (GST_OBJECT_FLAG_IS_SET (src, GST_AFSRC_OPEN));
/* g_print ("DEBUG: past flag test\n"); */
/* if (fclose (src->file) != 0) */
/* if (fclose (src->file) != 0) */
if (afCloseFile (src->file) != 0) {
GST_ELEMENT_ERROR (src, RESOURCE, CLOSE,
(_("Error closing file \"%s\"."), src->filename), GST_ERROR_SYSTEM);

View file

@ -26,7 +26,7 @@
#include <gst/gst.h>
#include <audiofile.h> /* what else are we to do */
#include <audiofile.h> /* what else are we to do */
#ifdef __cplusplus
@ -54,7 +54,7 @@ typedef struct _GstAFSrcClass GstAFSrcClass;
typedef enum {
GST_AFSRC_OPEN = (GST_ELEMENT_FLAG_LAST << 0),
GST_AFSRC_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2),
GST_AFSRC_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2),
} GstAFSrcFlags;
struct _GstAFSrc {
@ -71,9 +71,9 @@ struct _GstAFSrc {
int width;
unsigned int rate;
gboolean is_signed;
int type; /* type of output, compare to audiofile.h
* RAW, AIFF, AIFFC, NEXTSND, WAVE
*/
int type; /* type of output, compare to audiofile.h
* RAW, AIFF, AIFFC, NEXTSND, WAVE
*/
/* blocking */
gulong curoffset;
gulong bytes_per_read;
@ -81,7 +81,7 @@ struct _GstAFSrc {
gulong seq;
guint64 framestamp;
/* FIXME : endianness is a little cryptic at this point */
int endianness_data; /* 4321 or 1234 */
int endianness_data; /* 4321 or 1234 */
int endianness_wanted; /* same thing, but what the output format wants */
int endianness_output; /* what the output endianness will be */
};
@ -93,7 +93,7 @@ struct _GstAFSrcClass {
void (*handoff) (GstElement *element,GstPad *pad);
};
GType gst_afsrc_get_type (void);
GType gst_afsrc_get_type (void);
gboolean gst_afsrc_plugin_init (GstPlugin *plugin);

View file

@ -25,11 +25,11 @@
#include <gst/gst.h>
#define GST_TYPE_CDAUDIO (gst_cdaudio_get_type())
#define GST_CDAUDIO(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CDAUDIO,GstCDAudio))
#define GST_CDAUDIO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CDAUDIO,GstCDAudioClass))
#define GST_IS_CDAUDIO(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CDAUDIO))
#define GST_IS_CDAUDIO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CDAUDIO))
#define GST_TYPE_CDAUDIO (gst_cdaudio_get_type())
#define GST_CDAUDIO(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CDAUDIO,GstCDAudio))
#define GST_CDAUDIO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CDAUDIO,GstCDAudioClass))
#define GST_IS_CDAUDIO(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CDAUDIO))
#define GST_IS_CDAUDIO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CDAUDIO))
typedef struct _GstCDAudio GstCDAudio;
typedef struct _GstCDAudioClass GstCDAudioClass;

View file

@ -366,14 +366,14 @@ gst_divxenc_chain (GstPad * pad, GstData * _data)
case GST_MAKE_FOURCC ('R', 'G', 'B', ' '):
gst_caps_get_int (caps, "depth", &d);
switch (d) {
case 24:
divx_cs = 0;
bitcnt = 24;
break;
case 32:
divx_cs = 0;
bitcnt = 32;
break;
case 24:
divx_cs = 0;
bitcnt = 24;
break;
case 32:
divx_cs = 0;
bitcnt = 32;
break;
*/
static GstPadLinkReturn

View file

@ -41,31 +41,31 @@ typedef struct _GstDtsDec GstDtsDec;
typedef struct _GstDtsDecClass GstDtsDecClass;
struct _GstDtsDec {
GstElement element;
GstElement element;
/* pads */
GstPad *sinkpad,
*srcpad;
GstPad *sinkpad,
*srcpad;
/* stream properties */
gint bit_rate;
gint sample_rate;
gint stream_channels;
gint request_channels;
gint using_channels;
gint bit_rate;
gint sample_rate;
gint stream_channels;
gint request_channels;
gint using_channels;
/* decoding properties */
sample_t level;
sample_t bias;
gboolean dynamic_range_compression;
sample_t *samples;
dts_state_t *state;
sample_t level;
sample_t bias;
gboolean dynamic_range_compression;
sample_t *samples;
dts_state_t *state;
/* Data left over from the previous buffer */
GstBuffer *cache;
GstBuffer *cache;
/* keep track of time */
GstClockTime current_ts;
GstClockTime current_ts;
};
struct _GstDtsDecClass {

View file

@ -52,9 +52,9 @@ typedef struct _GstFaac {
shortctl,
outputformat;
gboolean tns,
midside;
midside;
gulong bytes,
samples;
samples;
/* FAAC object */
faacEncHandle handle;

View file

@ -45,18 +45,18 @@ typedef struct _VorbisEnc VorbisEnc;
typedef struct _VorbisEncClass VorbisEncClass;
struct _VorbisEnc {
GstElement element;
GstElement element;
GstPad *sinkpad,
*srcpad;
ogg_stream_state os; /* take physical pages, weld into a logical
stream of packets */
stream of packets */
ogg_page og; /* one Ogg bitstream page. Vorbis packets are inside */
ogg_packet op; /* one raw packet of data for decode */
vorbis_info vi; /* struct that stores all the static vorbis bitstream
settings */
settings */
vorbis_comment vc; /* struct that stores all the user comments */
vorbis_dsp_state vd; /* central working state for the packet->PCM decoder */
@ -69,20 +69,20 @@ struct _VorbisEnc {
gint min_bitrate;
gint max_bitrate;
gfloat quality;
gboolean quality_set;
gboolean quality_set;
gint serial;
gint channels;
gint frequency;
guint64 samples_in;
guint64 bytes_out;
guint64 samples_in;
guint64 bytes_out;
GstCaps *metadata;
gboolean setup;
gboolean flush_header;
gchar *last_message;
gchar *last_message;
};
struct _VorbisEncClass {

View file

@ -31,15 +31,15 @@
GST_DEBUG_CATEGORY_STATIC (ivorbisfile_debug);
#define GST_CAT_DEFAULT ivorbisfile_debug
#define GST_TYPE_IVORBISFILE \
#define GST_TYPE_IVORBISFILE \
(ivorbisfile_get_type())
#define GST_IVORBISFILE(obj) \
#define GST_IVORBISFILE(obj) \
(G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_IVORBISFILE,Ivorbisfile))
#define GST_IVORBISFILE_CLASS(klass) \
#define GST_IVORBISFILE_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_IVORBISFILE,IvorbisfileClass))
#define GST_IS_IVORBISFILE(obj) \
#define GST_IS_IVORBISFILE(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_IVORBISFILE))
#define GST_IS_IVORBISFILE_CLASS(obj) \
#define GST_IS_IVORBISFILE_CLASS(obj) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_IVORBISFILE))
typedef struct _Ivorbisfile Ivorbisfile;

View file

@ -71,8 +71,8 @@ typedef struct _GstMusepackDecClass {
GType gst_musepackdec_get_type (void);
extern gboolean gst_musepackdec_src_convert (GstPad * pad,
GstFormat src_format,
gint64 src_value, GstFormat * dest_format, gint64 * dest_value);
GstFormat src_format,
gint64 src_value, GstFormat * dest_format, gint64 * dest_value);
G_END_DECLS

View file

@ -30,7 +30,7 @@
#include <audio/soundlib.h>
#include "nassink.h"
#define NAS_SOUND_PORT_DURATION (2)
#define NAS_SOUND_PORT_DURATION (2)
GST_DEBUG_CATEGORY (NAS);
/* Signals and args */

View file

@ -26,7 +26,7 @@
#include "gstsnapshot.h"
#include <gst/video/video.h>
#define MAX_HEIGHT 2048
#define MAX_HEIGHT 2048
/* elementfactory information */
static GstElementDetails snapshot_details = {

View file

@ -66,8 +66,8 @@ typedef struct _GstSF GstSF;
typedef struct _GstSFClass GstSFClass;
typedef enum {
GST_SF_OPEN = (GST_ELEMENT_FLAG_LAST << 0),
GST_SF_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2),
GST_SF_OPEN = (GST_ELEMENT_FLAG_LAST << 0),
GST_SF_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2),
} GstSFlags;
typedef struct {
@ -106,9 +106,9 @@ struct _GstSFClass {
GstElementClass parent_class;
};
GType gst_sf_get_type (void);
GType gst_sfsrc_get_type (void);
GType gst_sfsink_get_type (void);
GType gst_sf_get_type (void);
GType gst_sfsrc_get_type (void);
GType gst_sfsink_get_type (void);
G_END_DECLS

View file

@ -49,18 +49,18 @@ struct _TarkinDec {
GstPad *sinkpad,*srcpad;
ogg_sync_state oy;
ogg_stream_state os;
ogg_page og;
ogg_packet op;
ogg_sync_state oy;
ogg_stream_state os;
ogg_page og;
ogg_packet op;
TarkinStream *tarkin_stream;
TarkinComment tc;
TarkinInfo ti;
TarkinVideoLayerDesc layer[1];
TarkinStream *tarkin_stream;
TarkinComment tc;
TarkinInfo ti;
TarkinVideoLayerDesc layer[1];
gint frame_num;
gint nheader;
gint frame_num;
gint nheader;
gboolean eos;
gint bitrate;

View file

@ -49,17 +49,17 @@ struct _TarkinEnc {
GstPad *sinkpad,*srcpad;
ogg_stream_state os; /* take physical pages, weld into a logical
stream of packets */
ogg_page og; /* one Ogg bitstream page. Tarkin packets are inside */
ogg_packet op[3]; /* one raw packet of data for decode */
ogg_stream_state os; /* take physical pages, weld into a logical
stream of packets */
ogg_page og; /* one Ogg bitstream page. Tarkin packets are inside */
ogg_packet op[3]; /* one raw packet of data for decode */
TarkinStream *tarkin_stream;
TarkinComment tc;
TarkinInfo ti;
TarkinVideoLayerDesc layer[1];
TarkinStream *tarkin_stream;
TarkinComment tc;
TarkinInfo ti;
TarkinVideoLayerDesc layer[1];
gint frame_num;
gint frame_num;
gboolean eos;
gint bitrate;

View file

@ -44,40 +44,40 @@ typedef struct _GstXineClass GstXineClass;
struct _GstXine
{
GstElement element;
GstElement element;
xine_stream_t * stream;
xine_ao_driver_t * audio_driver;
xine_vo_driver_t * video_driver;
xine_stream_t * stream;
xine_ao_driver_t * audio_driver;
xine_vo_driver_t * video_driver;
};
struct _GstXineClass
{
GstElementClass parent_class;
GstElementClass parent_class;
xine_t * xine;
xine_t * xine;
xine_ao_driver_t * (* create_audio_driver) (GstXine * xine);
xine_vo_driver_t * (* create_video_driver) (GstXine * xine);
xine_ao_driver_t * (* create_audio_driver) (GstXine * xine);
xine_vo_driver_t * (* create_video_driver) (GstXine * xine);
};
GType gst_xine_get_type (void);
GType gst_xine_get_type (void);
xine_stream_t * gst_xine_get_stream (GstXine *xine);
void gst_xine_free_stream (GstXine *xine);
xine_stream_t * gst_xine_get_stream (GstXine *xine);
void gst_xine_free_stream (GstXine *xine);
void gst_buffer_to_xine_buffer (buf_element_t *element, GstBuffer *buffer);
void gst_buffer_to_xine_buffer (buf_element_t *element, GstBuffer *buffer);
/* conversion functions from xinecaps.c */
const gchar * gst_xine_get_caps_for_format (guint32 format);
guint32 gst_xine_get_format_for_caps (const GstCaps *caps);
const gchar * gst_xine_get_caps_for_format (guint32 format);
guint32 gst_xine_get_format_for_caps (const GstCaps *caps);
/* init functions for the plugins */
gboolean gst_xine_audio_sink_init_plugin (GstPlugin *plugin);
gboolean gst_xine_audio_dec_init_plugin (GstPlugin *plugin);
gboolean gst_xine_input_init_plugin (GstPlugin *plugin);
gboolean gst_xine_audio_sink_init_plugin (GstPlugin *plugin);
gboolean gst_xine_audio_dec_init_plugin (GstPlugin *plugin);
gboolean gst_xine_input_init_plugin (GstPlugin *plugin);
G_END_DECLS

View file

@ -29,56 +29,56 @@ typedef struct
static GstXineCapsMap _gst_xine_caps_map[] = {
{BUF_AUDIO_QDESIGN2, "audio/x-qdm2"},
/* FIXME:
#define BUF_AUDIO_A52 0x03000000
#define BUF_AUDIO_MPEG 0x03010000
#define BUF_AUDIO_LPCM_BE 0x03020000
#define BUF_AUDIO_LPCM_LE 0x03030000
#define BUF_AUDIO_WMAV1 0x03040000
#define BUF_AUDIO_DTS 0x03050000
#define BUF_AUDIO_MSADPCM 0x03060000
#define BUF_AUDIO_MSIMAADPCM 0x03070000
#define BUF_AUDIO_MSGSM 0x03080000
#define BUF_AUDIO_A52 0x03000000
#define BUF_AUDIO_MPEG 0x03010000
#define BUF_AUDIO_LPCM_BE 0x03020000
#define BUF_AUDIO_LPCM_LE 0x03030000
#define BUF_AUDIO_WMAV1 0x03040000
#define BUF_AUDIO_DTS 0x03050000
#define BUF_AUDIO_MSADPCM 0x03060000
#define BUF_AUDIO_MSIMAADPCM 0x03070000
#define BUF_AUDIO_MSGSM 0x03080000
#define BUF_AUDIO_VORBIS 0x03090000
#define BUF_AUDIO_IMC 0x030a0000
#define BUF_AUDIO_LH 0x030b0000
#define BUF_AUDIO_VOXWARE 0x030c0000
#define BUF_AUDIO_ACELPNET 0x030d0000
#define BUF_AUDIO_AAC 0x030e0000
#define BUF_AUDIO_DNET 0x030f0000
#define BUF_AUDIO_DNET 0x030f0000
#define BUF_AUDIO_VIVOG723 0x03100000
#define BUF_AUDIO_DK3ADPCM 0x03110000
#define BUF_AUDIO_DK4ADPCM 0x03120000
#define BUF_AUDIO_ROQ 0x03130000
#define BUF_AUDIO_QTIMAADPCM 0x03140000
#define BUF_AUDIO_MAC3 0x03150000
#define BUF_AUDIO_MAC6 0x03160000
#define BUF_AUDIO_QDESIGN1 0x03170000
#define BUF_AUDIO_QDESIGN2 0x03180000
#define BUF_AUDIO_QCLP 0x03190000
#define BUF_AUDIO_SMJPEG_IMA 0x031A0000
#define BUF_AUDIO_VQA_IMA 0x031B0000
#define BUF_AUDIO_MULAW 0x031C0000
#define BUF_AUDIO_ALAW 0x031D0000
#define BUF_AUDIO_GSM610 0x031E0000
#define BUF_AUDIO_DK3ADPCM 0x03110000
#define BUF_AUDIO_DK4ADPCM 0x03120000
#define BUF_AUDIO_ROQ 0x03130000
#define BUF_AUDIO_QTIMAADPCM 0x03140000
#define BUF_AUDIO_MAC3 0x03150000
#define BUF_AUDIO_MAC6 0x03160000
#define BUF_AUDIO_QDESIGN1 0x03170000
#define BUF_AUDIO_QDESIGN2 0x03180000
#define BUF_AUDIO_QCLP 0x03190000
#define BUF_AUDIO_SMJPEG_IMA 0x031A0000
#define BUF_AUDIO_VQA_IMA 0x031B0000
#define BUF_AUDIO_MULAW 0x031C0000
#define BUF_AUDIO_ALAW 0x031D0000
#define BUF_AUDIO_GSM610 0x031E0000
#define BUF_AUDIO_EA_ADPCM 0x031F0000
#define BUF_AUDIO_WMAV2 0x03200000
#define BUF_AUDIO_COOK 0x03210000
#define BUF_AUDIO_ATRK 0x03220000
#define BUF_AUDIO_14_4 0x03230000
#define BUF_AUDIO_28_8 0x03240000
#define BUF_AUDIO_SIPRO 0x03250000
#define BUF_AUDIO_WMAV3 0x03260000
#define BUF_AUDIO_INTERPLAY 0x03270000
#define BUF_AUDIO_XA_ADPCM 0x03280000
#define BUF_AUDIO_WESTWOOD 0x03290000
#define BUF_AUDIO_DIALOGIC_IMA 0x032A0000
#define BUF_AUDIO_NSF 0x032B0000
#define BUF_AUDIO_FLAC 0x032C0000
#define BUF_AUDIO_DV 0x032D0000
#define BUF_AUDIO_WMAV 0x032E0000
#define BUF_AUDIO_SPEEX 0x032F0000
#define BUF_AUDIO_RAWPCM 0x03300000
#define BUF_AUDIO_4X_ADPCM 0x03310000
#define BUF_AUDIO_WMAV2 0x03200000
#define BUF_AUDIO_COOK 0x03210000
#define BUF_AUDIO_ATRK 0x03220000
#define BUF_AUDIO_14_4 0x03230000
#define BUF_AUDIO_28_8 0x03240000
#define BUF_AUDIO_SIPRO 0x03250000
#define BUF_AUDIO_WMAV3 0x03260000
#define BUF_AUDIO_INTERPLAY 0x03270000
#define BUF_AUDIO_XA_ADPCM 0x03280000
#define BUF_AUDIO_WESTWOOD 0x03290000
#define BUF_AUDIO_DIALOGIC_IMA 0x032A0000
#define BUF_AUDIO_NSF 0x032B0000
#define BUF_AUDIO_FLAC 0x032C0000
#define BUF_AUDIO_DV 0x032D0000
#define BUF_AUDIO_WMAV 0x032E0000
#define BUF_AUDIO_SPEEX 0x032F0000
#define BUF_AUDIO_RAWPCM 0x03300000
#define BUF_AUDIO_4X_ADPCM 0x03310000
*/
{0, NULL}
};

View file

@ -42,11 +42,11 @@ G_BEGIN_DECLS
"green_mask = (int) " G_STRINGIFY (g_mask) ", " \
"blue_mask = (int) " G_STRINGIFY (b_mask)
extern gchar * gst_xvid_error (int errorcode);
extern gboolean gst_xvid_init (void);
extern gchar * gst_xvid_error (int errorcode);
extern gboolean gst_xvid_init (void);
extern gint gst_xvid_structure_to_csp (GstStructure *structure,
gint w, gint *stride, gint *bpp);
gint w, gint *stride, gint *bpp);
extern GstCaps *gst_xvid_csp_to_caps (gint csp, gint w, gint h, gdouble fps);
G_END_DECLS

View file

@ -28,7 +28,7 @@ G_BEGIN_DECLS
/* GError stuff */
#define GST_PLAY_ERROR gst_play_error_quark ()
#define GST_PLAY_ERROR gst_play_error_quark ()
/* GObject stuff */
#define GST_TYPE_PLAY (gst_play_get_type())

View file

@ -57,7 +57,7 @@ typedef struct _GstApeDemuxClass {
GstElementClass parent_class;
} GstApeDemuxClass;
GType gst_ape_demux_get_type (void);
GType gst_ape_demux_get_type (void);
G_END_DECLS

View file

@ -67,7 +67,7 @@ struct _GstCDXAParseClass {
GstElementClass parent_class;
};
GType gst_cdxaparse_get_type (void);
GType gst_cdxaparse_get_type (void);
G_END_DECLS

View file

@ -35,9 +35,9 @@ G_BEGIN_DECLS
#define GST_IS_CDXASTRIP_CLASS(obj) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CDXASTRIP))
#define GST_CDXA_SECTOR_SIZE 2352
#define GST_CDXA_DATA_SIZE 2324
#define GST_CDXA_HEADER_SIZE 24
#define GST_CDXA_SECTOR_SIZE 2352
#define GST_CDXA_DATA_SIZE 2324
#define GST_CDXA_HEADER_SIZE 24
typedef struct _GstCDXAStrip GstCDXAStrip;
typedef struct _GstCDXAStripClass GstCDXAStripClass;
@ -54,13 +54,13 @@ struct _GstCDXAStripClass {
GstElementClass parent_class;
};
GType gst_cdxastrip_get_type (void);
GType gst_cdxastrip_get_type (void);
/*
* Also useful for CDXAparse.
*/
GstBuffer * gst_cdxastrip_strip (GstBuffer * buf);
gint gst_cdxastrip_sync (GstBuffer * buf);
GstBuffer * gst_cdxastrip_strip (GstBuffer * buf);
gint gst_cdxastrip_sync (GstBuffer * buf);
G_END_DECLS

View file

@ -35,9 +35,9 @@ G_BEGIN_DECLS
#define GST_IS_CDXASTRIP_CLASS(obj) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CDXASTRIP))
#define GST_CDXA_SECTOR_SIZE 2352
#define GST_CDXA_DATA_SIZE 2324
#define GST_CDXA_HEADER_SIZE 24
#define GST_CDXA_SECTOR_SIZE 2352
#define GST_CDXA_DATA_SIZE 2324
#define GST_CDXA_HEADER_SIZE 24
typedef struct _GstCDXAStrip GstCDXAStrip;
typedef struct _GstCDXAStripClass GstCDXAStripClass;
@ -54,13 +54,13 @@ struct _GstCDXAStripClass {
GstElementClass parent_class;
};
GType gst_cdxastrip_get_type (void);
GType gst_cdxastrip_get_type (void);
/*
* Also useful for CDXAparse.
*/
GstBuffer * gst_cdxastrip_strip (GstBuffer * buf);
gint gst_cdxastrip_sync (GstBuffer * buf);
GstBuffer * gst_cdxastrip_strip (GstBuffer * buf);
gint gst_cdxastrip_sync (GstBuffer * buf);
G_END_DECLS

View file

@ -46,17 +46,17 @@ static int U_b_tab[256];
#define GAMMA_CORRECTION(x) ((int)(pow((x) / 255.0, 1.0 / gammaCorrect) * 255.0))
#define CHROMA_CORRECTION256(x) ((x) >= 128 \
? 128 + Min(127, (int)(((x) - 128.0) * chromaCorrect)) \
: 128 - Min(128, (int)((128.0 - (x)) * chromaCorrect)))
? 128 + Min(127, (int)(((x) - 128.0) * chromaCorrect)) \
: 128 - Min(128, (int)((128.0 - (x)) * chromaCorrect)))
#define CHROMA_CORRECTION128(x) ((x) >= 0 \
? Min(127, (int)(((x) * chromaCorrect))) \
: Max(-128, (int)(((x) * chromaCorrect))))
? Min(127, (int)(((x) * chromaCorrect))) \
: Max(-128, (int)(((x) * chromaCorrect))))
#define CHROMA_CORRECTION256D(x) ((x) >= 128 \
? 128.0 + Min(127.0, (((x) - 128.0) * chromaCorrect)) \
: 128.0 - Min(128.0, (((128.0 - (x)) * chromaCorrect))))
? 128.0 + Min(127.0, (((x) - 128.0) * chromaCorrect)) \
: 128.0 - Min(128.0, (((128.0 - (x)) * chromaCorrect))))
#define CHROMA_CORRECTION128D(x) ((x) >= 0 \
? Min(127.0, ((x) * chromaCorrect)) \
: Max(-128.0, ((x) * chromaCorrect)))
? Min(127.0, ((x) * chromaCorrect)) \
: Max(-128.0, ((x) * chromaCorrect)))
void gst_colorspace_I420_to_rgb16 (GstColorspace * space, unsigned char *src,
@ -345,14 +345,14 @@ free_bits_at_bottom (a)
*
* InitColor16Dither --
*
* To get rid of the multiply and other conversions in color
* dither, we use a lookup table.
* To get rid of the multiply and other conversions in color
* dither, we use a lookup table.
*
* Results:
* None.
* None.
*
* Side effects:
* The lookup tables are initialized.
* The lookup tables are initialized.
*
*--------------------------------------------------------------
*/

View file

@ -85,10 +85,10 @@ GstColorspaceYUVTables * gst_colorspace_init_yuv(long depth,
#if 0
GstColorspaceConverter* gst_colorspace_yuv2rgb_get_converter (const GstCaps *from, const GstCaps *to);
#define gst_colorspace_convert(converter, src, dest) \
(converter)->convert((converter), (src), (dest))
void gst_colorspace_converter_destroy (GstColorspaceConverter *space);
GstColorspaceConverter* gst_colorspace_yuv2rgb_get_converter (const GstCaps *from, const GstCaps *to);
#define gst_colorspace_convert(converter, src, dest) \
(converter)->convert((converter), (src), (dest))
void gst_colorspace_converter_destroy (GstColorspaceConverter *space);
#endif
G_END_DECLS

View file

@ -340,57 +340,57 @@ gst_iir_equalizer_get_property (GObject * object, guint prop_id,
/* start of code that is type specific */
#define CREATE_OPTIMIZED_FUNCTIONS(TYPE,BIG_TYPE,MIN_VAL,MAX_VAL) \
typedef struct { \
TYPE x1, x2; /* history of input values for a filter */ \
TYPE y1, y2; /* history of output values for a filter */ \
} SecondOrderHistory ## TYPE; \
\
static inline TYPE \
one_step_ ## TYPE (SecondOrderFilter *filter, \
SecondOrderHistory ## TYPE *history, TYPE input) \
{ \
/* calculate output */ \
TYPE output = filter->alpha * (input - history->x2) + \
filter->gamma * history->y1 - filter->beta * history->y2; \
/* update history */ \
history->y2 = history->y1; \
history->y1 = output; \
history->x2 = history->x1; \
history->x1 = input; \
\
return output; \
} \
\
static const guint \
history_size_ ## TYPE = sizeof (SecondOrderHistory ## TYPE); \
\
static void \
gst_iir_equ_process_ ## TYPE (GstIirEqualizer *equ, guint8 *data, \
guint size, guint channels) \
{ \
guint frames = size / channels / sizeof (TYPE); \
guint i, c, f; \
BIG_TYPE cur; \
TYPE val; \
\
for (i = 0; i < frames; i++) { \
for (c = 0; c < channels; c++) { \
SecondOrderHistory ## TYPE *history = equ->history; \
val = *((TYPE *) data); \
cur = 0; \
for (f = 0; f < equ->freq_count; f++) { \
SecondOrderFilter *filter = &equ->filter[f]; \
\
cur += one_step_ ## TYPE (filter, history, val); \
history++; \
} \
cur += val * 0.25; \
cur = CLAMP (cur, MIN_VAL, MAX_VAL); \
*((TYPE *) data) = (TYPE) cur; \
data += sizeof (TYPE); \
} \
} \
#define CREATE_OPTIMIZED_FUNCTIONS(TYPE,BIG_TYPE,MIN_VAL,MAX_VAL) \
typedef struct { \
TYPE x1, x2; /* history of input values for a filter */ \
TYPE y1, y2; /* history of output values for a filter */ \
} SecondOrderHistory ## TYPE; \
\
static inline TYPE \
one_step_ ## TYPE (SecondOrderFilter *filter, \
SecondOrderHistory ## TYPE *history, TYPE input) \
{ \
/* calculate output */ \
TYPE output = filter->alpha * (input - history->x2) + \
filter->gamma * history->y1 - filter->beta * history->y2; \
/* update history */ \
history->y2 = history->y1; \
history->y1 = output; \
history->x2 = history->x1; \
history->x1 = input; \
\
return output; \
} \
\
static const guint \
history_size_ ## TYPE = sizeof (SecondOrderHistory ## TYPE); \
\
static void \
gst_iir_equ_process_ ## TYPE (GstIirEqualizer *equ, guint8 *data, \
guint size, guint channels) \
{ \
guint frames = size / channels / sizeof (TYPE); \
guint i, c, f; \
BIG_TYPE cur; \
TYPE val; \
\
for (i = 0; i < frames; i++) { \
for (c = 0; c < channels; c++) { \
SecondOrderHistory ## TYPE *history = equ->history; \
val = *((TYPE *) data); \
cur = 0; \
for (f = 0; f < equ->freq_count; f++) { \
SecondOrderFilter *filter = &equ->filter[f]; \
\
cur += one_step_ ## TYPE (filter, history, val); \
history++; \
} \
cur += val * 0.25; \
cur = CLAMP (cur, MIN_VAL, MAX_VAL); \
*((TYPE *) data) = (TYPE) cur; \
data += sizeof (TYPE); \
} \
} \
}
CREATE_OPTIMIZED_FUNCTIONS (gint16, gint, -32768, 32767);

View file

@ -94,9 +94,9 @@ typedef struct FT_Info
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FESTIVAL))
typedef enum {
GST_FESTIVAL_OPEN = (GST_ELEMENT_FLAG_LAST << 0),
GST_FESTIVAL_OPEN = (GST_ELEMENT_FLAG_LAST << 0),
GST_FESTIVAL_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2),
GST_FESTIVAL_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2),
} GstFestivalFlags;
typedef struct _GstFestival GstFestival;

View file

@ -1,7 +1,7 @@
/* GStreamer
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
* <2003> David Schleef <ds@schleef.org>
* <2004> Benjamin Otte <otte@gnome.org>
* <2003> David Schleef <ds@schleef.org>
* <2004> Benjamin Otte <otte@gnome.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public

View file

@ -1,6 +1,6 @@
/* GStreamer
* Copyright (C) <1999> Erik Walthinsen <omega@cse.ogi.edu>
* <2004> Benjamin Otte <otte@gnome.org>
* <2004> Benjamin Otte <otte@gnome.org>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public

View file

@ -1,6 +1,6 @@
/* GStreamer
* Copyright (C) <2003> David A. Schleef <ds@schleef.org>
* <2004> Benjamin Otte <otte@gnome.org
* <2004> Benjamin Otte <otte@gnome.org
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@ -31,8 +31,8 @@ typedef struct _GstVideoImage GstVideoImage;
typedef struct _GstVideoFormat GstVideoFormat;
struct _GstVideoColor {
int Y, U, V;
int R, G, B;
int Y, U, V;
int R, G, B;
};
extern const GstVideoColor GST_VIDEO_COLOR_WHITE;
extern const GstVideoColor GST_VIDEO_COLOR_YELLOW;
@ -50,64 +50,64 @@ extern const GstVideoColor GST_VIDEO_COLOR_DARK_GREY;
struct _GstVideoImage
{
guint8 * dest; /* pointer to first byte of video data */
guint8 * yp, *up, *vp; /* pointers to first byte of each component
* for both packed/planar YUV and RGB */
guint8 * endptr; /* pointer to byte beyond last video data */
guint ystride;
guint ustride;
guint vstride;
guint width;
guint height;
guint8 * dest; /* pointer to first byte of video data */
guint8 * yp, *up, *vp; /* pointers to first byte of each component
* for both packed/planar YUV and RGB */
guint8 * endptr; /* pointer to byte beyond last video data */
guint ystride;
guint ustride;
guint vstride;
guint width;
guint height;
const GstVideoFormat * format;
};
struct _GstVideoFormat
{
char * fourcc;
char * name;
int bitspp;
void (* paint_setup) (GstVideoImage * p, char *dest);
void (* paint_hline) (GstVideoImage * p, int x, int y, int w, const GstVideoColor *c);
void (* copy_hline) (GstVideoImage * dest, int destx, int desty,
char * fourcc;
char * name;
int bitspp;
void (* paint_setup) (GstVideoImage * p, char *dest);
void (* paint_hline) (GstVideoImage * p, int x, int y, int w, const GstVideoColor *c);
void (* copy_hline) (GstVideoImage * dest, int destx, int desty,
GstVideoImage * src, int srcx, int srcy, int w);
int ext_caps;
int depth;
guint red_mask;
guint green_mask;
guint blue_mask;
int ext_caps;
int depth;
guint red_mask;
guint green_mask;
guint blue_mask;
};
const GstVideoFormat * gst_video_format_find_by_fourcc (int find_fourcc);
const GstVideoFormat * gst_video_format_find_by_name (const char *name);
const GstVideoFormat * gst_video_format_find_by_structure (const GstStructure *structure);
GstStructure * gst_video_format_get_structure (const GstVideoFormat *format);
guint gst_video_format_get_size (const GstVideoFormat *format,
guint w, guint h);
const GstVideoFormat * gst_video_format_find_by_fourcc (int find_fourcc);
const GstVideoFormat * gst_video_format_find_by_name (const char *name);
const GstVideoFormat * gst_video_format_find_by_structure (const GstStructure *structure);
GstStructure * gst_video_format_get_structure (const GstVideoFormat *format);
guint gst_video_format_get_size (const GstVideoFormat *format,
guint w, guint h);
extern const GstVideoFormat gst_video_format_list[];
extern const guint gst_video_format_count;
void gst_video_image_setup (GstVideoImage *image,
const GstVideoFormat *format,
guint8 *data, guint w, guint h);
void gst_video_image_setup (GstVideoImage *image,
const GstVideoFormat *format,
guint8 *data, guint w, guint h);
/* drawing operations */
void gst_video_image_draw_hline (GstVideoImage *image,
gint x, gint y, gint w,
const GstVideoColor *c);
void gst_video_image_draw_rectangle (GstVideoImage *image,
gint x, gint y, gint w, gint h,
const GstVideoColor *c, gboolean filled);
void gst_video_image_copy_hline (GstVideoImage *dest,
gint xdest, gint ydest,
GstVideoImage *src,
gint xsrc, gint ysrc, gint w);
void gst_video_image_copy_area (GstVideoImage *dest,
gint xdest, gint ydest,
GstVideoImage *src,
gint xsrc, gint ysrc,
gint w, gint h);
void gst_video_image_draw_hline (GstVideoImage *image,
gint x, gint y, gint w,
const GstVideoColor *c);
void gst_video_image_draw_rectangle (GstVideoImage *image,
gint x, gint y, gint w, gint h,
const GstVideoColor *c, gboolean filled);
void gst_video_image_copy_hline (GstVideoImage *dest,
gint xdest, gint ydest,
GstVideoImage *src,
gint xsrc, gint ysrc, gint w);
void gst_video_image_copy_area (GstVideoImage *dest,
gint xdest, gint ydest,
GstVideoImage *src,
gint xsrc, gint ysrc,
gint w, gint h);
G_END_DECLS

View file

@ -27,7 +27,7 @@ extern "C" {
#include <gst/gst.h>
#include <gst/bytestream/bytestream.h>
#define GST_TYPE_MODPLUG \
(gst_modplug_get_type())

View file

@ -5,125 +5,125 @@
typedef struct tagITFILEHEADER
{
DWORD id; /* 0x4D504D49 */
CHAR songname[26];
WORD reserved1; /* 0x1004 */
WORD ordnum;
WORD insnum;
WORD smpnum;
WORD patnum;
WORD cwtv;
WORD cmwt;
WORD flags;
WORD special;
BYTE globalvol;
BYTE mv;
BYTE speed;
BYTE tempo;
BYTE sep;
BYTE zero;
WORD msglength;
DWORD msgoffset;
DWORD reserved2;
BYTE chnpan[64];
BYTE chnvol[64];
DWORD id; /* 0x4D504D49 */
CHAR songname[26];
WORD reserved1; /* 0x1004 */
WORD ordnum;
WORD insnum;
WORD smpnum;
WORD patnum;
WORD cwtv;
WORD cmwt;
WORD flags;
WORD special;
BYTE globalvol;
BYTE mv;
BYTE speed;
BYTE tempo;
BYTE sep;
BYTE zero;
WORD msglength;
DWORD msgoffset;
DWORD reserved2;
BYTE chnpan[64];
BYTE chnvol[64];
} ITFILEHEADER;
typedef struct tagITENVELOPE
{
BYTE flags;
BYTE num;
BYTE lpb;
BYTE lpe;
BYTE slb;
BYTE sle;
BYTE data[25*3];
BYTE reserved;
BYTE flags;
BYTE num;
BYTE lpb;
BYTE lpe;
BYTE slb;
BYTE sle;
BYTE data[25*3];
BYTE reserved;
} ITENVELOPE;
/* Old Impulse Instrument Format (cmwt < 0x200) */
typedef struct tagITOLDINSTRUMENT
{
DWORD id; /* IMPI = 0x49504D49 */
CHAR filename[12]; /* DOS file name */
BYTE zero;
BYTE flags;
BYTE vls;
BYTE vle;
BYTE sls;
BYTE sle;
WORD reserved1;
WORD fadeout;
BYTE nna;
BYTE dnc;
WORD trkvers;
BYTE nos;
BYTE reserved2;
CHAR name[26];
WORD reserved3[3];
BYTE keyboard[240];
BYTE volenv[200];
BYTE nodes[50];
DWORD id; /* IMPI = 0x49504D49 */
CHAR filename[12]; /* DOS file name */
BYTE zero;
BYTE flags;
BYTE vls;
BYTE vle;
BYTE sls;
BYTE sle;
WORD reserved1;
WORD fadeout;
BYTE nna;
BYTE dnc;
WORD trkvers;
BYTE nos;
BYTE reserved2;
CHAR name[26];
WORD reserved3[3];
BYTE keyboard[240];
BYTE volenv[200];
BYTE nodes[50];
} ITOLDINSTRUMENT;
/* Impulse Instrument Format */
typedef struct tagITINSTRUMENT
{
DWORD id;
CHAR filename[12];
BYTE zero;
BYTE nna;
BYTE dct;
BYTE dca;
WORD fadeout;
signed char pps;
BYTE ppc;
BYTE gbv;
BYTE dfp;
BYTE rv;
BYTE rp;
WORD trkvers;
BYTE nos;
BYTE reserved1;
CHAR name[26];
BYTE ifc;
BYTE ifr;
BYTE mch;
BYTE mpr;
WORD mbank;
BYTE keyboard[240];
ITENVELOPE volenv;
ITENVELOPE panenv;
ITENVELOPE pitchenv;
BYTE dummy[4]; /* was 7, but IT v2.17 saves 554 bytes */
DWORD id;
CHAR filename[12];
BYTE zero;
BYTE nna;
BYTE dct;
BYTE dca;
WORD fadeout;
signed char pps;
BYTE ppc;
BYTE gbv;
BYTE dfp;
BYTE rv;
BYTE rp;
WORD trkvers;
BYTE nos;
BYTE reserved1;
CHAR name[26];
BYTE ifc;
BYTE ifr;
BYTE mch;
BYTE mpr;
WORD mbank;
BYTE keyboard[240];
ITENVELOPE volenv;
ITENVELOPE panenv;
ITENVELOPE pitchenv;
BYTE dummy[4]; /* was 7, but IT v2.17 saves 554 bytes */
} ITINSTRUMENT;
/* IT Sample Format */
typedef struct ITSAMPLESTRUCT
{
DWORD id; /* 0x53504D49 */
CHAR filename[12];
BYTE zero;
BYTE gvl;
BYTE flags;
BYTE vol;
CHAR name[26];
BYTE cvt;
BYTE dfp;
DWORD length;
DWORD loopbegin;
DWORD loopend;
DWORD C5Speed;
DWORD susloopbegin;
DWORD susloopend;
DWORD samplepointer;
BYTE vis;
BYTE vid;
BYTE vir;
BYTE vit;
DWORD id; /* 0x53504D49 */
CHAR filename[12];
BYTE zero;
BYTE gvl;
BYTE flags;
BYTE vol;
CHAR name[26];
BYTE cvt;
BYTE dfp;
DWORD length;
DWORD loopbegin;
DWORD loopend;
DWORD C5Speed;
DWORD susloopbegin;
DWORD susloopend;
DWORD samplepointer;
BYTE vis;
BYTE vid;
BYTE vir;
BYTE vit;
} ITSAMPLESTRUCT;
#pragma pack()

View file

@ -43,40 +43,40 @@ void ModPlug_Seek(ModPlugFile* file, int millisecond);
enum _ModPlug_Flags
{
MODPLUG_ENABLE_OVERSAMPLING = 1 << 0, /* Enable oversampling (*highly* recommended) */
MODPLUG_ENABLE_NOISE_REDUCTION = 1 << 1, /* Enable noise reduction */
MODPLUG_ENABLE_REVERB = 1 << 2, /* Enable reverb */
MODPLUG_ENABLE_MEGABASS = 1 << 3, /* Enable megabass */
MODPLUG_ENABLE_SURROUND = 1 << 4 /* Enable surround sound. */
MODPLUG_ENABLE_OVERSAMPLING = 1 << 0, /* Enable oversampling (*highly* recommended) */
MODPLUG_ENABLE_NOISE_REDUCTION = 1 << 1, /* Enable noise reduction */
MODPLUG_ENABLE_REVERB = 1 << 2, /* Enable reverb */
MODPLUG_ENABLE_MEGABASS = 1 << 3, /* Enable megabass */
MODPLUG_ENABLE_SURROUND = 1 << 4 /* Enable surround sound. */
};
enum _ModPlug_ResamplingMode
{
MODPLUG_RESAMPLE_NEAREST = 0, /* No interpolation (very fast, extremely bad sound quality) */
MODPLUG_RESAMPLE_LINEAR = 1, /* Linear interpolation (fast, good quality) */
MODPLUG_RESAMPLE_SPLINE = 2, /* Cubic spline interpolation (high quality) */
MODPLUG_RESAMPLE_FIR = 3 /* 8-tap fir filter (extremely high quality) */
MODPLUG_RESAMPLE_NEAREST = 0, /* No interpolation (very fast, extremely bad sound quality) */
MODPLUG_RESAMPLE_LINEAR = 1, /* Linear interpolation (fast, good quality) */
MODPLUG_RESAMPLE_SPLINE = 2, /* Cubic spline interpolation (high quality) */
MODPLUG_RESAMPLE_FIR = 3 /* 8-tap fir filter (extremely high quality) */
};
typedef struct _ModPlug_Settings
{
int mFlags; /* One or more of the MODPLUG_ENABLE_* flags above, bitwise-OR'ed */
/* Note that ModPlug always decodes sound at 44100kHz, 32 bit, stereo and then
* down-mixes to the settings you choose. */
int mChannels; /* Number of channels - 1 for mono or 2 for stereo */
int mBits; /* Bits per sample - 8, 16, or 32 */
int mFrequency; /* Sampling rate - 11025, 22050, or 44100 */
int mResamplingMode; /* One of MODPLUG_RESAMPLE_*, above */
int mReverbDepth; /* Reverb level 0(quiet)-100(loud) */
int mReverbDelay; /* Reverb delay in ms, usually 40-200ms */
int mBassAmount; /* XBass level 0(quiet)-100(loud) */
int mBassRange; /* XBass cutoff in Hz 10-100 */
int mSurroundDepth; /* Surround level 0(quiet)-100(heavy) */
int mSurroundDelay; /* Surround delay in ms, usually 5-40ms */
int mLoopCount; /* Number of times to loop. Zero prevents looping.
-1 loops forever. */
int mFlags; /* One or more of the MODPLUG_ENABLE_* flags above, bitwise-OR'ed */
/* Note that ModPlug always decodes sound at 44100kHz, 32 bit, stereo and then
* down-mixes to the settings you choose. */
int mChannels; /* Number of channels - 1 for mono or 2 for stereo */
int mBits; /* Bits per sample - 8, 16, or 32 */
int mFrequency; /* Sampling rate - 11025, 22050, or 44100 */
int mResamplingMode; /* One of MODPLUG_RESAMPLE_*, above */
int mReverbDepth; /* Reverb level 0(quiet)-100(loud) */
int mReverbDelay; /* Reverb delay in ms, usually 40-200ms */
int mBassAmount; /* XBass level 0(quiet)-100(loud) */
int mBassRange; /* XBass cutoff in Hz 10-100 */
int mSurroundDepth; /* Surround level 0(quiet)-100(heavy) */
int mSurroundDelay; /* Surround delay in ms, usually 5-40ms */
int mLoopCount; /* Number of times to loop. Zero prevents looping.
-1 loops forever. */
} ModPlug_Settings;
/* Get and set the mod decoder settings. All options, except for channels, bits-per-sample,

File diff suppressed because it is too large Load diff

View file

@ -79,15 +79,15 @@ inline void ProcessPlugins(int n) {}
#define GlobalFreePtr(p) free((void *)(p))
#define strnicmp(a,b,c) strncasecmp(a,b,c)
#define wsprintf sprintf
#define strnicmp(a,b,c) strncasecmp(a,b,c)
#define wsprintf sprintf
#ifndef FALSE
#define FALSE false
#define FALSE false
#endif
#ifndef TRUE
#define TRUE true
#define TRUE true
#endif
#endif /* MSC_VER */

View file

@ -71,8 +71,8 @@ static double picture_rates[16] = {
/* defined but not used
static double ratio [16] = { 0., 1., 0.6735, 0.7031, 0.7615, 0.8055,
0.8437, 0.8935, 0.9157, 0.9815, 1.0255, 1.0695, 1.0950, 1.1575,
1.2015, 0.};
0.8437, 0.8935, 0.9157, 0.9815, 1.0255, 1.0695, 1.0950, 1.1575,
1.2015, 0.};
*/
#ifndef GST_DISABLE_GST_DEBUG

View file

@ -87,7 +87,7 @@ struct _GstMPEG1SystemEncode {
GList *mta;
/* stream input pads */
GstPad *private_1_pad[8]; /* up to 8 ac3 audio tracks <grumble> */
GstPad *private_1_pad[8]; /* up to 8 ac3 audio tracks <grumble> */
GstPad *private_2_pad;
GstPad *video_pad[16];
GstPad *audio_pad[32];

View file

@ -1,37 +1,37 @@
/*************************************************************************
* Generating a MPEG/SYSTEMS *
* MULTIPLEXED VIDEO/AUDIO STREAM *
* from two MPEG source streams *
* Christoph Moar *
* SIEMENS CORPORATE RESEARCH AND DEVELOPMENT ST SN 11 / T SN 6 *
* (C) 1994 1995 *
* Generating a MPEG/SYSTEMS *
* MULTIPLEXED VIDEO/AUDIO STREAM *
* from two MPEG source streams *
* Christoph Moar *
* SIEMENS CORPORATE RESEARCH AND DEVELOPMENT ST SN 11 / T SN 6 *
* (C) 1994 1995 *
**************************************************************************
* Restrictions apply. Will not support the whole MPEG/SYSTEM Standard. *
* Basically, will generate Constrained System Parameter Files. *
* Mixes only one audio and/or one video stream. Might be expanded. *
* Basically, will generate Constrained System Parameter Files. *
* Mixes only one audio and/or one video stream. Might be expanded. *
*************************************************************************/
/*************************************************************************
* mplex - MPEG/SYSTEMS multiplexer *
* Copyright (C) 1994 1995 Christoph Moar *
* Siemens ZFE ST SN 11 / T SN 6 *
* *
* moar@informatik.tu-muenchen.de *
* (Christoph Moar) *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
* mplex - MPEG/SYSTEMS multiplexer *
* Copyright (C) 1994 1995 Christoph Moar *
* Siemens ZFE ST SN 11 / T SN 6 *
* *
* moar@informatik.tu-muenchen.de *
* (Christoph Moar) *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. *
*************************************************************************/
@ -40,83 +40,83 @@
#include <glib.h>
#define PACK_START 0x000001ba
#define SYS_HEADER_START 0x000001bb
#define ISO11172_END 0x000001b9
#define PACKET_START 0x000001
#define PACK_START 0x000001ba
#define SYS_HEADER_START 0x000001bb
#define ISO11172_END 0x000001b9
#define PACKET_START 0x000001
#define CLOCKS 90000.0 /* System Clock Hertz */
#define CLOCKS 90000.0 /* System Clock Hertz */
#define AFTER_PACKET_LENGTH 15 /* No of non-data-bytes */
/* following the packet */
/* length field */
#define LAST_SCR_BYTE_IN_PACK 9 /* No of bytes in pack */
/* preceding, and */
/* including, the SCR */
#define AFTER_PACKET_LENGTH 15 /* No of non-data-bytes */
/* following the packet */
/* length field */
#define LAST_SCR_BYTE_IN_PACK 9 /* No of bytes in pack */
/* preceding, and */
/* including, the SCR */
/* The following values for sys_header_length & size are only valid for */
/* System streams consisting of two basic streams. When wrapping around */
/* the system layer on a single video or a single audio stream, those */
/* values get decreased by 3. */
#define SYS_HEADER_LENGTH 12 /* length of Sys Header */
/* after start code and */
/* length field */
#define SYS_HEADER_LENGTH 12 /* length of Sys Header */
/* after start code and */
/* length field */
#define SYS_HEADER_SIZE 18 /* incl. start code and */
/* length field */
#define PACK_HEADER_SIZE 12
#define SYS_HEADER_SIZE 18 /* incl. start code and */
/* length field */
#define PACK_HEADER_SIZE 12
#define PACKET_HEADER_SIZE 6
#define PACKET_HEADER_SIZE 6
#define MAX_SECTOR_SIZE 0x20000 /* Max Sektor Groesse */
#define MAX_SECTOR_SIZE 0x20000 /* Max Sektor Groesse */
#define STREAMS_VIDEO 1
#define STREAMS_AUDIO 2
#define STREAMS_BOTH 3
#define AUDIO_STREAMS 0xb8 /* Marker Audio Streams */
#define VIDEO_STREAMS 0xb9 /* Marker Video Streams */
#define AUDIO_STR_0 0xc0 /* Marker Audio Stream0 */
#define VIDEO_STR_0 0xe0 /* Marker Video Stream0 */
#define PADDING_STR 0xbe /* Marker Padding Stream*/
#define AUDIO_STREAMS 0xb8 /* Marker Audio Streams */
#define VIDEO_STREAMS 0xb9 /* Marker Video Streams */
#define AUDIO_STR_0 0xc0 /* Marker Audio Stream0 */
#define VIDEO_STR_0 0xe0 /* Marker Video Stream0 */
#define PADDING_STR 0xbe /* Marker Padding Stream*/
#define ZERO_STUFFING_BYTE 0
#define STUFFING_BYTE 0xff
#define RESERVED_BYTE 0xff
#define TIMESTAMPS_NO 0 /* Flag NO timestamps */
#define TIMESTAMPS_PTS 1 /* Flag PTS timestamp */
#define TIMESTAMPS_PTS_DTS 2 /* Flag BOTH timestamps */
#define ZERO_STUFFING_BYTE 0
#define STUFFING_BYTE 0xff
#define RESERVED_BYTE 0xff
#define TIMESTAMPS_NO 0 /* Flag NO timestamps */
#define TIMESTAMPS_PTS 1 /* Flag PTS timestamp */
#define TIMESTAMPS_PTS_DTS 2 /* Flag BOTH timestamps */
#define MARKER_SCR 2 /* Marker SCR */
#define MARKER_JUST_PTS 2 /* Marker only PTS */
#define MARKER_PTS 3 /* Marker PTS */
#define MARKER_DTS 1 /* Marker DTS */
#define MARKER_NO_TIMESTAMPS 0x0f /* Marker NO timestamps */
#define MARKER_SCR 2 /* Marker SCR */
#define MARKER_JUST_PTS 2 /* Marker only PTS */
#define MARKER_PTS 3 /* Marker PTS */
#define MARKER_DTS 1 /* Marker DTS */
#define MARKER_NO_TIMESTAMPS 0x0f /* Marker NO timestamps */
#define STATUS_AUDIO_END 0 /* Statusmessage A end */
#define STATUS_VIDEO_END 1 /* Statusmessage V end */
#define STATUS_AUDIO_TIME_OUT 2 /* Statusmessage A out */
#define STATUS_VIDEO_TIME_OUT 3 /* Statusmessage V out */
#define STATUS_AUDIO_END 0 /* Statusmessage A end */
#define STATUS_VIDEO_END 1 /* Statusmessage V end */
#define STATUS_AUDIO_TIME_OUT 2 /* Statusmessage A out */
#define STATUS_VIDEO_TIME_OUT 3 /* Statusmessage V out */
/*************************************************************************
Typ- und Strukturdefinitionen
*************************************************************************/
typedef struct sector_struc /* A sector, can contain pack, sys header */
/* and packet. */
typedef struct sector_struc /* A sector, can contain pack, sys header */
/* and packet. */
{ unsigned char buf [MAX_SECTOR_SIZE] ;
unsigned int length_of_sector ;
unsigned int length_of_packet_data ;
guint64 TS ;
} Sector_struc;
typedef struct pack_struc /* Pack Info */
typedef struct pack_struc /* Pack Info */
{ unsigned char buf [PACK_HEADER_SIZE];
guint64 SCR;
} Pack_struc;
typedef struct sys_header_struc /* System Header Info */
typedef struct sys_header_struc /* System Header Info */
{ unsigned char buf [SYS_HEADER_SIZE];
} Sys_header_struc;
@ -126,15 +126,15 @@ typedef struct sys_header_struc /* System Header Info */
/* systems.c */
void create_sector (Sector_struc *sector, Pack_struc *pack, Sys_header_struc *sys_header,
unsigned int packet_size, unsigned char *inputbuffer, unsigned char type, unsigned char buffer_scale,
unsigned int buffer_size, unsigned char buffers, guint64 PTS, guint64 DTS,
unsigned char timestamps, unsigned int which_streams);
unsigned int packet_size, unsigned char *inputbuffer, unsigned char type, unsigned char buffer_scale,
unsigned int buffer_size, unsigned char buffers, guint64 PTS, guint64 DTS,
unsigned char timestamps, unsigned int which_streams);
void create_pack (Pack_struc *pack, guint64 SCR, unsigned int mux_rate);
void create_sys_header (Sys_header_struc *sys_header, unsigned int rate_bound, unsigned char audio_bound,
unsigned char fixed, unsigned char CSPS, unsigned char audio_lock, unsigned char video_lock,
unsigned char video_bound, unsigned char stream1, unsigned char buffer1_scale, unsigned int buffer1_size,
unsigned char stream2, unsigned char buffer2_scale, unsigned int buffer2_size, unsigned int which_streams);
unsigned char fixed, unsigned char CSPS, unsigned char audio_lock, unsigned char video_lock,
unsigned char video_bound, unsigned char stream1, unsigned char buffer1_scale, unsigned int buffer1_size,
unsigned char stream2, unsigned char buffer2_scale, unsigned int buffer2_size, unsigned int which_streams);
#endif

View file

@ -29,10 +29,10 @@ buffer_timecode (timecode, marker, buffer)
}
/*************************************************************************
creates a complete sector.
Also copies Pack and Sys_Header informations into the
sector buffer, then reads a packet full of data from
the input stream into the sector buffer.
creates a complete sector.
Also copies Pack and Sys_Header informations into the
sector buffer, then reads a packet full of data from
the input stream into the sector buffer.
*************************************************************************/
@ -170,8 +170,8 @@ create_sector (sector, pack, sys_header,
/* zero byte stuffing in the last Packet of a stream */
/* we don't need this any more, since we shortenend the packet */
/* for (j=tmp; j<i; j++) */
/* *(index++)=(unsigned char) ZERO_STUFFING_BYTE; */
/* for (j=tmp; j<i; j++) */
/* *(index++)=(unsigned char) ZERO_STUFFING_BYTE; */
}
}
@ -184,9 +184,9 @@ create_sector (sector, pack, sys_header,
}
/*************************************************************************
writes specifical pack header information into a buffer
later this will be copied from the sector routine into
the sector buffer
writes specifical pack header information into a buffer
later this will be copied from the sector routine into
the sector buffer
*************************************************************************/
void
@ -214,9 +214,9 @@ create_pack (pack, SCR, mux_rate)
/*************************************************************************
writes specifical system header information into a buffer
later this will be copied from the sector routine into
the sector buffer
writes specifical system header information into a buffer
later this will be copied from the sector routine into
the sector buffer
*************************************************************************/
void

View file

@ -49,7 +49,7 @@ struct _Mp1VideoParse {
GstPad *sinkpad,*srcpad;
GstBuffer *partialbuf; /* previous buffer (if carryover) */
GstBuffer *partialbuf; /* previous buffer (if carryover) */
gulong next_buffer_offset;
gboolean need_resync;
gboolean in_flush;

View file

@ -57,8 +57,8 @@ struct _GstMpeg2Subt {
GstPad *videopad,*subtitlepad,*srcpad;
GstBuffer *partialbuf; /* Collect together subtitle buffers until we have a full control sequence */
GstBuffer *hold_frame; /* Hold back one frame of video */
GstBuffer *partialbuf; /* Collect together subtitle buffers until we have a full control sequence */
GstBuffer *hold_frame; /* Hold back one frame of video */
GstBuffer *still_frame;
guint16 packet_size;

View file

@ -180,12 +180,12 @@ mp3_type_frame_length_from_header (guint32 header, guint * put_layer,
* (0.024%) per try. This makes the function for calculating false positives
* 1 - (1 - ((63 / 2 ^18) ^ GST_MP3_TYPEFIND_MIN_HEADERS)) ^ buffersize)
* This has the following probabilities of false positives:
* bufsize MIN_HEADERS
* (bytes) 1 2 3 4
* 4096 62.6% 0.02% 0% 0%
* 16384 98% 0.09% 0% 0%
* 1 MiB 100% 5.88% 0% 0%
* 1 GiB 100% 100% 1.44% 0%
* bufsize MIN_HEADERS
* (bytes) 1 2 3 4
* 4096 62.6% 0.02% 0% 0%
* 16384 98% 0.09% 0% 0%
* 1 MiB 100% 5.88% 0% 0%
* 1 GiB 100% 100% 1.44% 0%
* 1 TiB 100% 100% 100% 0.35%
* This means that the current choice (3 headers by most of the time 4096 byte
* buffers is pretty safe for now.
@ -361,8 +361,8 @@ gst_mp3parse_chain (GstPad * pad, GstBuffer * buf)
/* mask the bits which are allowed to differ between frames */
#define HDRMASK ~((0xF << 12) /* bitrate */ | \
(0x1 << 9) /* padding */ | \
(0x3 << 4)) /*mode extension */
(0x1 << 9) /* padding */ | \
(0x3 << 4)) /*mode extension */
if ((header2 & HDRMASK) != (header & HDRMASK)) { /* require 2 matching headers in a row */
GST_DEBUG

View file

@ -45,7 +45,7 @@ struct _GstMPEGAudioParse {
GstPad *sinkpad,*srcpad;
GstBuffer *partialbuf; /* previous buffer (if carryover) */
GstBuffer *partialbuf; /* previous buffer (if carryover) */
guint skip; /* number of frames to skip */
guint bit_rate;
gint channels, rate, layer;

View file

@ -47,7 +47,7 @@ typedef enum {
GST_MULTIFILESINK_OPEN = (GST_ELEMENT_FLAG_LAST << 0),
GST_MULTIFILESINK_NEWFILE = (GST_ELEMENT_FLAG_LAST << 1),
GST_MULTIFILESINK_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 4)
GST_MULTIFILESINK_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 4)
} GstMultiFileSinkFlags;
struct _GstMultiFileSink {

View file

@ -38,26 +38,26 @@ typedef struct _GstOverlay GstOverlay;
typedef struct _GstOverlayClass GstOverlayClass;
struct _GstOverlay {
GstElement element;
GstElement element;
GstPad *srcpad;
GstPad *sinkpad1;
GstPad *sinkpad2;
GstPad *sinkpad3;
GstPad *srcpad;
GstPad *sinkpad1;
GstPad *sinkpad2;
GstPad *sinkpad3;
gint format;
gint width;
gint height;
gint format;
gint width;
gint height;
gint duration;
gint position;
gint duration;
gint position;
gint type;
gint fps;
gint border;
gint depth;
gint type;
gint fps;
gint border;
gint depth;
gdouble framerate;
gdouble framerate;
};
struct _GstOverlayClass {

View file

@ -33,13 +33,13 @@ GST_DEBUG_CATEGORY_EXTERN (qtdemux_debug);
/* temporary hack */
#define gst_util_dump_mem(a,b) /* */
#define QTDEMUX_GUINT32_GET(a) (GST_READ_UINT32_BE(a))
#define QTDEMUX_GUINT24_GET(a) (GST_READ_UINT32_BE(a) >> 8)
#define QTDEMUX_GUINT16_GET(a) (GST_READ_UINT16_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_GUINT16_GET(a) (GST_READ_UINT16_BE(a))
#define QTDEMUX_GUINT8_GET(a) (*(guint8 *)(a))
#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_FOURCC_GET(a) (GST_READ_UINT32_LE(a))
#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_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))
@ -781,76 +781,76 @@ gst_qtdemux_add_stream (GstQTDemux * qtdemux,
#define QT_CONTAINER 1
#define FOURCC_moov GST_MAKE_FOURCC('m','o','o','v')
#define FOURCC_mvhd GST_MAKE_FOURCC('m','v','h','d')
#define FOURCC_clip GST_MAKE_FOURCC('c','l','i','p')
#define FOURCC_trak GST_MAKE_FOURCC('t','r','a','k')
#define FOURCC_udta GST_MAKE_FOURCC('u','d','t','a')
#define FOURCC_ctab GST_MAKE_FOURCC('c','t','a','b')
#define FOURCC_tkhd GST_MAKE_FOURCC('t','k','h','d')
#define FOURCC_crgn GST_MAKE_FOURCC('c','r','g','n')
#define FOURCC_matt GST_MAKE_FOURCC('m','a','t','t')
#define FOURCC_kmat GST_MAKE_FOURCC('k','m','a','t')
#define FOURCC_edts GST_MAKE_FOURCC('e','d','t','s')
#define FOURCC_elst GST_MAKE_FOURCC('e','l','s','t')
#define FOURCC_load GST_MAKE_FOURCC('l','o','a','d')
#define FOURCC_tref GST_MAKE_FOURCC('t','r','e','f')
#define FOURCC_imap GST_MAKE_FOURCC('i','m','a','p')
#define FOURCC___in GST_MAKE_FOURCC(' ',' ','i','n')
#define FOURCC___ty GST_MAKE_FOURCC(' ',' ','t','y')
#define FOURCC_mdia GST_MAKE_FOURCC('m','d','i','a')
#define FOURCC_mdhd GST_MAKE_FOURCC('m','d','h','d')
#define FOURCC_hdlr GST_MAKE_FOURCC('h','d','l','r')
#define FOURCC_minf GST_MAKE_FOURCC('m','i','n','f')
#define FOURCC_vmhd GST_MAKE_FOURCC('v','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_gmin GST_MAKE_FOURCC('g','m','i','n')
#define FOURCC_dinf GST_MAKE_FOURCC('d','i','n','f')
#define FOURCC_dref GST_MAKE_FOURCC('d','r','e','f')
#define FOURCC_stbl GST_MAKE_FOURCC('s','t','b','l')
#define FOURCC_stsd GST_MAKE_FOURCC('s','t','s','d')
#define FOURCC_stts GST_MAKE_FOURCC('s','t','t','s')
#define FOURCC_stss GST_MAKE_FOURCC('s','t','s','s')
#define FOURCC_stsc GST_MAKE_FOURCC('s','t','s','c')
#define FOURCC_stsz GST_MAKE_FOURCC('s','t','s','z')
#define FOURCC_stco GST_MAKE_FOURCC('s','t','c','o')
#define FOURCC_vide GST_MAKE_FOURCC('v','i','d','e')
#define FOURCC_soun GST_MAKE_FOURCC('s','o','u','n')
#define FOURCC_co64 GST_MAKE_FOURCC('c','o','6','4')
#define FOURCC_cmov GST_MAKE_FOURCC('c','m','o','v')
#define FOURCC_dcom GST_MAKE_FOURCC('d','c','o','m')
#define FOURCC_cmvd GST_MAKE_FOURCC('c','m','v','d')
#define FOURCC_hint GST_MAKE_FOURCC('h','i','n','t')
#define FOURCC_mp4a GST_MAKE_FOURCC('m','p','4','a')
#define FOURCC_mp4v GST_MAKE_FOURCC('m','p','4','v')
#define FOURCC_wave GST_MAKE_FOURCC('w','a','v','e')
#define FOURCC_appl GST_MAKE_FOURCC('a','p','p','l')
#define FOURCC_esds GST_MAKE_FOURCC('e','s','d','s')
#define FOURCC_hnti GST_MAKE_FOURCC('h','n','t','i')
#define FOURCC_rtp_ GST_MAKE_FOURCC('r','t','p',' ')
#define FOURCC_sdp_ GST_MAKE_FOURCC('s','d','p',' ')
#define FOURCC_meta GST_MAKE_FOURCC('m','e','t','a')
#define FOURCC_ilst GST_MAKE_FOURCC('i','l','s','t')
#define FOURCC__nam GST_MAKE_FOURCC(0xa9,'n','a','m')
#define FOURCC__ART GST_MAKE_FOURCC(0xa9,'A','R','T')
#define FOURCC__wrt GST_MAKE_FOURCC(0xa9,'w','r','t')
#define FOURCC__grp GST_MAKE_FOURCC(0xa9,'g','r','p')
#define FOURCC__alb GST_MAKE_FOURCC(0xa9,'a','l','b')
#define FOURCC_gnre GST_MAKE_FOURCC('g','n','r','e')
#define FOURCC_disc GST_MAKE_FOURCC('d','i','s','c')
#define FOURCC_trkn GST_MAKE_FOURCC('t','r','k','n')
#define FOURCC_cpil GST_MAKE_FOURCC('c','p','i','l')
#define FOURCC_tmpo GST_MAKE_FOURCC('t','m','p','o')
#define FOURCC__too GST_MAKE_FOURCC(0xa9,'t','o','o')
#define FOURCC_____ GST_MAKE_FOURCC('-','-','-','-')
#define FOURCC_free GST_MAKE_FOURCC('f','r','e','e')
#define FOURCC_data GST_MAKE_FOURCC('d','a','t','a')
#define FOURCC_SVQ3 GST_MAKE_FOURCC('S','V','Q','3')
#define FOURCC_rmra GST_MAKE_FOURCC('r','m','r','a')
#define FOURCC_rmda GST_MAKE_FOURCC('r','m','d','a')
#define FOURCC_rdrf GST_MAKE_FOURCC('r','d','r','f')
#define FOURCC__gen GST_MAKE_FOURCC(0xa9, 'g', 'e', 'n')
#define FOURCC_moov GST_MAKE_FOURCC('m','o','o','v')
#define FOURCC_mvhd GST_MAKE_FOURCC('m','v','h','d')
#define FOURCC_clip GST_MAKE_FOURCC('c','l','i','p')
#define FOURCC_trak GST_MAKE_FOURCC('t','r','a','k')
#define FOURCC_udta GST_MAKE_FOURCC('u','d','t','a')
#define FOURCC_ctab GST_MAKE_FOURCC('c','t','a','b')
#define FOURCC_tkhd GST_MAKE_FOURCC('t','k','h','d')
#define FOURCC_crgn GST_MAKE_FOURCC('c','r','g','n')
#define FOURCC_matt GST_MAKE_FOURCC('m','a','t','t')
#define FOURCC_kmat GST_MAKE_FOURCC('k','m','a','t')
#define FOURCC_edts GST_MAKE_FOURCC('e','d','t','s')
#define FOURCC_elst GST_MAKE_FOURCC('e','l','s','t')
#define FOURCC_load GST_MAKE_FOURCC('l','o','a','d')
#define FOURCC_tref GST_MAKE_FOURCC('t','r','e','f')
#define FOURCC_imap GST_MAKE_FOURCC('i','m','a','p')
#define FOURCC___in GST_MAKE_FOURCC(' ',' ','i','n')
#define FOURCC___ty GST_MAKE_FOURCC(' ',' ','t','y')
#define FOURCC_mdia GST_MAKE_FOURCC('m','d','i','a')
#define FOURCC_mdhd GST_MAKE_FOURCC('m','d','h','d')
#define FOURCC_hdlr GST_MAKE_FOURCC('h','d','l','r')
#define FOURCC_minf GST_MAKE_FOURCC('m','i','n','f')
#define FOURCC_vmhd GST_MAKE_FOURCC('v','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_gmin GST_MAKE_FOURCC('g','m','i','n')
#define FOURCC_dinf GST_MAKE_FOURCC('d','i','n','f')
#define FOURCC_dref GST_MAKE_FOURCC('d','r','e','f')
#define FOURCC_stbl GST_MAKE_FOURCC('s','t','b','l')
#define FOURCC_stsd GST_MAKE_FOURCC('s','t','s','d')
#define FOURCC_stts GST_MAKE_FOURCC('s','t','t','s')
#define FOURCC_stss GST_MAKE_FOURCC('s','t','s','s')
#define FOURCC_stsc GST_MAKE_FOURCC('s','t','s','c')
#define FOURCC_stsz GST_MAKE_FOURCC('s','t','s','z')
#define FOURCC_stco GST_MAKE_FOURCC('s','t','c','o')
#define FOURCC_vide GST_MAKE_FOURCC('v','i','d','e')
#define FOURCC_soun GST_MAKE_FOURCC('s','o','u','n')
#define FOURCC_co64 GST_MAKE_FOURCC('c','o','6','4')
#define FOURCC_cmov GST_MAKE_FOURCC('c','m','o','v')
#define FOURCC_dcom GST_MAKE_FOURCC('d','c','o','m')
#define FOURCC_cmvd GST_MAKE_FOURCC('c','m','v','d')
#define FOURCC_hint GST_MAKE_FOURCC('h','i','n','t')
#define FOURCC_mp4a GST_MAKE_FOURCC('m','p','4','a')
#define FOURCC_mp4v GST_MAKE_FOURCC('m','p','4','v')
#define FOURCC_wave GST_MAKE_FOURCC('w','a','v','e')
#define FOURCC_appl GST_MAKE_FOURCC('a','p','p','l')
#define FOURCC_esds GST_MAKE_FOURCC('e','s','d','s')
#define FOURCC_hnti GST_MAKE_FOURCC('h','n','t','i')
#define FOURCC_rtp_ GST_MAKE_FOURCC('r','t','p',' ')
#define FOURCC_sdp_ GST_MAKE_FOURCC('s','d','p',' ')
#define FOURCC_meta GST_MAKE_FOURCC('m','e','t','a')
#define FOURCC_ilst GST_MAKE_FOURCC('i','l','s','t')
#define FOURCC__nam GST_MAKE_FOURCC(0xa9,'n','a','m')
#define FOURCC__ART GST_MAKE_FOURCC(0xa9,'A','R','T')
#define FOURCC__wrt GST_MAKE_FOURCC(0xa9,'w','r','t')
#define FOURCC__grp GST_MAKE_FOURCC(0xa9,'g','r','p')
#define FOURCC__alb GST_MAKE_FOURCC(0xa9,'a','l','b')
#define FOURCC_gnre GST_MAKE_FOURCC('g','n','r','e')
#define FOURCC_disc GST_MAKE_FOURCC('d','i','s','c')
#define FOURCC_trkn GST_MAKE_FOURCC('t','r','k','n')
#define FOURCC_cpil GST_MAKE_FOURCC('c','p','i','l')
#define FOURCC_tmpo GST_MAKE_FOURCC('t','m','p','o')
#define FOURCC__too GST_MAKE_FOURCC(0xa9,'t','o','o')
#define FOURCC_____ GST_MAKE_FOURCC('-','-','-','-')
#define FOURCC_free GST_MAKE_FOURCC('f','r','e','e')
#define FOURCC_data GST_MAKE_FOURCC('d','a','t','a')
#define FOURCC_SVQ3 GST_MAKE_FOURCC('S','V','Q','3')
#define FOURCC_rmra GST_MAKE_FOURCC('r','m','r','a')
#define FOURCC_rmda GST_MAKE_FOURCC('r','m','d','a')
#define FOURCC_rdrf GST_MAKE_FOURCC('r','d','r','f')
#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_tkhd (GstQTDemux * qtdemux, void *buffer, int depth);

View file

@ -39,7 +39,7 @@ extern "C" {
#define GST_IS_QTDEMUX_CLASS(obj) \
(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 _GstQTDemuxClass GstQTDemuxClass;

View file

@ -648,7 +648,7 @@ RTjpeg_dctY (__u8 * idata, __s16 * odata, int rskip)
movq_r2r (mm3, mm4); /* write result 4 */
/************************************************************************************************
End of Transpose
End of Transpose
************************************************************************************************/
@ -743,8 +743,8 @@ RTjpeg_dctY (__u8 * idata, __s16 * odata, int rskip)
movq_r2m (mm0, *(dataptr + 14)); /*save y7 */
/************************************************
* End of 1st 4 rows
************************************************/
* End of 1st 4 rows
************************************************/
movq_m2r (*(dataptr + 3), mm1); /* load x1: stage 1 */
movq_r2r (mm7, mm0); /* copy x0 */
@ -864,7 +864,7 @@ RTjpeg_dctY (__u8 * idata, __s16 * odata, int rskip)
psubw_r2r (mm2, mm0); /* y7 */
/************************************************************************************************
Start of Transpose
Start of Transpose
************************************************************************************************/
movq_m2r (*(dataptr + 13), mm6); /* m23:m22|m21:m20 - third line (line 6)and copy into m2 */
@ -999,7 +999,7 @@ RTjpeg_dctY (__u8 * idata, __s16 * odata, int rskip)
movq_r2r (mm3, mm4); /* write result 4 */
/************************************************************************************************
End of Transpose 2
End of Transpose 2
************************************************************************************************/
paddw_m2r (*(dataptr + 8), mm3); /* tmp03=x3+x4: stage 1 */
@ -1092,8 +1092,8 @@ RTjpeg_dctY (__u8 * idata, __s16 * odata, int rskip)
movq_r2m (mm0, *(dataptr + 14)); /*save y7 */
/************************************************
* End of 1st 4 rows
************************************************/
* End of 1st 4 rows
************************************************/
movq_m2r (*(dataptr + 3), mm1); /* load x1 : stage 1 */
movq_r2r (mm7, mm0); /* copy x0 */
@ -1585,8 +1585,8 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
/*ok */
/* mm0 = ;wsptr[0,tmp10],[1,tmp10],[0,tmp13],[1,tmp13] */
/* mm1 = ;wsptr[0,tmp11],[1,tmp11],[0,tmp14],[1,tmp14] */
/* mm0 = ;wsptr[0,tmp10],[1,tmp10],[0,tmp13],[1,tmp13] */
/* mm1 = ;wsptr[0,tmp11],[1,tmp11],[0,tmp14],[1,tmp14] */
movq_r2r (mm0, mm2);
@ -1718,8 +1718,8 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
movq_r2r (mm5, mm1);
punpckldq_r2r (mm2, mm3); /* wsptr[0,z12],[1,z12],[2,z12],[3,z12] */
/* tmp7 = z11 + z13; : phase 5 */
/* tmp8 = z11 - z13; : phase 5 */
/* tmp7 = z11 + z13; : phase 5 */
/* tmp8 = z11 - z13; : phase 5 */
psubw_r2r (mm4, mm1); /* tmp8 */
paddw_r2r (mm4, mm5); /* tmp7 */
@ -1730,7 +1730,7 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
pmulhw_m2r (fix_141, mm1); /* tmp21 */
/* tmp20 = MULTIPLY(z12, (FIX_1_082392200- FIX_1_847759065)) 2*(c2-c6) */
/* + MULTIPLY(z10, - FIX_1_847759065); : 2*c2 */
/* + MULTIPLY(z10, - FIX_1_847759065); : 2*c2 */
psllw_i2r (2, mm3);
movq_r2r (mm0, mm7);
@ -1740,8 +1740,8 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
movq_m2r (*(wsptr), mm2); /* tmp0,final1 */
pmulhw_m2r (fix_108n184, mm6);
/* tmp22 = MULTIPLY(z10,(FIX_1_847759065 - FIX_2_613125930)) : -2*(c2+c6) */
/* + MULTIPLY(z12, FIX_1_847759065); 2*c2 */
/* tmp22 = MULTIPLY(z10,(FIX_1_847759065 - FIX_2_613125930)) : -2*(c2+c6) */
/* + MULTIPLY(z12, FIX_1_847759065); 2*c2 */
movq_r2r (mm2, mm4); /* final1 */
pmulhw_m2r (fix_184n261, mm0);
@ -1750,7 +1750,7 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
pmulhw_m2r (fix_184, mm3);
psubw_r2r (mm5, mm4); /* tmp0-tmp7,final1 */
/* tmp6 = tmp22 - tmp7; phase 2 */
/* tmp6 = tmp22 - tmp7; phase 2 */
psraw_i2r (3, mm2); /* outptr[0,0],[1,0],[2,0],[3,0],final1 */
paddw_r2r (mm6, mm7); /* tmp20 */
@ -1772,15 +1772,15 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
/* outptr[0] = range_limit[IDESCALE(tmp0 + tmp7, PASS1_BITS+3) */
/* & RANGE_MASK]; */
/* & RANGE_MASK]; */
/* outptr[7] = range_limit[IDESCALE(tmp0 - tmp7, PASS1_BITS+3) */
/* & RANGE_MASK]; final1 */
/* & RANGE_MASK]; final1 */
/* outptr[1] = range_limit[IDESCALE(tmp1 + tmp6, PASS1_BITS+3) */
/* & RANGE_MASK]; */
/* & RANGE_MASK]; */
/* outptr[6] = range_limit[IDESCALE(tmp1 - tmp6, PASS1_BITS+3) */
/* & RANGE_MASK]; final2 */
/* & RANGE_MASK]; final2 */
psubw_r2r (mm3, mm6); /* tmp1-tmp6,final2 */
psraw_i2r (3, mm0); /* outptr[0,1],[1,1],[2,1],[3,1] */
@ -1792,9 +1792,9 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
packuswb_r2r (mm6, mm2); /* out[0,0],[1,0],[2,0],[3,0],[0,6],[1,6],[2,6],[3,6] */
/* outptr[2] = range_limit[IDESCALE(tmp2 + tmp5, PASS1_BITS+3) */
/* & RANGE_MASK]; */
/* & RANGE_MASK]; */
/* outptr[5] = range_limit[IDESCALE(tmp2 - tmp5, PASS1_BITS+3) */
/* & RANGE_MASK]; final3 */
/* & RANGE_MASK]; final3 */
paddw_r2r (mm1, mm7); /* tmp4 */
movq_r2r (mm5, mm3);
@ -1809,9 +1809,9 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
/* outptr[4] = range_limit[IDESCALE(tmp3 + tmp4, PASS1_BITS+3) */
/* & RANGE_MASK]; */
/* & RANGE_MASK]; */
/* outptr[3] = range_limit[IDESCALE(tmp3 - tmp4, PASS1_BITS+3) */
/* & RANGE_MASK]; final4 */
/* & RANGE_MASK]; final4 */
movq_r2r (mm4, mm6);
paddw_r2r (mm7, mm4); /* tmp3+tmp4 */
@ -1946,8 +1946,8 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
/*OK */
/* mm0 = ;wsptr[0,tmp10],[1,tmp10],[0,tmp13],[1,tmp13] */
/* mm1 = ;wsptr[0,tmp11],[1,tmp11],[0,tmp14],[1,tmp14] */
/* mm0 = ;wsptr[0,tmp10],[1,tmp10],[0,tmp13],[1,tmp13] */
/* mm1 = ;wsptr[0,tmp11],[1,tmp11],[0,tmp14],[1,tmp14] */
movq_r2r (mm0, mm2);
punpckhdq_r2r (mm4, mm6); /* wsptr[0,tmp14],[1,tmp14],[2,tmp14],[3,tmp14] */
@ -2079,8 +2079,8 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
movq_r2r (mm5, mm1);
punpckldq_r2r (mm2, mm3); /* wsptr[0,z12],[1,z12],[2,z12],[3,z12] */
/* tmp7 = z11 + z13; : phase 5 */
/* tmp8 = z11 - z13; : phase 5 */
/* tmp7 = z11 + z13; : phase 5 */
/* tmp8 = z11 - z13; : phase 5 */
psubw_r2r (mm4, mm1); /* tmp8 */
paddw_r2r (mm4, mm5); /* tmp7 */
@ -2091,7 +2091,7 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
pmulhw_m2r (fix_141, mm1); /* tmp21 */
/* tmp20 = MULTIPLY(z12, (FIX_1_082392200- FIX_1_847759065)) : 2*(c2-c6) */
/* + MULTIPLY(z10, - FIX_1_847759065); : 2*c2 */
/* + MULTIPLY(z10, - FIX_1_847759065); : 2*c2 */
psllw_i2r (2, mm3);
movq_r2r (mm0, mm7);
@ -2101,8 +2101,8 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
movq_m2r (*(wsptr), mm2); /* tmp0,final1 */
pmulhw_m2r (fix_108n184, mm6);
/* tmp22 = MULTIPLY(z10,(FIX_1_847759065 - FIX_2_613125930)) : -2*(c2+c6) */
/* + MULTIPLY(z12, FIX_1_847759065); : 2*c2 */
/* tmp22 = MULTIPLY(z10,(FIX_1_847759065 - FIX_2_613125930)) : -2*(c2+c6) */
/* + MULTIPLY(z12, FIX_1_847759065); : 2*c2 */
movq_r2r (mm2, mm4); /* final1 */
pmulhw_m2r (fix_184n261, mm0);
@ -2111,7 +2111,7 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
pmulhw_m2r (fix_184, mm3);
psubw_r2r (mm5, mm4); /* tmp0-tmp7,final1 */
/* tmp6 = tmp22 - tmp7; phase 2 */
/* tmp6 = tmp22 - tmp7; phase 2 */
psraw_i2r (3, mm2); /* outptr[0,0],[1,0],[2,0],[3,0],final1 */
paddw_r2r (mm6, mm7); /* tmp20 */
@ -2132,15 +2132,15 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
/* Final output stage: scale down by a factor of 8 and range-limit */
/* outptr[0] = range_limit[IDESCALE(tmp0 + tmp7, PASS1_BITS+3) */
/* & RANGE_MASK]; */
/* & RANGE_MASK]; */
/* outptr[7] = range_limit[IDESCALE(tmp0 - tmp7, PASS1_BITS+3) */
/* & RANGE_MASK]; final1 */
/* & RANGE_MASK]; final1 */
/* outptr[1] = range_limit[IDESCALE(tmp1 + tmp6, PASS1_BITS+3) */
/* & RANGE_MASK]; */
/* & RANGE_MASK]; */
/* outptr[6] = range_limit[IDESCALE(tmp1 - tmp6, PASS1_BITS+3) */
/* & RANGE_MASK]; final2 */
/* & RANGE_MASK]; final2 */
psubw_r2r (mm3, mm6); /* tmp1-tmp6,final2 */
psraw_i2r (3, mm0); /* outptr[0,1],[1,1],[2,1],[3,1] */
@ -2152,9 +2152,9 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
packuswb_r2r (mm6, mm2); /* out[0,0],[1,0],[2,0],[3,0],[0,6],[1,6],[2,6],[3,6] */
/* outptr[2] = range_limit[IDESCALE(tmp2 + tmp5, PASS1_BITS+3) */
/* & RANGE_MASK]; */
/* & RANGE_MASK]; */
/* outptr[5] = range_limit[IDESCALE(tmp2 - tmp5, PASS1_BITS+3) */
/* & RANGE_MASK]; final3 */
/* & RANGE_MASK]; final3 */
paddw_r2r (mm1, mm7); /* tmp4 */
movq_r2r (mm5, mm3);
@ -2169,9 +2169,9 @@ RTjpeg_idct (__u8 * odata, __s16 * data, int rskip)
/* outptr[4] = range_limit[IDESCALE(tmp3 + tmp4, PASS1_BITS+3) */
/* & RANGE_MASK]; */
/* & RANGE_MASK]; */
/* outptr[3] = range_limit[IDESCALE(tmp3 - tmp4, PASS1_BITS+3) */
/* & RANGE_MASK]; final4 */
/* & RANGE_MASK]; final4 */
movq_r2r (mm4, mm6);
paddw_r2r (mm7, mm4); /* tmp3+tmp4 */

View file

@ -49,4 +49,4 @@ extern void RTjpeg_yuvrgb8(__u8 *buf, __u8 *rgb);
extern void RTjpeg_yuvrgb16(__u8 *buf, __u8 *rgb);
extern void RTjpeg_yuvrgb24(__u8 *buf, __u8 *rgb);
extern void RTjpeg_yuvrgb32(__u8 *buf, __u8 *rgb);

View file

@ -1,7 +1,7 @@
/*
* crc32.h
*
* Description: CRC32 functions
* Description: CRC32 functions
* Developed by: Alexander Djourik <sasha@iszf.irk.ru>
* Pavel Zhilin <pzh@iszf.irk.ru>
*
@ -32,83 +32,83 @@
#define CRC32_H
static const unsigned long crc32_table[256] = {
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
};
#define UPDATE_CRC32(x, crc) crc = \
(((crc>>8) & 0x00FFFFFF) ^ crc32_table[(crc^x) & 0xFF])
(((crc>>8) & 0x00FFFFFF) ^ crc32_table[(crc^x) & 0xFF])
static unsigned long
crc32 (unsigned char *buffer, unsigned long len) {
unsigned long i;
unsigned long crc = 0xFFFFFFFF;
unsigned long i;
unsigned long crc = 0xFFFFFFFF;
for (i = 0; i < len; i++) UPDATE_CRC32(buffer[i], crc);
for (i = 0; i < len; i++) UPDATE_CRC32(buffer[i], crc);
return (crc ^ 0xFFFFFFFF);
return (crc ^ 0xFFFFFFFF);
}
#endif /* CRC32_H */
#endif /* CRC32_H */

View file

@ -1,7 +1,7 @@
/*
* filters.h
*
* Description: TTAv1 filter functions
* Description: TTAv1 filter functions
* Developed by: Alexander Djourik <sasha@iszf.irk.ru>
* Pavel Zhilin <pzh@iszf.irk.ru>
*
@ -36,75 +36,75 @@ static long flt_set[3] = {10, 9, 10};
static void
memshl (register long *pA, register long *pB) {
*pA++ = *pB++;
*pA++ = *pB++;
*pA++ = *pB++;
*pA++ = *pB++;
*pA++ = *pB++;
*pA++ = *pB++;
*pA++ = *pB++;
*pA = *pB;
*pA++ = *pB++;
*pA++ = *pB++;
*pA++ = *pB++;
*pA++ = *pB++;
*pA++ = *pB++;
*pA++ = *pB++;
*pA++ = *pB++;
*pA = *pB;
}
static void
hybrid_filter (fltst *fs, long *in) {
register long *pA = fs->dl;
register long *pB = fs->qm;
register long *pM = fs->dx;
register long sum = fs->round;
register long *pA = fs->dl;
register long *pB = fs->qm;
register long *pM = fs->dx;
register long sum = fs->round;
if (!fs->error) {
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++; pM += 8;
} else if (fs->error < 0) {
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
} else {
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
}
if (!fs->error) {
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++;
sum += *pA++ * *pB, pB++; pM += 8;
} else if (fs->error < 0) {
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
sum += *pA++ * (*pB -= *pM++), pB++;
} else {
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
sum += *pA++ * (*pB += *pM++), pB++;
}
*(pM-0) = ((*(pA-1) >> 30) | 1) << 2;
*(pM-1) = ((*(pA-2) >> 30) | 1) << 1;
*(pM-2) = ((*(pA-3) >> 30) | 1) << 1;
*(pM-3) = ((*(pA-4) >> 30) | 1);
*(pM-0) = ((*(pA-1) >> 30) | 1) << 2;
*(pM-1) = ((*(pA-2) >> 30) | 1) << 1;
*(pM-2) = ((*(pA-3) >> 30) | 1) << 1;
*(pM-3) = ((*(pA-4) >> 30) | 1);
fs->error = *in;
*in += (sum >> fs->shift);
*pA = *in;
fs->error = *in;
*in += (sum >> fs->shift);
*pA = *in;
*(pA-1) = *(pA-0) - *(pA-1);
*(pA-2) = *(pA-1) - *(pA-2);
*(pA-3) = *(pA-2) - *(pA-3);
*(pA-1) = *(pA-0) - *(pA-1);
*(pA-2) = *(pA-1) - *(pA-2);
*(pA-3) = *(pA-2) - *(pA-3);
memshl (fs->dl, fs->dl + 1);
memshl (fs->dx, fs->dx + 1);
memshl (fs->dl, fs->dl + 1);
memshl (fs->dx, fs->dx + 1);
}
static void
filter_init (fltst *fs, long shift) {
memset (fs, 0, sizeof(fltst));
fs->shift = shift;
fs->round = 1 << (shift - 1);
memset (fs, 0, sizeof(fltst));
fs->shift = shift;
fs->round = 1 << (shift - 1);
}
#endif /* FILTERS_H */
#endif /* FILTERS_H */

View file

@ -1,7 +1,7 @@
/*
* ttadec.h
*
* Description: TTAv1 decoder definitions and prototypes
* Description: TTAv1 decoder definitions and prototypes
* Developed by: Alexander Djourik <sasha@iszf.irk.ru>
* Pavel Zhilin <pzh@iszf.irk.ru>
*
@ -35,21 +35,21 @@
#pragma pack(1)
#define __ATTRIBUTE_PACKED__
#else
#define __ATTRIBUTE_PACKED__ __attribute__((packed))
#define __ATTRIBUTE_PACKED__ __attribute__((packed))
#endif
#define TTA1_SIGN 0x31415454
#define FRAME_TIME 1.04489795918367346939
#define MAX_ORDER 8
#define TTA1_SIGN 0x31415454
#define FRAME_TIME 1.04489795918367346939
#define MAX_ORDER 8
#ifndef WAVE_FORMAT_PCM
#define WAVE_FORMAT_PCM 1
#define WAVE_FORMAT_PCM 1
#endif
#ifdef _WIN32
typedef unsigned __int64 uint64;
typedef unsigned __int64 uint64;
#else
typedef unsigned long long uint64;
typedef unsigned long long uint64;
#endif
/**
@ -87,23 +87,23 @@ static const unsigned long *shift_16 = bit_shift + 4;
typedef unsigned char byte;
#ifdef _BIG_ENDIAN
#define ENDSWAP_INT16(x) (((((x)>>8)&0xFF)|(((x)&0xFF)<<8)))
#define ENDSWAP_INT32(x) (((((x)>>24)&0xFF)|(((x)>>8)&0xFF00)|(((x)&0xFF00)<<8)|(((x)&0xFF)<<24)))
#define ENDSWAP_INT16(x) (((((x)>>8)&0xFF)|(((x)&0xFF)<<8)))
#define ENDSWAP_INT32(x) (((((x)>>24)&0xFF)|(((x)>>8)&0xFF00)|(((x)&0xFF00)<<8)|(((x)&0xFF)<<24)))
#define WRITE_BUFFER(x, bsize, out) { \
if (bsize > 2) *out++ = (byte)(*x >> 16); \
if (bsize > 1) *out++ = (byte)(*x >> 8); \
*out++ = (byte) *x; }
if (bsize > 2) *out++ = (byte)(*x >> 16); \
if (bsize > 1) *out++ = (byte)(*x >> 8); \
*out++ = (byte) *x; }
#else
#define ENDSWAP_INT16(x) (x)
#define ENDSWAP_INT32(x) (x)
#define ENDSWAP_INT16(x) (x)
#define ENDSWAP_INT32(x) (x)
#define WRITE_BUFFER(x, bsize, out) { \
*out++ = (byte) *x; \
if (bsize > 1) *out++ = (byte)(*x >> 8); \
if (bsize > 2) *out++ = (byte)(*x >> 16); }
*out++ = (byte) *x; \
if (bsize > 1) *out++ = (byte)(*x >> 8); \
if (bsize > 2) *out++ = (byte)(*x >> 16); }
#endif
#define PREDICTOR1(x, k) ((long)((((uint64)x << k) - x) >> k))
#define DEC(x) (((x)&1)?(++(x)>>1):(-(x)>>1))
#define PREDICTOR1(x, k) ((long)((((uint64)x << k) - x) >> k))
#define DEC(x) (((x)&1)?(++(x)>>1):(-(x)>>1))
#if 0
/* This doesn't compile on non-gcc compilers */
@ -119,26 +119,26 @@ typedef struct {
#endif
typedef struct {
unsigned long k0;
unsigned long k1;
unsigned long sum0;
unsigned long sum1;
unsigned long k0;
unsigned long k1;
unsigned long sum0;
unsigned long sum1;
} adapt;
typedef struct {
long shift;
long round;
long error;
long mutex;
long qm[MAX_ORDER+1];
long dx[MAX_ORDER+1];
long dl[MAX_ORDER+1];
long shift;
long round;
long error;
long mutex;
long qm[MAX_ORDER+1];
long dx[MAX_ORDER+1];
long dl[MAX_ORDER+1];
} fltst;
typedef struct {
fltst fst;
adapt rice;
long last;
fltst fst;
adapt rice;
long last;
} decoder;
#endif /* TTADEC_H_ */

View file

@ -46,7 +46,7 @@ struct _GstVideodrop {
/* video state */
gboolean inited;
gfloat from_fps,
to_fps;
to_fps;
gfloat speed;
guint64 pass, total, time_adjust;
};

View file

@ -25,40 +25,40 @@
#include "gstcdplayer_ioctl.h"
#define GST_TYPE_CDPLAYER (cdplayer_get_type())
#define CDPLAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CDPLAYER,CDPlayer))
#define CDPLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CDPLAYER,CDPlayerClass))
#define GST_IS_CDPLAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CDPLAYER))
#define GST_IS_CDPLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CDPLAYER))
#define GST_TYPE_CDPLAYER (cdplayer_get_type())
#define CDPLAYER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CDPLAYER,CDPlayer))
#define CDPLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CDPLAYER,CDPlayerClass))
#define GST_IS_CDPLAYER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CDPLAYER))
#define GST_IS_CDPLAYER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CDPLAYER))
typedef struct _CDPlayer CDPlayer;
typedef struct _CDPlayerClass CDPlayerClass;
struct _CDPlayer {
GstBin element;
/* properties */
gchar *device;
gint num_tracks;
gint start_track;
gint end_track;
gint current_track;
guint32 cddb_discid;
GstBin element;
/* properties */
gchar *device;
gint num_tracks;
gint start_track;
gint end_track;
gint current_track;
guint32 cddb_discid;
/* private */
struct cd cd;
gboolean paused;
/* private */
struct cd cd;
gboolean paused;
};
struct _CDPlayerClass {
GstBinClass parent_class;
GstBinClass parent_class;
/* signal callbacks */
void (*track_change) (GstElement *element,guint track);
/* signal callbacks */
void (*track_change) (GstElement *element,guint track);
};
GType cdplayer_get_type(void);
#endif
#endif

View file

@ -51,14 +51,14 @@ irix cdaudio works quite a bit differently than ioctl(), so its not ready
#endif
/* these headers define low level functions:
gboolean cd_init(struct cd *cd,const gchar *device);
gboolean cd_start(struct cd *cd,gint start_track,gint end_track);
gboolean cd_pause(struct cd *cd);
gboolean cd_resume(struct cd *cd);
gboolean cd_stop(struct cd *cd);
CDStatus cd_status(struct cd *cd);
gint cd_current_track(struct cd *cd);
gboolean cd_close(struct cd *cd);
gboolean cd_init(struct cd *cd,const gchar *device);
gboolean cd_start(struct cd *cd,gint start_track,gint end_track);
gboolean cd_pause(struct cd *cd);
gboolean cd_resume(struct cd *cd);
gboolean cd_stop(struct cd *cd);
CDStatus cd_status(struct cd *cd);
gint cd_current_track(struct cd *cd);
gboolean cd_close(struct cd *cd);
*/
#if defined(HAVE_CDROM_SOLARIS)
#include "gstcdplayer_ioctl_solaris.h"

View file

@ -29,23 +29,23 @@
#define CDPLAYER_MAX_TRACKS 128
typedef enum {
CD_PLAYING,
CD_COMPLETED,
CD_ERROR
CD_PLAYING,
CD_COMPLETED,
CD_ERROR
} CDStatus;
struct cd_msf {
guint8 minute;
guint8 second;
guint8 frame;
guint8 minute;
guint8 second;
guint8 frame;
gboolean data_track;
gboolean data_track;
};
struct cd {
gint fd;
gint num_tracks;
struct cd_msf tracks[CDPLAYER_MAX_TRACKS];
gint fd;
gint num_tracks;
struct cd_msf tracks[CDPLAYER_MAX_TRACKS];
};

View file

@ -23,323 +23,323 @@
#endif
gboolean cd_init(struct cd *cd,const gchar *device)
{
struct ioc_toc_header toc_header;
struct ioc_read_toc_entry toc_entry;
struct cd_toc_entry toc_entry_data;
guint i;
struct ioc_toc_header toc_header;
struct ioc_read_toc_entry toc_entry;
struct cd_toc_entry toc_entry_data;
guint i;
cd->fd = open(device,O_RDONLY | O_NONBLOCK);
cd->fd = open(device,O_RDONLY | O_NONBLOCK);
if (cd->fd == -1) {
return FALSE;
}
if (cd->fd == -1) {
return FALSE;
}
/* get the toc header information */
if (ioctl(cd->fd,CDIOREADTOCHDR,&toc_header) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
/* get the toc header information */
if (ioctl(cd->fd,CDIOREADTOCHDR,&toc_header) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
/* read each entry in the toc header */
for (i = 1; i <= toc_header.ending_track; i++) {
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = i;
toc_entry.data = &toc_entry_data;
toc_entry.data_len = sizeof(toc_entry_data);
/* read each entry in the toc header */
for (i = 1; i <= toc_header.ending_track; i++) {
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = i;
toc_entry.data = &toc_entry_data;
toc_entry.data_len = sizeof(toc_entry_data);
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
cd->tracks[i].minute = toc_entry.data->addr.msf.minute;
cd->tracks[i].second = toc_entry.data->addr.msf.second;
cd->tracks[i].frame = toc_entry.data->addr.msf.frame;
cd->tracks[i].data_track = (toc_entry.data->control & 4) == 4;
}
cd->tracks[i].minute = toc_entry.data->addr.msf.minute;
cd->tracks[i].second = toc_entry.data->addr.msf.second;
cd->tracks[i].frame = toc_entry.data->addr.msf.frame;
cd->tracks[i].data_track = (toc_entry.data->control & 4) == 4;
}
/* read the leadout */
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = 0xAA; /* leadout */
toc_entry.data = &toc_entry_data;
toc_entry.data_len = sizeof(toc_entry_data);
/* read the leadout */
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = 0xAA; /* leadout */
toc_entry.data = &toc_entry_data;
toc_entry.data_len = sizeof(toc_entry_data);
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
cd->tracks[LEADOUT].minute = toc_entry.data->addr.msf.minute;
cd->tracks[LEADOUT].second = toc_entry.data->addr.msf.second;
cd->tracks[LEADOUT].frame = toc_entry.data->addr.msf.frame;
cd->tracks[LEADOUT].minute = toc_entry.data->addr.msf.minute;
cd->tracks[LEADOUT].second = toc_entry.data->addr.msf.second;
cd->tracks[LEADOUT].frame = toc_entry.data->addr.msf.frame;
cd->num_tracks = toc_header.ending_track;
cd->num_tracks = toc_header.ending_track;
return TRUE;
return TRUE;
}
#elif defined HAVE_CDROM_BSD_DARWIN
gboolean cd_init(struct cd *cd,const gchar *device)
{
struct ioc_toc_header toc_header;
struct ioc_read_toc_entry toc_entry;
guint i;
struct ioc_toc_header toc_header;
struct ioc_read_toc_entry toc_entry;
guint i;
cd->fd = open(device,O_RDONLY | O_NONBLOCK);
cd->fd = open(device,O_RDONLY | O_NONBLOCK);
if (cd->fd == -1) {
return FALSE;
}
if (cd->fd == -1) {
return FALSE;
}
/* get the toc header information */
if (ioctl(cd->fd,CDIOREADTOCHDR,&toc_header) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
/* get the toc header information */
if (ioctl(cd->fd,CDIOREADTOCHDR,&toc_header) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
/* read each entry in the toc header */
for (i = 1; i <= toc_header.ending_track; i++) {
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = i;
/* read each entry in the toc header */
for (i = 1; i <= toc_header.ending_track; i++) {
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = i;
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
cd->tracks[i].minute = toc_entry.data->addr[1];
cd->tracks[i].second = toc_entry.data->addr[2];
cd->tracks[i].frame = toc_entry.data->addr[3];
cd->tracks[i].data_track = (toc_entry.data->control & 4) == 4;
}
cd->tracks[i].minute = toc_entry.data->addr[1];
cd->tracks[i].second = toc_entry.data->addr[2];
cd->tracks[i].frame = toc_entry.data->addr[3];
cd->tracks[i].data_track = (toc_entry.data->control & 4) == 4;
}
/* read the leadout */
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = 0xAA; /* leadout */
toc_entry.data = &toc_entry_data;
toc_entry.data_len = sizeof(toc_entry_data);
/* read the leadout */
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = 0xAA; /* leadout */
toc_entry.data = &toc_entry_data;
toc_entry.data_len = sizeof(toc_entry_data);
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
cd->tracks[LEADOUT].minute = toc_entry.data->addr[1];
cd->tracks[LEADOUT].second = toc_entry.data->addr[2];
cd->tracks[LEADOUT].frame = toc_entry.data->addr[3];
cd->tracks[LEADOUT].minute = toc_entry.data->addr[1];
cd->tracks[LEADOUT].second = toc_entry.data->addr[2];
cd->tracks[LEADOUT].frame = toc_entry.data->addr[3];
cd->num_tracks = toc_header.ending_track;
cd->num_tracks = toc_header.ending_track;
return TRUE;
return TRUE;
}
#else /* free */
gboolean cd_init(struct cd *cd,const gchar *device)
{
struct ioc_toc_header toc_header;
struct ioc_read_toc_entry toc_entry;
guint i;
struct ioc_toc_header toc_header;
struct ioc_read_toc_entry toc_entry;
guint i;
cd->fd = open(device,O_RDONLY | O_NONBLOCK);
cd->fd = open(device,O_RDONLY | O_NONBLOCK);
if (cd->fd == -1) {
return FALSE;
}
if (cd->fd == -1) {
return FALSE;
}
/* get the toc header information */
if (ioctl(cd->fd,CDIOREADTOCHDR,&toc_header) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
/* get the toc header information */
if (ioctl(cd->fd,CDIOREADTOCHDR,&toc_header) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
/* read each entry in the toc header */
for (i = 1; i <= toc_header.ending_track; i++) {
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = i;
/* read each entry in the toc header */
for (i = 1; i <= toc_header.ending_track; i++) {
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = i;
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
cd->tracks[i].minute = toc_entry.entry.addr.msf.minute;
cd->tracks[i].second = toc_entry.entry.addr.msf.second;
cd->tracks[i].frame = toc_entry.entry.addr.msf.frame;
cd->tracks[i].data_track = (toc_entry.data->control & 4) == 4;
}
cd->tracks[i].minute = toc_entry.entry.addr.msf.minute;
cd->tracks[i].second = toc_entry.entry.addr.msf.second;
cd->tracks[i].frame = toc_entry.entry.addr.msf.frame;
cd->tracks[i].data_track = (toc_entry.data->control & 4) == 4;
}
/* read the leadout */
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = 0xAA; /* leadout */
toc_entry.data = &toc_entry_data;
toc_entry.data_len = sizeof(toc_entry_data);
/* read the leadout */
toc_entry.address_format = CD_MSF_FORMAT;
toc_entry.starting_track = 0xAA; /* leadout */
toc_entry.data = &toc_entry_data;
toc_entry.data_len = sizeof(toc_entry_data);
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
if (ioctl(cd->fd,CDIOREADTOCENTRYS,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
cd->tracks[LEADOUT].minute = toc_entry.entry.addr.msf.minute;
cd->tracks[LEADOUT].second = toc_entry.entry.addr.msf.second;
cd->tracks[LEADOUT].frame = toc_entry.entry.addr.msf.frame;
cd->tracks[LEADOUT].minute = toc_entry.entry.addr.msf.minute;
cd->tracks[LEADOUT].second = toc_entry.entry.addr.msf.second;
cd->tracks[LEADOUT].frame = toc_entry.entry.addr.msf.frame;
cd->num_tracks = toc_header.ending_track;
cd->num_tracks = toc_header.ending_track;
return TRUE;
return TRUE;
}
#endif
gboolean cd_start(struct cd *cd,gint start_track,gint end_track)
{
struct ioc_play_msf msf;
struct ioc_play_msf msf;
if (cd->fd == -1) {
return FALSE;
}
if (cd->fd == -1) {
return FALSE;
}
cd_fix_track_range(cd,&start_track,&end_track);
cd_fix_track_range(cd,&start_track,&end_track);
msf.start_m = cd->tracks[start_track].minute;
msf.start_s = cd->tracks[start_track].second;
msf.start_f = cd->tracks[start_track].frame;
msf.start_m = cd->tracks[start_track].minute;
msf.start_s = cd->tracks[start_track].second;
msf.start_f = cd->tracks[start_track].frame;
if (end_track == LEADOUT) {
msf.end_m = cd->tracks[end_track].minute;
msf.end_s = cd->tracks[end_track].second;
msf.end_f = cd->tracks[end_track].frame;
} else {
msf.end_m = cd->tracks[end_track+1].minute;
msf.end_s = cd->tracks[end_track+1].second;
msf.end_f = cd->tracks[end_track+1].frame;
}
if (end_track == LEADOUT) {
msf.end_m = cd->tracks[end_track].minute;
msf.end_s = cd->tracks[end_track].second;
msf.end_f = cd->tracks[end_track].frame;
} else {
msf.end_m = cd->tracks[end_track+1].minute;
msf.end_s = cd->tracks[end_track+1].second;
msf.end_f = cd->tracks[end_track+1].frame;
}
if (ioctl(cd->fd,CDIOCPLAYMSF,&msf) != 0) {
return FALSE;
}
if (ioctl(cd->fd,CDIOCPLAYMSF,&msf) != 0) {
return FALSE;
}
}
gboolean cd_pause(struct cd *cd)
{
if (cd->fd == -1) {
return FALSE;
}
if (cd->fd == -1) {
return FALSE;
}
if (ioctl(cd->fd,CDIOCPAUSE,NULL) != 0) {
return FALSE;
}
if (ioctl(cd->fd,CDIOCPAUSE,NULL) != 0) {
return FALSE;
}
return TRUE;
return TRUE;
}
gboolean cd_resume(struct cd *cd)
{
if (cd->fd == -1) {
return FALSE;
}
if (cd->fd == -1) {
return FALSE;
}
if (ioctl(cd->fd,CDIOCRESUME,NULL) != 0) {
return FALSE;
}
if (ioctl(cd->fd,CDIOCRESUME,NULL) != 0) {
return FALSE;
}
return TRUE;
return TRUE;
}
gboolean cd_stop(struct cd *cd)
{
if (cd->fd == -1) {
return FALSE;
}
if (cd->fd == -1) {
return FALSE;
}
if (ioctl(cd->fd,CDIOCSTOP,NULL) != 0) {
return FALSE;
}
if (ioctl(cd->fd,CDIOCSTOP,NULL) != 0) {
return FALSE;
}
return TRUE;
return TRUE;
}
/* -1 for error, 0 for not playing, 1 for playing */
CDStatus cd_status(struct cd *cd)
{
struct ioc_read_subchannel sub_channel;
struct cd_sub_channel_info sub_channel_info;
struct ioc_read_subchannel sub_channel;
struct cd_sub_channel_info sub_channel_info;
if (cd->fd == -1) {
return -1;
}
if (cd->fd == -1) {
return -1;
}
sub_channel.address_format = CD_MSF_FORMAT;
sub_channel.data_format = CD_CURRENT_POSITION;
sub_channel.track = 0;
sub_channel.data = &sub_channel_info;
sub_channel.data_len = sizeof(sub_channel_info);
sub_channel.address_format = CD_MSF_FORMAT;
sub_channel.data_format = CD_CURRENT_POSITION;
sub_channel.track = 0;
sub_channel.data = &sub_channel_info;
sub_channel.data_len = sizeof(sub_channel_info);
if (ioctl(cd->fd,CDIOCREADSUBCHANNEL,&sub_channel) != 0) {
return FALSE;
}
if (ioctl(cd->fd,CDIOCREADSUBCHANNEL,&sub_channel) != 0) {
return FALSE;
}
switch (sub_channel.data->header.audio_status) {
case CD_AS_PLAY_IN_PROGRESS:
case CD_AS_PLAY_PAUSED:
return CD_PLAYING;
break;
case CD_AS_PLAY_COMPLETED:
return CD_COMPLETED;
break;
case CD_AS_AUDIO_INVALID:
case CD_AS_PLAY_ERROR:
default:
return CD_ERROR;
break;
switch (sub_channel.data->header.audio_status) {
case CD_AS_PLAY_IN_PROGRESS:
case CD_AS_PLAY_PAUSED:
return CD_PLAYING;
break;
case CD_AS_PLAY_COMPLETED:
return CD_COMPLETED;
break;
case CD_AS_AUDIO_INVALID:
case CD_AS_PLAY_ERROR:
default:
return CD_ERROR;
break;
}
}
}
gint cd_current_track(struct cd *cd)
{
struct ioc_read_subchannel sub_channel;
struct cd_sub_channel_info sub_channel_info;
struct ioc_read_subchannel sub_channel;
struct cd_sub_channel_info sub_channel_info;
if (cd->fd == -1) {
return -1;
}
if (cd->fd == -1) {
return -1;
}
sub_channel.address_format = CD_MSF_FORMAT;
sub_channel.data_format = CD_TRACK_INFO;
sub_channel.track = 0;
sub_channel.data = &sub_channel_info;
sub_channel.data_len = sizeof(sub_channel_info);
sub_channel.address_format = CD_MSF_FORMAT;
sub_channel.data_format = CD_TRACK_INFO;
sub_channel.track = 0;
sub_channel.data = &sub_channel_info;
sub_channel.data_len = sizeof(sub_channel_info);
if (ioctl(cd->fd,CDIOCREADSUBCHANNEL,&sub_channel) != 0) {
return -1;
}
if (ioctl(cd->fd,CDIOCREADSUBCHANNEL,&sub_channel) != 0) {
return -1;
}
#ifdef __NetBSD__
return sub_channel.data->what.track_info.track_number;
return sub_channel.data->what.track_info.track_number;
#else
return sub_channel.data->track_number;
return sub_channel.data->track_number;
#endif
}
gboolean cd_close(struct cd *cd)
{
if (cd->fd == -1) {
return TRUE;
}
if (cd->fd == -1) {
return TRUE;
}
if (close(cd->fd) != 0) {
return FALSE;
}
if (close(cd->fd) != 0) {
return FALSE;
}
cd->fd = -1;
cd->fd = -1;
return TRUE;
return TRUE;
}

View file

@ -24,55 +24,55 @@
gboolean cd_init(struct cd *cd,const gchar *device)
{
CDPLAYER *cdplayer;
CDSTATUS status;
CDTRACKINFO info;
guint i;
CDPLAYER *cdplayer;
CDSTATUS status;
CDTRACKINFO info;
guint i;
cdplayer = CDOpen(device,"r");
cdplayer = CDOpen(device,"r");
if (cdplayer == NULL) {
return FALSE;
}
if (cdplayer == NULL) {
return FALSE;
}
cd->fd = FD(cdplayer);
cd->fd = FD(cdplayer);
if (CDgetstatus(cdplayer,&status) == 0) {
CDclose(cdplayer);
cd->fd = 0;
return FALSE;
}
if (CDgetstatus(cdplayer,&status) == 0) {
CDclose(cdplayer);
cd->fd = 0;
return FALSE;
}
for (i = 1; i < status.last; i++) {
if (CDgettrackinfo(cdplayer,i,&info) == 0) {
CDclose(cdplayer);
cd->fd = 0;
return FALSE;
}
for (i = 1; i < status.last; i++) {
if (CDgettrackinfo(cdplayer,i,&info) == 0) {
CDclose(cdplayer);
cd->fd = 0;
return FALSE;
}
cd->tracks[i].minute = info.start_min;
cd->tracks[i].second = info.start_sec;
cd->tracks[i].frame = info.start_frame;
cd->tracks[i].minute = info.start_min;
cd->tracks[i].second = info.start_sec;
cd->tracks[i].frame = info.start_frame;
}
}
/* there is no leadout information */
/* there is no leadout information */
cd->num_tracks = status.last;
cd->num_tracks = status.last;
return TRUE;
return TRUE;
}
gboolean cd_start(struct cd *cd,gint start_track,gint end_track)
{
if (cd->fd == 0) {
return FALSE;
}
if (cd->fd == 0) {
return FALSE;
}
cd_fix_track_range(cd,&start_track,&end_track);
cd_fix_track_range(cd,&start_track,&end_track);
}

View file

@ -19,186 +19,186 @@
gboolean cd_init(struct cd *cd,const gchar *device)
{
struct cdrom_tochdr toc_header;
struct cdrom_tocentry toc_entry;
guint i;
struct cdrom_tochdr toc_header;
struct cdrom_tocentry toc_entry;
guint i;
cd->fd = open(device,O_RDONLY | O_NONBLOCK);
cd->fd = open(device,O_RDONLY | O_NONBLOCK);
if (cd->fd == -1) {
return FALSE;
}
if (cd->fd == -1) {
return FALSE;
}
/* get the toc header information */
if (ioctl(cd->fd,CDROMREADTOCHDR,&toc_header) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
/* get the toc header information */
if (ioctl(cd->fd,CDROMREADTOCHDR,&toc_header) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
/* read each entry in the toc header */
for (i = 1; i <= toc_header.cdth_trk1; i++) {
toc_entry.cdte_format = CDROM_MSF;
toc_entry.cdte_track = i;
/* read each entry in the toc header */
for (i = 1; i <= toc_header.cdth_trk1; i++) {
toc_entry.cdte_format = CDROM_MSF;
toc_entry.cdte_track = i;
if (ioctl(cd->fd,CDROMREADTOCENTRY,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
if (ioctl(cd->fd,CDROMREADTOCENTRY,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
cd->tracks[i].minute = toc_entry.cdte_addr.msf.minute;
cd->tracks[i].second = toc_entry.cdte_addr.msf.second;
cd->tracks[i].frame = toc_entry.cdte_addr.msf.frame;
cd->tracks[i].data_track = (toc_entry.cdte_ctrl == CDROM_DATA_TRACK);
}
cd->tracks[i].minute = toc_entry.cdte_addr.msf.minute;
cd->tracks[i].second = toc_entry.cdte_addr.msf.second;
cd->tracks[i].frame = toc_entry.cdte_addr.msf.frame;
cd->tracks[i].data_track = (toc_entry.cdte_ctrl == CDROM_DATA_TRACK);
}
/* read the leadout */
toc_entry.cdte_track = CDROM_LEADOUT;
toc_entry.cdte_format = CDROM_MSF;
if (ioctl(cd->fd,CDROMREADTOCENTRY,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
cd->tracks[LEADOUT].minute = toc_entry.cdte_addr.msf.minute;
cd->tracks[LEADOUT].second = toc_entry.cdte_addr.msf.second;
cd->tracks[LEADOUT].frame = toc_entry.cdte_addr.msf.frame;
/* read the leadout */
toc_entry.cdte_track = CDROM_LEADOUT;
toc_entry.cdte_format = CDROM_MSF;
if (ioctl(cd->fd,CDROMREADTOCENTRY,&toc_entry) != 0) {
close(cd->fd);
cd->fd = -1;
return FALSE;
}
cd->tracks[LEADOUT].minute = toc_entry.cdte_addr.msf.minute;
cd->tracks[LEADOUT].second = toc_entry.cdte_addr.msf.second;
cd->tracks[LEADOUT].frame = toc_entry.cdte_addr.msf.frame;
cd->num_tracks = toc_header.cdth_trk1;
cd->num_tracks = toc_header.cdth_trk1;
return TRUE;
return TRUE;
}
gboolean cd_start(struct cd *cd,gint start_track,gint end_track)
{
struct cdrom_msf msf;
struct cdrom_msf msf;
if (cd->fd == -1) {
return FALSE;
}
if (cd->fd == -1) {
return FALSE;
}
cd_fix_track_range(cd,&start_track,&end_track);
cd_fix_track_range(cd,&start_track,&end_track);
msf.cdmsf_min0 = cd->tracks[start_track].minute;
msf.cdmsf_sec0 = cd->tracks[start_track].second;
msf.cdmsf_frame0 = cd->tracks[start_track].frame;
msf.cdmsf_min0 = cd->tracks[start_track].minute;
msf.cdmsf_sec0 = cd->tracks[start_track].second;
msf.cdmsf_frame0 = cd->tracks[start_track].frame;
if (end_track == LEADOUT) {
msf.cdmsf_min1 = cd->tracks[end_track].minute;
msf.cdmsf_sec1 = cd->tracks[end_track].second;
msf.cdmsf_frame1 = cd->tracks[end_track].frame;
} else {
msf.cdmsf_min1 = cd->tracks[end_track+1].minute;
msf.cdmsf_sec1 = cd->tracks[end_track+1].second;
msf.cdmsf_frame1 = cd->tracks[end_track+1].frame;
}
if (end_track == LEADOUT) {
msf.cdmsf_min1 = cd->tracks[end_track].minute;
msf.cdmsf_sec1 = cd->tracks[end_track].second;
msf.cdmsf_frame1 = cd->tracks[end_track].frame;
} else {
msf.cdmsf_min1 = cd->tracks[end_track+1].minute;
msf.cdmsf_sec1 = cd->tracks[end_track+1].second;
msf.cdmsf_frame1 = cd->tracks[end_track+1].frame;
}
if (ioctl(cd->fd,CDROMPLAYMSF,&msf) != 0) {
return FALSE;
}
if (ioctl(cd->fd,CDROMPLAYMSF,&msf) != 0) {
return FALSE;
}
return TRUE;
return TRUE;
}
gboolean cd_pause(struct cd *cd)
{
if (cd->fd == -1) {
return FALSE;
}
if (cd->fd == -1) {
return FALSE;
}
if (ioctl(cd->fd,CDROMPAUSE,NULL) != 0) {
return FALSE;
}
if (ioctl(cd->fd,CDROMPAUSE,NULL) != 0) {
return FALSE;
}
return TRUE;
return TRUE;
}
gboolean cd_resume(struct cd *cd)
{
if (cd->fd == -1) {
return FALSE;
}
if (cd->fd == -1) {
return FALSE;
}
if (ioctl(cd->fd,CDROMRESUME,NULL) != 0) {
return FALSE;
}
if (ioctl(cd->fd,CDROMRESUME,NULL) != 0) {
return FALSE;
}
return TRUE;
return TRUE;
}
gboolean cd_stop(struct cd *cd)
{
if (cd->fd == -1) {
return FALSE;
}
if (cd->fd == -1) {
return FALSE;
}
if (ioctl(cd->fd,CDROMSTOP,NULL) != 0) {
return FALSE;
}
if (ioctl(cd->fd,CDROMSTOP,NULL) != 0) {
return FALSE;
}
return TRUE;
return TRUE;
}
/* -1 for error, 0 for not playing, 1 for playing */
CDStatus cd_status(struct cd *cd)
{
struct cdrom_subchnl sub_channel;
struct cdrom_subchnl sub_channel;
if (cd->fd == -1) {
return -1;
}
if (cd->fd == -1) {
return -1;
}
sub_channel.cdsc_format = CDROM_MSF;
sub_channel.cdsc_format = CDROM_MSF;
if (ioctl(cd->fd,CDROMSUBCHNL,&sub_channel) != 0) {
return -1;
}
if (ioctl(cd->fd,CDROMSUBCHNL,&sub_channel) != 0) {
return -1;
}
switch (sub_channel.cdsc_audiostatus) {
case CDROM_AUDIO_COMPLETED:
return CD_COMPLETED;
break;
case CDROM_AUDIO_PLAY:
case CDROM_AUDIO_PAUSED:
return CD_PLAYING;
break;
case CDROM_AUDIO_ERROR:
default:
return CD_ERROR;
}
switch (sub_channel.cdsc_audiostatus) {
case CDROM_AUDIO_COMPLETED:
return CD_COMPLETED;
break;
case CDROM_AUDIO_PLAY:
case CDROM_AUDIO_PAUSED:
return CD_PLAYING;
break;
case CDROM_AUDIO_ERROR:
default:
return CD_ERROR;
}
}
gint cd_current_track(struct cd *cd)
{
struct cdrom_subchnl sub_channel;
struct cdrom_subchnl sub_channel;
if (cd->fd == -1) {
return -1;
}
if (cd->fd == -1) {
return -1;
}
sub_channel.cdsc_format = CDROM_MSF;
sub_channel.cdsc_format = CDROM_MSF;
if (ioctl(cd->fd,CDROMSUBCHNL,&sub_channel) != 0) {
return -1;
}
if (ioctl(cd->fd,CDROMSUBCHNL,&sub_channel) != 0) {
return -1;
}
return sub_channel.cdsc_trk;
return sub_channel.cdsc_trk;
}
gboolean cd_close(struct cd *cd)
{
if (cd->fd == -1) {
return TRUE;
}
if (cd->fd == -1) {
return TRUE;
}
if (close(cd->fd) != 0) {
return FALSE;
}
if (close(cd->fd) != 0) {
return FALSE;
}
cd->fd = -1;
cd->fd = -1;
return TRUE;
return TRUE;
}

View file

@ -113,9 +113,9 @@ static gboolean dxr3audiosink_handle_event (GstPad * pad, GstEvent * event);
static void dxr3audiosink_chain_pcm (GstPad * pad, GstData * buf);
static void dxr3audiosink_chain_ac3 (GstPad * pad, GstData * buf);
/* static void dxr3audiosink_wait (Dxr3AudioSink *sink, */
/* static void dxr3audiosink_wait (Dxr3AudioSink *sink, */
/* GstClockTime time); */
/* static int dxr3audiosink_mvcommand (Dxr3AudioSink *sink, */
/* static int dxr3audiosink_mvcommand (Dxr3AudioSink *sink, */
/* int command); */
static GstStateChangeReturn dxr3audiosink_change_state (GstElement * element,

View file

@ -93,7 +93,7 @@ struct _Dxr3AudioSink {
ac3_padder *padder; /* AC3 to SPDIF padder object. */
GstClock *clock; /* The clock for this element. */
GstClock *clock; /* The clock for this element. */
};
@ -105,8 +105,8 @@ struct _Dxr3AudioSinkClass {
};
extern GType dxr3audiosink_get_type (void);
extern gboolean dxr3audiosink_factory_init (GstPlugin *plugin);
extern GType dxr3audiosink_get_type (void);
extern gboolean dxr3audiosink_factory_init (GstPlugin *plugin);
G_END_DECLS

View file

@ -90,7 +90,7 @@ static void dxr3spusink_chain (GstPad * pad, GstData * _data);
static GstStateChangeReturn dxr3spusink_change_state (GstElement * element,
GstStateChange transition);
/* static void dxr3spusink_wait (Dxr3SpuSink *sink, */
/* static void dxr3spusink_wait (Dxr3SpuSink *sink, */
/* GstClockTime time); */
static void dxr3spusink_set_clut (Dxr3SpuSink * sink, const guint32 * clut);

View file

@ -52,16 +52,16 @@ typedef enum {
struct _Dxr3SpuSink {
GstElement element;
int card_number; /* The number of the card to open. */
int card_number; /* The number of the card to open. */
gchar *spu_filename; /* File name for the spu device. */
int spu_fd; /* File descriptor for the spu device. */
gchar *spu_filename; /* File name for the spu device. */
int spu_fd; /* File descriptor for the spu device. */
gchar *control_filename; /* File name for the control device. */
int control_fd; /* File descriptor for the control
gchar *control_filename; /* File name for the control device. */
int control_fd; /* File descriptor for the control
device. */
GstClock *clock; /* The clock for this element. */
GstClock *clock; /* The clock for this element. */
};
@ -79,8 +79,8 @@ struct _Dxr3SpuSinkClass {
};
extern GType dxr3spusink_get_type (void);
extern gboolean dxr3spusink_factory_init (GstPlugin *plugin);
extern GType dxr3spusink_get_type (void);
extern gboolean dxr3spusink_factory_init (GstPlugin *plugin);
G_END_DECLS

View file

@ -120,7 +120,7 @@ static void dxr3videosink_chain (GstPad * pad, GstData * _data);
static GstStateChangeReturn dxr3videosink_change_state (GstElement * element,
GstStateChange transition);
/* static void dxr3videosink_wait (Dxr3VideoSink *sink, */
/* static void dxr3videosink_wait (Dxr3VideoSink *sink, */
/* GstClockTime time); */
static int dxr3videosink_mvcommand (Dxr3VideoSink * sink, int command);

View file

@ -52,31 +52,31 @@ typedef enum {
struct _Dxr3VideoSink {
GstElement element;
int card_number; /* The number of the card to open. */
int card_number; /* The number of the card to open. */
gchar *video_filename; /* File name for the video device. */
int video_fd; /* File descriptor for the video device. */
gchar *video_filename; /* File name for the video device. */
int video_fd; /* File descriptor for the video device. */
gchar *control_filename; /* File name for the control device. */
int control_fd; /* File descriptor for the control
gchar *control_filename; /* File name for the control device. */
int control_fd; /* File descriptor for the control
device. */
GstClock *clock; /* The clock for this element. */
GstClock *clock; /* The clock for this element. */
GstClockTime last_ts; /* Last timestamp received. */
GstClockTime last_ts; /* Last timestamp received. */
GstBuffer *cur_buf; /* The buffer we are currently
GstBuffer *cur_buf; /* The buffer we are currently
building. */
GstClockTime cur_ts; /* Timestamp associated to the
GstClockTime cur_ts; /* Timestamp associated to the
current buffer. */
guchar scan_state; /* The current state of the MPEG start
guchar scan_state; /* The current state of the MPEG start
code scanner. */
guint scan_pos; /* The current position of the MPEG
guint scan_pos; /* The current position of the MPEG
start code scanner (with respect to
the start of the current buffer. */
guchar parse_state; /* The current state of the MPEG
guchar parse_state; /* The current state of the MPEG
sequence parser. */
};
@ -89,8 +89,8 @@ struct _Dxr3VideoSinkClass {
};
extern GType dxr3videosink_get_type (void);
extern gboolean dxr3videosink_factory_init (GstPlugin *plugin);
extern GType dxr3videosink_get_type (void);
extern gboolean dxr3videosink_factory_init (GstPlugin *plugin);
G_END_DECLS

View file

@ -25,17 +25,17 @@ OTHER DEALINGS IN THE SOFTWARE.
******************************************************************/
/* Fixdark
Routine to repair dark current artifacts in qcam output.
Basic idea: the Qcam CCD suffers from "dark current";
that is, some of the CCD pixels will leak current under
long exposures, even if they're in the dark, and this
shows up as ugly speckling on images taken in low light.
Routine to repair dark current artifacts in qcam output.
Basic idea: the Qcam CCD suffers from "dark current";
that is, some of the CCD pixels will leak current under
long exposures, even if they're in the dark, and this
shows up as ugly speckling on images taken in low light.
Fortunately, the leaky pixels are the same from shot to
shot. So, we can figure out which pixels are leaky by
taking some establishing shots in the dark, and try to
fix those pixels on subsequent shots. The dark
establishing shots need only be done once per camera.
Fortunately, the leaky pixels are the same from shot to
shot. So, we can figure out which pixels are leaky by
taking some establishing shots in the dark, and try to
fix those pixels on subsequent shots. The dark
establishing shots need only be done once per camera.
*/
#ifdef HAVE_CONFIG_H
@ -77,7 +77,7 @@ read_darkmask()
}
if (fread(master_darkmask1, sizeof(unsigned char), MAX_WIDTH*MAX_HEIGHT, fp) !=
MAX_WIDTH*MAX_HEIGHT) {
MAX_WIDTH*MAX_HEIGHT) {
#ifdef DEBUG
fprintf(stderr, "Error reading darkfile\n");
#endif
@ -88,14 +88,14 @@ read_darkmask()
for (x = 0; x < MAX_WIDTH; x += 2) {
min_bright = master_darkmask1[y][x];
if (y < MAX_HEIGHT-1 && master_darkmask1[y+1][x] < min_bright)
min_bright = master_darkmask1[y+1][x];
min_bright = master_darkmask1[y+1][x];
if (x < MAX_WIDTH-1 && master_darkmask1[y][x+1] < min_bright)
min_bright = master_darkmask1[y][x+1];
min_bright = master_darkmask1[y][x+1];
if (y < MAX_HEIGHT-1 && x < MAX_WIDTH-1 && master_darkmask1[y+1][x+1] < min_bright)
min_bright = master_darkmask1[y+1][x+1];
min_bright = master_darkmask1[y+1][x+1];
master_darkmask2[y/2][x/2] = min_bright;
assert(y/2 < MAX_HEIGHT/2+1);
assert(x/2 < MAX_WIDTH/2+1);
assert(y/2 < MAX_HEIGHT/2+1);
assert(x/2 < MAX_WIDTH/2+1);
}
}
@ -103,14 +103,14 @@ read_darkmask()
for (x = 0; x < MAX_WIDTH/2; x += 2) {
min_bright = master_darkmask2[y][x];
if (y < MAX_HEIGHT/2-1 && master_darkmask2[y+1][x] < min_bright)
min_bright = master_darkmask2[y+1][x];
min_bright = master_darkmask2[y+1][x];
if (x < MAX_WIDTH/2-1 && master_darkmask2[y][x+1] < min_bright)
min_bright = master_darkmask2[y][x+1];
min_bright = master_darkmask2[y][x+1];
if (y < MAX_HEIGHT/2-1 && x < MAX_WIDTH-1 && master_darkmask2[y+1][x+1] < min_bright)
min_bright = master_darkmask2[y+1][x+1];
min_bright = master_darkmask2[y+1][x+1];
master_darkmask4[y/2][x/2] = min_bright;
assert(y/2 < MAX_HEIGHT/4+1);
assert(x/2 < MAX_WIDTH/4+1);
assert(y/2 < MAX_HEIGHT/4+1);
assert(x/2 < MAX_WIDTH/4+1);
}
}
@ -121,15 +121,15 @@ read_darkmask()
/* fixdark
We first record a list of bad leaky pixels, by making a
number of exposures in the dark. master_darkmask holds
this information. It's a map of the CCD.
master_darkmask[y][x] == val means that the pixel is
unreliable for brightnesses of "val" and above.
We first record a list of bad leaky pixels, by making a
number of exposures in the dark. master_darkmask holds
this information. It's a map of the CCD.
master_darkmask[y][x] == val means that the pixel is
unreliable for brightnesses of "val" and above.
We go over the image. If a pixel is bad, look at the
adjacent four pixels, average the ones that have good
values, and use that instead.
We go over the image. If a pixel is bad, look at the
adjacent four pixels, average the ones that have good
values, and use that instead.
*/
int

View file

@ -40,19 +40,19 @@ GST_ELEMENT_DETAILS ("QCam Source",
"Read from a QuickCam device",
"Wim Taymans <wim.taymans@chello.be>");
#define AE_NONE 3
#define AE_NONE 3
#define DEF_WIDTH 320
#define DEF_HEIGHT 224
#define DEF_BRIGHTNESS 226
#define DEF_WHITEBAL 128
#define DEF_CONTRAST 72
#define DEF_TOP 1
#define DEF_LEFT 14
#define DEF_TRANSFER_SCALE 2
#define DEF_DEPTH 6
#define DEF_PORT 0x378
#define DEF_AUTOEXP AE_NONE
#define DEF_WIDTH 320
#define DEF_HEIGHT 224
#define DEF_BRIGHTNESS 226
#define DEF_WHITEBAL 128
#define DEF_CONTRAST 72
#define DEF_TOP 1
#define DEF_LEFT 14
#define DEF_TRANSFER_SCALE 2
#define DEF_DEPTH 6
#define DEF_PORT 0x378
#define DEF_AUTOEXP AE_NONE
static GstStaticPadTemplate gst_qcamsrc_src_factory =
GST_STATIC_PAD_TEMPLATE ("src",

View file

@ -32,10 +32,10 @@ G_BEGIN_DECLS
(gst_v4l2_color_balance_channel_get_type ())
#define GST_V4L2_COLOR_BALANCE_CHANNEL(obj) \
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_V4L2_COLOR_BALANCE_CHANNEL, \
GstV4l2ColorBalanceChannel))
GstV4l2ColorBalanceChannel))
#define GST_V4L2_COLOR_BALANCE_CHANNEL_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_V4L2_COLOR_BALANCE_CHANNEL, \
GstV4l2ColorBalanceChannelClass))
GstV4l2ColorBalanceChannelClass))
#define GST_IS_V4L2_COLOR_BALANCE_CHANNEL(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_V4L2_COLOR_BALANCE_CHANNEL))
#define GST_IS_V4L2_COLOR_BALANCE_CHANNEL_CLASS(klass) \
@ -51,8 +51,8 @@ typedef struct _GstV4l2ColorBalanceChannelClass {
GstColorBalanceChannelClass parent;
} 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__ */

View file

@ -50,87 +50,87 @@
#ifdef GST_V4L2_MISSING_BUFDECL
struct v4l2_buffer
{
__u32 index;
enum v4l2_buf_type type;
__u32 bytesused;
__u32 flags;
enum v4l2_field field;
struct timeval timestamp;
struct v4l2_timecode timecode;
__u32 sequence;
__u32 index;
enum v4l2_buf_type type;
__u32 bytesused;
__u32 flags;
enum v4l2_field field;
struct timeval timestamp;
struct v4l2_timecode timecode;
__u32 sequence;
/* memory location */
enum v4l2_memory memory;
union {
__u32 offset;
unsigned long userptr;
} m;
__u32 length;
/* memory location */
enum v4l2_memory memory;
union {
__u32 offset;
unsigned long userptr;
} m;
__u32 length;
__u32 reserved[2];
__u32 reserved[2];
};
#endif /* GST_V4L2_MISSING_BUFDECL */
#define GST_TYPE_V4L2ELEMENT \
(gst_v4l2element_get_type())
(gst_v4l2element_get_type())
#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) \
(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) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_V4L2ELEMENT))
(G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_V4L2ELEMENT))
#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) \
(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 _GstV4l2ElementClass GstV4l2ElementClass;
typedef struct _GstV4l2Xv GstV4l2Xv;
typedef struct _GstV4l2Element GstV4l2Element;
typedef struct _GstV4l2ElementClass GstV4l2ElementClass;
typedef struct _GstV4l2Xv GstV4l2Xv;
struct _GstV4l2Element {
GstElement element;
GstElement element;
/* the video device */
char *device;
/* the video device */
char *device;
/* the video-device's file descriptor */
gint video_fd;
/* the video-device's file descriptor */
gint video_fd;
/* the video buffer (mmap()'ed) */
guint8 **buffer;
/* the video buffer (mmap()'ed) */
guint8 **buffer;
/* the video-device's capabilities */
struct v4l2_capability vcap;
/* the video-device's capabilities */
struct v4l2_capability vcap;
/* the toys available to us */
GList *channels;
GList *norms;
GList *colors;
/* the toys available to us */
GList *channels;
GList *norms;
GList *colors;
/* X-overlay */
GstV4l2Xv *xv;
XID xwindow_id;
/* X-overlay */
GstV4l2Xv *xv;
XID xwindow_id;
/* properties */
gchar *norm;
gchar *channel;
gulong frequency;
/* properties */
gchar *norm;
gchar *channel;
gulong frequency;
};
struct _GstV4l2ElementClass {
GstElementClass parent_class;
GstElementClass parent_class;
/* probed devices */
GList *devices;
/* probed devices */
GList *devices;
/* signals */
void (*open) (GstElement *element,
const gchar *device);
void (*close) (GstElement *element,
const gchar *device);
/* signals */
void (*open) (GstElement *element,
const gchar *device);
void (*close) (GstElement *element,
const gchar *device);
};

View file

@ -28,78 +28,78 @@ GST_DEBUG_CATEGORY_EXTERN (v4l2src_debug);
#define GST_V4L2_MIN_BUFFERS 2
#define GST_TYPE_V4L2SRC \
(gst_v4l2src_get_type())
(gst_v4l2src_get_type())
#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) \
(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) \
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_V4L2SRC))
(G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_V4L2SRC))
#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 _GstV4l2Buffer GstV4l2Buffer;
typedef struct _GstV4l2Src GstV4l2Src;
typedef struct _GstV4l2SrcClass GstV4l2SrcClass;
typedef struct _GstV4l2BufferPool GstV4l2BufferPool;
typedef struct _GstV4l2Buffer GstV4l2Buffer;
typedef struct _GstV4l2Src GstV4l2Src;
typedef struct _GstV4l2SrcClass GstV4l2SrcClass;
/* global info */
struct _GstV4l2BufferPool {
GstAtomicInt refcount; /* number of users: 1 for every buffer, 1 for element */
gint video_fd;
guint buffer_count;
GstV4l2Buffer * buffers;
GstAtomicInt refcount; /* number of users: 1 for every buffer, 1 for element */
gint video_fd;
guint buffer_count;
GstV4l2Buffer * buffers;
};
struct _GstV4l2Buffer {
struct v4l2_buffer buffer;
guint8 * start;
guint length;
GstAtomicInt refcount; /* add 1 if in use by element, add 1 if in use by GstBuffer */
GstV4l2BufferPool * pool;
struct v4l2_buffer buffer;
guint8 * start;
guint length;
GstAtomicInt refcount; /* add 1 if in use by element, add 1 if in use by GstBuffer */
GstV4l2BufferPool * pool;
};
struct _GstV4l2Src {
GstV4l2Element v4l2element;
GstV4l2Element v4l2element;
/* pads */
GstPad *srcpad;
/* pads */
GstPad *srcpad;
/* internal lists */
GSList *formats; /* list of available capture formats */
/* internal lists */
GSList *formats; /* list of available capture formats */
/* buffers */
GstV4l2BufferPool *pool;
/* buffers */
GstV4l2BufferPool *pool;
struct v4l2_requestbuffers breq;
struct v4l2_format format;
struct v4l2_requestbuffers breq;
struct v4l2_format format;
/* True if we want to stop */
gboolean quit, is_capturing;
/* True if we want to stop */
gboolean quit, is_capturing;
/* A/V sync... frame counter and internal cache */
gulong handled;
gint need_writes;
GstBuffer *cached_buffer;
gulong last_seq;
/* A/V sync... frame counter and internal cache */
gulong handled;
gint need_writes;
GstBuffer *cached_buffer;
gulong last_seq;
/* clock */
GstClock *clock;
/* time to substract from clock time to get back to timestamp */
GstClockTime substract_time;
/* clock */
GstClock *clock;
/* time to substract from clock time to get back to timestamp */
GstClockTime substract_time;
/* how are we going to push buffers? */
gboolean use_fixed_fps;
/* how are we going to push buffers? */
gboolean use_fixed_fps;
};
struct _GstV4l2SrcClass {
GstV4l2ElementClass parent_class;
GstV4l2ElementClass parent_class;
void (*frame_capture) (GObject *object);
void (*frame_drop) (GObject *object);
void (*frame_insert) (GObject *object);
void (*frame_lost) (GObject *object,
void (*frame_capture) (GObject *object);
void (*frame_drop) (GObject *object);
void (*frame_insert) (GObject *object);
void (*frame_lost) (GObject *object,
gint num_lost);
};

View file

@ -33,10 +33,10 @@ G_BEGIN_DECLS
(gst_v4l2_tuner_channel_get_type ())
#define GST_V4L2_TUNER_CHANNEL(obj) \
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_V4L2_TUNER_CHANNEL, \
GstV4l2TunerChannel))
GstV4l2TunerChannel))
#define GST_V4L2_TUNER_CHANNEL_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_V4L2_TUNER_CHANNEL, \
GstV4l2TunerChannelClass))
GstV4l2TunerChannelClass))
#define GST_IS_V4L2_TUNER_CHANNEL(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_V4L2_TUNER_CHANNEL))
#define GST_IS_V4L2_TUNER_CHANNEL_CLASS(klass) \
@ -58,10 +58,10 @@ typedef struct _GstV4l2TunerChannelClass {
(gst_v4l2_tuner_norm_get_type ())
#define GST_V4L2_TUNER_NORM(obj) \
(G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_V4L2_TUNER_NORM, \
GstV4l2TunerNorm))
GstV4l2TunerNorm))
#define GST_V4L2_TUNER_NORM_CLASS(klass) \
(G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_V4L2_TUNER_NORM, \
GstV4l2TunerNormClass))
GstV4l2TunerNormClass))
#define GST_IS_V4L2_TUNER_NORM(obj) \
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_V4L2_TUNER_NORM))
#define GST_IS_V4L2_TUNER_NORM_CLASS(klass) \
@ -77,9 +77,9 @@ typedef struct _GstV4l2TunerNormClass {
GstTunerNormClass parent;
} GstV4l2TunerNormClass;
GType gst_v4l2_tuner_channel_get_type (void);
GType gst_v4l2_tuner_norm_get_type (void);
GType gst_v4l2_tuner_channel_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__ */

View file

@ -29,9 +29,9 @@
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_close (GstV4l2Element *v4l2element);
void gst_v4l2_xoverlay_open (GstV4l2Element *v4l2element);
void gst_v4l2_xoverlay_close (GstV4l2Element *v4l2element);
#endif /* __GST_V4L2_X_OVERLAY_H__ */

View file

@ -37,9 +37,9 @@
#include "gstv4l2src.h"
#define DEBUG(format, args...) \
GST_DEBUG_OBJECT (\
GST_ELEMENT(v4l2element), \
"V4L2: " format, ##args)
GST_DEBUG_OBJECT (\
GST_ELEMENT(v4l2element), \
"V4L2: " format, ##args)
/******************************************************

View file

@ -36,86 +36,86 @@
(element->vcap.capabilities & V4L2_CAP_VIDEO_OVERLAY)
/* checks whether the current v4lelement has already been open()'ed or not */
#define GST_V4L2_CHECK_OPEN(element) \
if (!GST_V4L2_IS_OPEN(element)) \
{ \
GST_ELEMENT_ERROR (element, RESOURCE, TOO_LAZY, \
#define GST_V4L2_CHECK_OPEN(element) \
if (!GST_V4L2_IS_OPEN(element)) \
{ \
GST_ELEMENT_ERROR (element, RESOURCE, TOO_LAZY, \
(_("Device is not open.")), (NULL)); \
return FALSE; \
return FALSE; \
}
/* checks whether the current v4lelement is close()'ed or whether it is still open */
#define GST_V4L2_CHECK_NOT_OPEN(element) \
if (GST_V4L2_IS_OPEN(element)) \
{ \
GST_ELEMENT_ERROR (element, RESOURCE, TOO_LAZY, \
#define GST_V4L2_CHECK_NOT_OPEN(element) \
if (GST_V4L2_IS_OPEN(element)) \
{ \
GST_ELEMENT_ERROR (element, RESOURCE, TOO_LAZY, \
(_("Device is open.")), (NULL)); \
return FALSE; \
return FALSE; \
}
/* checks whether the current v4lelement does video overlay */
#define GST_V4L2_CHECK_OVERLAY(element) \
if (!GST_V4L2_IS_OVERLAY(element)) \
{ \
#define GST_V4L2_CHECK_OVERLAY(element) \
if (!GST_V4L2_IS_OVERLAY(element)) \
{ \
GST_ELEMENT_ERROR (element, RESOURCE, TOO_LAZY, \
(NULL), ("Device cannot handle overlay")); \
return FALSE; \
return FALSE; \
}
/* checks whether we're in capture mode or not */
#define GST_V4L2_CHECK_ACTIVE(element) \
if (!GST_V4L2_IS_ACTIVE(element)) \
{ \
#define GST_V4L2_CHECK_ACTIVE(element) \
if (!GST_V4L2_IS_ACTIVE(element)) \
{ \
GST_ELEMENT_ERROR (element, RESOURCE, SETTINGS, \
(NULL), ("Device is not in streaming mode")); \
return FALSE; \
return FALSE; \
}
/* checks whether we're out of capture mode or not */
#define GST_V4L2_CHECK_NOT_ACTIVE(element) \
if (GST_V4L2_IS_ACTIVE(element)) \
{ \
#define GST_V4L2_CHECK_NOT_ACTIVE(element) \
if (GST_V4L2_IS_ACTIVE(element)) \
{ \
GST_ELEMENT_ERROR (element, RESOURCE, SETTINGS, \
(NULL), ("Device is in streaming mode")); \
return FALSE; \
return FALSE; \
}
/* open/close the device */
gboolean gst_v4l2_open (GstV4l2Element *v4l2element);
gboolean gst_v4l2_close (GstV4l2Element *v4l2element);
gboolean gst_v4l2_open (GstV4l2Element *v4l2element);
gboolean gst_v4l2_close (GstV4l2Element *v4l2element);
/* norm/input/output */
gboolean gst_v4l2_get_norm (GstV4l2Element *v4l2element,
v4l2_std_id *norm);
gboolean gst_v4l2_set_norm (GstV4l2Element *v4l2element,
v4l2_std_id norm);
gboolean gst_v4l2_get_input (GstV4l2Element *v4l2element,
gint *input);
gboolean gst_v4l2_set_input (GstV4l2Element *v4l2element,
gint input);
gboolean gst_v4l2_get_output (GstV4l2Element *v4l2element,
gint *output);
gboolean gst_v4l2_set_output (GstV4l2Element *v4l2element,
gint output);
gboolean gst_v4l2_get_norm (GstV4l2Element *v4l2element,
v4l2_std_id *norm);
gboolean gst_v4l2_set_norm (GstV4l2Element *v4l2element,
v4l2_std_id norm);
gboolean gst_v4l2_get_input (GstV4l2Element *v4l2element,
gint *input);
gboolean gst_v4l2_set_input (GstV4l2Element *v4l2element,
gint input);
gboolean gst_v4l2_get_output (GstV4l2Element *v4l2element,
gint *output);
gboolean gst_v4l2_set_output (GstV4l2Element *v4l2element,
gint output);
/* frequency control */
gboolean gst_v4l2_get_frequency (GstV4l2Element *v4l2element,
gint tunernum,
gulong *frequency);
gboolean gst_v4l2_set_frequency (GstV4l2Element *v4l2element,
gint tunernum,
gulong frequency);
gboolean gst_v4l2_signal_strength (GstV4l2Element *v4l2element,
gint tunernum,
gulong *signal);
gboolean gst_v4l2_get_frequency (GstV4l2Element *v4l2element,
gint tunernum,
gulong *frequency);
gboolean gst_v4l2_set_frequency (GstV4l2Element *v4l2element,
gint tunernum,
gulong frequency);
gboolean gst_v4l2_signal_strength (GstV4l2Element *v4l2element,
gint tunernum,
gulong *signal);
/* attribute control */
gboolean gst_v4l2_get_attribute (GstV4l2Element *v4l2element,
int attribute,
int *value);
gboolean gst_v4l2_set_attribute (GstV4l2Element *v4l2element,
int attribute,
const int value);
gboolean gst_v4l2_get_attribute (GstV4l2Element *v4l2element,
int attribute,
int *value);
gboolean gst_v4l2_set_attribute (GstV4l2Element *v4l2element,
int attribute,
const int value);
#endif /* __V4L2_CALLS_H__ */

View file

@ -40,9 +40,9 @@
#define GST_V4L2_SET_INACTIVE(element) (element)->buffer = NULL
#define DEBUG(format, args...) \
GST_CAT_DEBUG_OBJECT (\
v4l2src_debug, v4l2src, \
"V4L2SRC: " format, ##args)
GST_CAT_DEBUG_OBJECT (\
v4l2src_debug, v4l2src, \
"V4L2SRC: " format, ##args)
/* On some systems MAP_FAILED seems to be missing */
#ifndef MAP_FAILED

View file

@ -24,30 +24,30 @@
#include "v4l2_calls.h"
gboolean gst_v4l2src_get_capture (GstV4l2Src *v4l2src);
gboolean gst_v4l2src_set_capture (GstV4l2Src *v4l2src,
struct v4l2_fmtdesc *fmt,
gint width,
gint height);
gboolean gst_v4l2src_capture_init (GstV4l2Src *v4l2src);
gboolean gst_v4l2src_capture_start (GstV4l2Src *v4l2src);
gint gst_v4l2src_grab_frame (GstV4l2Src *v4l2src);
guint8 * gst_v4l2src_get_buffer (GstV4l2Src *v4l2src,
gint num);
gboolean gst_v4l2src_queue_frame (GstV4l2Src *v4l2src,
guint i);
gboolean gst_v4l2src_capture_stop (GstV4l2Src *v4l2src);
gboolean gst_v4l2src_capture_deinit (GstV4l2Src *v4l2src);
gboolean gst_v4l2src_get_capture (GstV4l2Src *v4l2src);
gboolean gst_v4l2src_set_capture (GstV4l2Src *v4l2src,
struct v4l2_fmtdesc *fmt,
gint width,
gint height);
gboolean gst_v4l2src_capture_init (GstV4l2Src *v4l2src);
gboolean gst_v4l2src_capture_start (GstV4l2Src *v4l2src);
gint gst_v4l2src_grab_frame (GstV4l2Src *v4l2src);
guint8 * gst_v4l2src_get_buffer (GstV4l2Src *v4l2src,
gint num);
gboolean gst_v4l2src_queue_frame (GstV4l2Src *v4l2src,
guint i);
gboolean gst_v4l2src_capture_stop (GstV4l2Src *v4l2src);
gboolean gst_v4l2src_capture_deinit (GstV4l2Src *v4l2src);
gboolean gst_v4l2src_fill_format_list (GstV4l2Src *v4l2src);
gboolean gst_v4l2src_clear_format_list (GstV4l2Src *v4l2src);
gboolean gst_v4l2src_fill_format_list (GstV4l2Src *v4l2src);
gboolean gst_v4l2src_clear_format_list (GstV4l2Src *v4l2src);
/* hacky */
gboolean gst_v4l2src_get_size_limits (GstV4l2Src *v4l2src,
struct v4l2_fmtdesc *fmt,
gint *min_w, gint *max_w,
gint *min_h, gint *max_h);
gboolean gst_v4l2src_get_size_limits (GstV4l2Src *v4l2src,
struct v4l2_fmtdesc *fmt,
gint *min_w, gint *max_w,
gint *min_h, gint *max_h);
void gst_v4l2src_free_buffer (GstBuffer *buffer);
void gst_v4l2src_free_buffer (GstBuffer *buffer);
#endif /* __V4L2SRC_CALLS_H__ */

View file

@ -41,9 +41,9 @@ G_BEGIN_DECLS
/* NOTE: per-element flags start with 16 for now */
typedef enum {
VCDSRC_OPEN = (GST_ELEMENT_FLAG_LAST << 0),
VCDSRC_OPEN = (GST_ELEMENT_FLAG_LAST << 0),
VCDSRC_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2),
VCDSRC_FLAG_LAST = (GST_ELEMENT_FLAG_LAST << 2),
} GstVCDSrcFlags;
typedef struct _GstVCDSrc GstVCDSrc;
@ -73,10 +73,10 @@ struct _GstVCDSrc {
gulong tempoffset;
gboolean discont, flush;
gulong curoffset; /* current offset in file */
gulong bytes_per_read; /* bytes per read */
gulong curoffset; /* current offset in file */
gulong bytes_per_read; /* bytes per read */
gulong seq; /* buffer sequence number */
gulong seq; /* buffer sequence number */
int max_errors;
};