removal of //-style comments don't link plugins to core libs -- the versioning is done internally to the plugins with...

Original commit message from CVS:
* removal of //-style comments
* don't link plugins to core libs -- the versioning is done internally to the plugins with the plugin_info struct,
and symbol resolution is lazy, so we can always know if a plugin can be loaded by the plugin_info data. in theory.
This commit is contained in:
Andy Wingo 2002-03-19 04:10:05 +00:00
parent 29ea57179f
commit f6c63f0d8e
36 changed files with 690 additions and 690 deletions

View file

@ -10,7 +10,7 @@ BUILT_SOURCES = \
libgstidentity2_la_SOURCES = gst-identity2.gob $(GOB_FILES_ID)
libgstidentity2_la_CFLAGS = $(GST_CFLAGS)
libgstidentity2_la_LIBADD = $(GST_LIBS)
libgstidentity2_la_LIBADD =
%.c %.h %-private.h: %.gob
gob $<

View file

@ -10,7 +10,7 @@ endif
libgsta52dec_la_SOURCES = gsta52dec.c
libgsta52dec_la_CFLAGS = $(GST_CFLAGS) -O3 $(ARCHFLAGS) $(FOMIT_FRAME_POINTER)
libgsta52dec_la_LIBADD = $(GST_LIBS) -la52 -lm
libgsta52dec_la_LIBADD = -la52 -lm
libgsta52dec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
noinst_HEADERS = gsta52dec.h

View file

@ -7,7 +7,7 @@ plugin_LTLIBRARIES = libgstdvdsrc.la
libgstdvdsrc_la_SOURCES = dvdsrc.c
libgstdvdsrc_la_CFLAGS = $(GST_CFLAGS)
libgstdvdsrc_la_LIBADD = $(GST_LIBS) $(DVDREAD_LIBS)
libgstdvdsrc_la_LIBADD = $(DVDREAD_LIBS)
libgstdvdsrc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
noinst_HEADERS = dvdsrc.h

View file

@ -49,7 +49,7 @@ int main(int argc,char *argv[]) {
gst_init(&argc,&argv);
gnome_init("MPEG2 Video player","0.0.1",argc,argv);
// ***** construct the main pipeline *****
/* ***** construct the main pipeline ***** */
pipeline = GST_PIPELINE(gst_pipeline_new("pipeline"));
g_return_val_if_fail(pipeline != NULL, -1);
@ -61,7 +61,7 @@ int main(int argc,char *argv[]) {
gtk_object_set(GTK_OBJECT(src),"angle",atoi(argv[4]),NULL);
parse = gst_elementfactory_make("mpeg2parse","parse");
//parse = gst_elementfactory_make("mpeg1parse","parse");
/*parse = gst_elementfactory_make("mpeg1parse","parse"); */
g_return_val_if_fail(parse != NULL, -1);
gst_bin_add(GST_BIN(pipeline),GST_ELEMENT(src));
@ -70,7 +70,7 @@ int main(int argc,char *argv[]) {
gst_element_connect(src,"src",parse,"sink");
// ***** pre-construct the video thread *****
/* ***** pre-construct the video thread ***** */
v_thread = GST_ELEMENT(gst_thread_new("v_thread"));
g_return_val_if_fail(v_thread != NULL, -1);
@ -96,7 +96,7 @@ int main(int argc,char *argv[]) {
gst_element_connect(color,"src",show,"sink");
// ***** pre-construct the audio thread *****
/* ***** pre-construct the audio thread ***** */
a_thread = GST_ELEMENT(gst_thread_new("a_thread"));
g_return_val_if_fail(a_thread != NULL, -1);
@ -117,7 +117,7 @@ int main(int argc,char *argv[]) {
gst_element_connect(a_decode,"src",osssink,"sink");
// ***** construct the GUI *****
/* ***** construct the GUI ***** */
appwindow = gnome_app_new("DVD Player","DVD Player");
gtk_socket = gtk_socket_new ();

View file

@ -114,15 +114,15 @@ static void dvdsrc_init (DVDSrc *dvdsrc);
static void dvdsrc_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec);
static void dvdsrc_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
//static GstBuffer * dvdsrc_get (GstPad *pad);
/*static GstBuffer * dvdsrc_get (GstPad *pad); */
static void dvdsrc_loop (GstElement *element);
//static GstBuffer * dvdsrc_get_region (GstPad *pad,gulong offset,gulong size);
/*static GstBuffer * dvdsrc_get_region (GstPad *pad,gulong offset,gulong size); */
static GstElementStateReturn dvdsrc_change_state (GstElement *element);
static GstElementClass *parent_class = NULL;
//static guint dvdsrc_signals[LAST_SIGNAL] = { 0 };
/*static guint dvdsrc_signals[LAST_SIGNAL] = { 0 }; */
GType
dvdsrc_get_type (void)
@ -193,7 +193,7 @@ dvdsrc_init (DVDSrc *dvdsrc)
static void
dvdsrc_destory (DVDSrc *dvdsrc)
{
// FIXME
/* FIXME */
g_print("FIXME\n");
g_free(dvdsrc->priv);
}
@ -213,7 +213,7 @@ dvdsrc_set_property (GObject *object, guint prop_id, const GValue *value, GParam
switch (prop_id) {
case ARG_LOCATION:
/* the element must be stopped in order to do this */
//g_return_if_fail(!GST_FLAG_IS_SET(src,GST_STATE_RUNNING));
/*g_return_if_fail(!GST_FLAG_IS_SET(src,GST_STATE_RUNNING)); */
if (priv->location)
g_free (priv->location);
@ -462,7 +462,7 @@ dvdsrc_loop (GstElement *element)
int len;
/* create the buffer */
// FIXME: should eventually use a bufferpool for this
/* FIXME: should eventually use a bufferpool for this */
buf = gst_buffer_new ();
g_return_if_fail (buf);
@ -490,7 +490,7 @@ dvdsrc_loop (GstElement *element)
*/
navRead_DSI( &dsi_pack, &(data[ DSI_START_BYTE ]) );
assert( priv->cur_pack == dsi_pack.dsi_gi.nv_pck_lbn );
//navPrint_DSI(&dsi_pack);
/*navPrint_DSI(&dsi_pack); */
/**
@ -679,7 +679,7 @@ dvdsrc_get (GstPad *pad)
g_return_val_if_fail (GST_FLAG_IS_SET (dvdsrc, DVDSRC_OPEN),NULL);
/* create the buffer */
// FIXME: should eventually use a bufferpool for this
/* FIXME: should eventually use a bufferpool for this */
buf = gst_buffer_new ();
g_return_val_if_fail (buf, NULL);

View file

@ -45,7 +45,7 @@ GstElementDetails dvdsrc_details;
#define GST_IS_DVDSRC_CLASS(obj) \
(G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DVDSRC))
// NOTE: per-element flags start with 16 for now
/* NOTE: per-element flags start with 16 for now */
typedef enum {
DVDSRC_OPEN = GST_ELEMENT_FLAG_LAST,

View file

@ -4,7 +4,7 @@ plugin_LTLIBRARIES = libgstlame.la
libgstlame_la_SOURCES = gstlame.c
libgstlame_la_CFLAGS = $(GST_CFLAGS)
libgstlame_la_LIBADD = $(GST_LIBS) $(LAME_LIBS)
libgstlame_la_LIBADD = $(LAME_LIBS)
libgstlame_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
noinst_HEADERS = gstlame.h

View file

@ -177,7 +177,7 @@ enum {
ARG_ATH_ONLY,
ARG_ATH_SHORT,
ARG_NO_ATH,
/* ARG_ATH_TYPE, // note: CVS has this, 3.87 doesn't */
/* ARG_ATH_TYPE, /* note: CVS has this, 3.87 doesn't */ */
ARG_ATH_LOWER,
ARG_CWLIMIT,
ARG_ALLOW_DIFF_SHORT,
@ -235,7 +235,7 @@ gst_lame_class_init (GstLameClass *klass)
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_BITRATE,
g_param_spec_int("bitrate","bitrate","bitrate",
G_MININT,G_MAXINT,128,G_PARAM_READWRITE)); // CHECKME
G_MININT,G_MAXINT,128,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FREQUENCY,
g_param_spec_int("frequency","frequency","frequency",
0,G_MAXINT, 44100 ,G_PARAM_READABLE));
@ -244,93 +244,93 @@ gst_lame_class_init (GstLameClass *klass)
0, 2, 2 ,G_PARAM_READABLE));
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_COMPRESSION_RATIO,
g_param_spec_float("compression_ratio","compression_ratio","compression_ratio",
0.0,200.0,11.0,G_PARAM_READWRITE)); // CHECKME
0.0,200.0,11.0,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_QUALITY,
g_param_spec_enum("quality","quality","quality",
GST_TYPE_LAME_QUALITY,5,G_PARAM_READWRITE)); // CHECKME!
GST_TYPE_LAME_QUALITY,5,G_PARAM_READWRITE)); /* CHECKME! */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_MODE,
g_param_spec_enum("mode","mode","mode",
GST_TYPE_LAME_MODE,0,G_PARAM_READWRITE)); // CHECKME!
GST_TYPE_LAME_MODE,0,G_PARAM_READWRITE)); /* CHECKME! */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FORCE_MS,
g_param_spec_boolean("force_ms","force_ms","force_ms",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_FREE_FORMAT,
g_param_spec_boolean("free_format","free_format","free_format",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_COPYRIGHT,
g_param_spec_boolean("copyright","copyright","copyright",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_ORIGINAL,
g_param_spec_boolean("original","original","original",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_ERROR_PROTECTION,
g_param_spec_boolean("error_protection","error_protection","error_protection",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_PADDING_TYPE,
g_param_spec_enum("padding_type","padding_type","padding_type",
GST_TYPE_LAME_PADDING,0,G_PARAM_READWRITE)); // CHECKME!
GST_TYPE_LAME_PADDING,0,G_PARAM_READWRITE)); /* CHECKME! */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_EXTENSION,
g_param_spec_boolean("extension","extension","extension",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_STRICT_ISO,
g_param_spec_boolean("strict_iso","strict_iso","strict_iso",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_DISABLE_RESERVOIR,
g_param_spec_boolean("disable_reservoir","disable_reservoir","disable_reservoir",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_VBR,
g_param_spec_boolean("vbr","vbr","vbr",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_VBR_MEAN_BITRATE,
g_param_spec_int("vbr_mean_bitrate","vbr_mean_bitrate","vbr_mean_bitrate",
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); // CHECKME
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_VBR_MIN_BITRATE,
g_param_spec_int("vbr_min_bitrate","vbr_min_bitrate","vbr_min_bitrate",
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); // CHECKME
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_VBR_MAX_BITRATE,
g_param_spec_int("vbr_max_bitrate","vbr_max_bitrate","vbr_max_bitrate",
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); // CHECKME
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_VBR_HARD_MIN,
g_param_spec_int("vbr_hard_min","vbr_hard_min","vbr_hard_min",
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); // CHECKME
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_LOWPASS_FREQ,
g_param_spec_int("lowpass_freq","lowpass_freq","lowpass_freq",
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); // CHECKME
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_LOWPASS_WIDTH,
g_param_spec_int("lowpass_width","lowpass_width","lowpass_width",
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); // CHECKME
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_HIGHPASS_FREQ,
g_param_spec_int("highpass_freq","highpass_freq","highpass_freq",
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); // CHECKME
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_HIGHPASS_WIDTH,
g_param_spec_int("highpass_width","highpass_width","highpass_width",
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); // CHECKME
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_ATH_ONLY,
g_param_spec_boolean("ath_only","ath_only","ath_only",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_ATH_SHORT,
g_param_spec_boolean("ath_short","ath_short","ath_short",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_NO_ATH,
g_param_spec_boolean("no_ath","no_ath","no_ath",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
/* gtk_object_add_arg_type ("GstLame::ath_type", G_TYPE_INT,
GTK_ARG_READWRITE, ARG_ATH_TYPE); */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_ATH_LOWER,
g_param_spec_int("ath_lower","ath_lower","ath_lower",
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); // CHECKME
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_CWLIMIT,
g_param_spec_int("cwlimit","cwlimit","cwlimit",
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); // CHECKME
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_ALLOW_DIFF_SHORT,
g_param_spec_boolean("allow_diff_short","allow_diff_short","allow_diff_short",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_NO_SHORT_BLOCKS,
g_param_spec_boolean("no_short_blocks","no_short_blocks","no_short_blocks",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_EMPHASIS,
g_param_spec_boolean("emphasis","emphasis","emphasis",
TRUE,G_PARAM_READWRITE)); // CHECKME
TRUE,G_PARAM_READWRITE)); /* CHECKME */
gobject_class->set_property = gst_lame_set_property;
gobject_class->get_property = gst_lame_get_property;

View file

@ -4,6 +4,6 @@ plugin_LTLIBRARIES = libgstmad.la
libgstmad_la_SOURCES = gstmad.c
libgstmad_la_CFLAGS = $(GST_CFLAGS)
libgstmad_la_LIBADD = $(GST_LIBS) $(MAD_LIBS)
libgstmad_la_LIBADD = $(MAD_LIBS)
libgstmad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)

View file

@ -10,13 +10,13 @@ endif
libgstmpeg2dec_la_SOURCES = gstmpeg2dec.c
libgstmpeg2dec_la_CFLAGS = $(GST_CFLAGS) $(MPEG2DEC_CFLAGS) $(ARCHFLAGS) $(FOMIT_FRAME_POINTER) -ffast-math
libgstmpeg2dec_la_LIBADD = $(GST_LIBS) $(MPEG2DEC_LIBS)
libgstmpeg2dec_la_LIBADD = $(MPEG2DEC_LIBS)
libgstmpeg2dec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
#
# Use the following if you use mpeg2dec from CVS
#
#libgstmpeg2dec_la_LIBADD = $(GST_LIBS) -lmpeg2 -lcpuaccel
#libgstmpeg2dec_la_LIBADD = -lmpeg2 -lcpuaccel
noinst_HEADERS = gstmpeg2dec.h

View file

@ -552,7 +552,7 @@ gst_mpeg2dec_change_state (GstElement *element)
/* if we are not closed by an EOS event do so now, this cen send a few frames but
* we are prepared to not really send them (see above) */
if (!mpeg2dec->closed) {
//mpeg2_close (mpeg2dec->decoder);
/*mpeg2_close (mpeg2dec->decoder); */
mpeg2dec->closed = TRUE;
}
gst_mpeg2dec_vo_destroy (mpeg2dec);

View file

@ -4,7 +4,7 @@ plugin_LTLIBRARIES = libgstsid.la
libgstsid_la_SOURCES = gstsiddec.cc
libgstsid_la_CXXFLAGS = $(GST_CFLAGS) $(SIDPLAY_CFLAGS)
libgstsid_la_LIBADD = $(GST_LIBS) $(SIDPLAY_LIBS)
libgstsid_la_LIBADD = $(SIDPLAY_LIBS)
libgstsid_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
noinst_HEADERS = gstsiddec.h

View file

@ -7,6 +7,6 @@ libgstaudio_la_SOURCES = audio.c
libgstaudioincludedir = $(includedir)/gst/audio
libgstaudioinclude_HEADERS = audio.h
libgstaudio_la_LIBADD = $(GST_LIBS)
libgstaudio_la_LIBADD =
libgstaudio_la_CFLAGS = $(GST_CFLAGS) -finline-functions -ffast-math
libgstaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)

View file

@ -131,7 +131,7 @@ gst_audio_highest_sample_value (GstPad* pad)
GstCaps *caps = NULL;
caps = GST_PAD_CAPS (pad);
// FIXME : Please change this to a better warning method !
/* FIXME : Please change this to a better warning method ! */
if (caps == NULL)
printf ("WARNING: gstaudio: could not get caps of pad !\n");
width = gst_caps_get_int (caps, "width");

View file

@ -27,6 +27,6 @@ ieeetest_LDFLAGS = $(GST_LIBS)
noinst_HEADERS = dct.h
libgstidct_la_LIBADD = $(GST_LIBS)
libgstidct_la_LIBADD =
libgstidct_la_CFLAGS = $(GST_CFLAGS) -finline-functions -ffast-math
libgstidct_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)

View file

@ -117,7 +117,7 @@ main(int argc, char **argv)
gst_trace_read_tsc(&tscstart);
gst_idct_convert(idct, testout);
gst_trace_read_tsc(&tscstop);
//printf("time %llu, %llu %lld\n", tscstart, tscstop, tscstop-tscstart);
/*printf("time %llu, %llu %lld\n", tscstart, tscstop, tscstop-tscstart); */
if (tscstop - tscstart < tscmin) tscmin = tscstop-tscstart;
if (tscstop - tscstart > tscmax) tscmax = tscstop-tscstart;

File diff suppressed because it is too large Load diff

View file

@ -13,7 +13,7 @@ endif
endif
libgstresample_la_SOURCES = dtos.c functable.c resample.c resample.h
libgstresample_la_LIBADD = $(GST_LIBS)
libgstresample_la_LIBADD =
libgstresample_la_CFLAGS = $(GST_CFLAGS) -ffast-math $(ARCHCFLAGS)
libgstresample_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)

View file

@ -23,13 +23,13 @@
#include <stdio.h>
#include <stdlib.h>
//#include <ml.h>
/*#include <ml.h> */
#include <resample.h>
#define short_to_double_table
//#define short_to_double_altivec
/*#define short_to_double_altivec */
#define short_to_double_unroll
#ifdef short_to_double_table

View file

@ -124,12 +124,12 @@ double functable_eval(functable_t *t,double x)
w0 = (x - 2 * x2 + x3) * t->offset;
w1 = (-x2 + x3) * t->offset;
//printf("i=%d x=%g f0=%g f1=%g w0=%g w1=%g\n",i,x,f0,f1,w0,w1);
/*printf("i=%d x=%g f0=%g f1=%g w0=%g w1=%g\n",i,x,f0,f1,w0,w1); */
w = t->fx[i] * f0 + t->fx[i + 1] * f1 +
t->fdx[i] * w0 + t->fdx[i + 1] * w1;
//w = t->fx[i] * (1-x) + t->fx[i+1] * x;
/*w = t->fx[i] * (1-x) + t->fx[i+1] * x; */
return w;
}
@ -266,37 +266,37 @@ void functable_fir2_altivec(functable_t *t, float *r0, float *r1,
sum0 = 0;
sum1 = 0;
for(j=0;j<len;j++){
// t->fx, t->fdx needs to be multiplexed by n
// we need 5 consecutive floats, which fit into 2 vecs
// load v0, t->fx[i]
// load v1, t->fx[i+n]
// v2 = v0 (not correct)
// v3 = (v0>>32) || (v1<<3*32) (not correct)
//
// load v4, t->dfx[i]
// load v5, t->dfx[i+n]
// v6 = v4 (not correct)
// v7 = (v4>>32) || (v5<<3*32) (not correct)
//
// v8 = splat(f0)
// v9 = splat(f1)
// v10 = splat(w0)
// v11 = splat(w1)
//
// v12 = v2 * v8
// v12 += v3 * v9
// v12 += v6 * v10
// v12 += v7 * v11
/* t->fx, t->fdx needs to be multiplexed by n */
/* we need 5 consecutive floats, which fit into 2 vecs */
/* load v0, t->fx[i] */
/* load v1, t->fx[i+n] */
/* v2 = v0 (not correct) */
/* v3 = (v0>>32) || (v1<<3*32) (not correct) */
/* */
/* load v4, t->dfx[i] */
/* load v5, t->dfx[i+n] */
/* v6 = v4 (not correct) */
/* v7 = (v4>>32) || (v5<<3*32) (not correct) */
/* */
/* v8 = splat(f0) */
/* v9 = splat(f1) */
/* v10 = splat(w0) */
/* v11 = splat(w1) */
/* */
/* v12 = v2 * v8 */
/* v12 += v3 * v9 */
/* v12 += v6 * v10 */
/* v12 += v7 * v11 */
w = t->fx[i] * f0 + t->fx[i + 1] * f1 +
t->fdx[i] * w0 + t->fdx[i + 1] * w1;
// v13 = data[j*2]
// v14 = data[j*2+4]
// v15 = deinterlace_high(v13,v14)
// v16 = deinterlace_low(v13,v14)
// (sum0) v17 += multsum(v13,v15)
// (sum1) v18 += multsum(v14,v16)
/* v13 = data[j*2] */
/* v14 = data[j*2+4] */
/* v15 = deinterlace_high(v13,v14) */
/* v16 = deinterlace_low(v13,v14) */
/* (sum0) v17 += multsum(v13,v15) */
/* (sum1) v18 += multsum(v14,v16) */
sum0 += data[j*2] * w;
sum1 += data[j*2+1] * w;

View file

@ -243,7 +243,7 @@ void resample_bilinear(resample_t * r)
b = r->i_start;
for (i = 0; i < r->i_samples; i++) {
b += r->i_inc;
//printf("in %d\n",i_ptr[0]);
/*printf("in %d\n",i_ptr[0]); */
if(b>=2){
printf("not expecting b>=2\n");
}
@ -252,7 +252,7 @@ void resample_bilinear(resample_t * r)
acc1 += (1.0 - (b-r->i_inc)) * i_ptr[1];
o_ptr[0] = rint(acc0);
//printf("out %d\n",o_ptr[0]);
/*printf("out %d\n",o_ptr[0]); */
o_ptr[1] = rint(acc1);
o_ptr += 2;
o_count++;
@ -319,8 +319,8 @@ void resample_sinc_slow(resample_t * r)
c1 = 0;
for (j = 0; j < r->filter_length; j++) {
weight = (x==0)?1:(sinx/x);
//printf("j %d sin %g cos %g\n",j,sinx,cosx);
//printf("j %d sin %g x %g sinc %g\n",j,sinx,x,weight);
/*printf("j %d sin %g cos %g\n",j,sinx,cosx); */
/*printf("j %d sin %g x %g sinc %g\n",j,sinx,x,weight); */
c0 += weight * GETBUF((start + j), 0);
c1 += weight * GETBUF((start + j), 1);
t = cosx * cosd - sinx * sind;
@ -368,11 +368,11 @@ void resample_sinc(resample_t * r)
for (i = 0; i < r->o_samples; i++) {
a = r->o_start + i * r->o_inc;
start = floor(a - r->halftaps);
//printf("%d: a=%g start=%d end=%d\n",i,a,start,start+r->filter_length-1);
/*printf("%d: a=%g start=%d end=%d\n",i,a,start,start+r->filter_length-1); */
center = a;
//x = M_PI * (start - center) * r->o_inc;
//d = M_PI * r->o_inc;
//x = (start - center) * r->o_inc;
/*x = M_PI * (start - center) * r->o_inc; */
/*d = M_PI * r->o_inc; */
/*x = (start - center) * r->o_inc; */
x0 = (start - center) * r->o_inc;
d = r->o_inc;
c0 = 0;
@ -439,20 +439,20 @@ static void resample_sinc_ft(resample_t * r)
double *ptr;
signed short *o_ptr;
int i;
//int j;
/*int j; */
double c0, c1;
//double a;
/*double a; */
double start_f, start_x;
int start;
double center;
//double weight;
/*double weight; */
double x, d;
double scale;
int n = 4;
scale = r->i_inc; // cutoff at 22050
//scale = 1.0; // cutoff at 24000
//scale = r->i_inc * 0.5; // cutoff at 11025
scale = r->i_inc; /* cutoff at 22050 */
/*scale = 1.0; // cutoff at 24000 */
/*scale = r->i_inc * 0.5; // cutoff at 11025 */
if(!ft){
ft = malloc(sizeof(*ft));
@ -472,7 +472,7 @@ static void resample_sinc_ft(resample_t * r)
functable_init(ft);
//printf("len=%d offset=%g start=%g\n",ft->len,ft->offset,ft->start);
/*printf("len=%d offset=%g start=%g\n",ft->len,ft->offset,ft->start); */
}
ptr = r->buffer;
@ -484,18 +484,18 @@ static void resample_sinc_ft(resample_t * r)
start_x -= start_f;
start = start_f;
for (i = 0; i < r->o_samples; i++) {
//start_f = floor(center - r->halftaps);
//printf("%d: a=%g start=%d end=%d\n",i,a,start,start+r->filter_length-1);
/*start_f = floor(center - r->halftaps); */
/*printf("%d: a=%g start=%d end=%d\n",i,a,start,start+r->filter_length-1); */
x = start_f - center;
d = 1;
c0 = 0;
c1 = 0;
//#define slow
/*#define slow */
#ifdef slow
for (j = 0; j < r->filter_length; j++) {
weight = functable_eval(ft,x)*scale;
//weight = sinc(M_PI * scale * x)*scale*r->i_inc;
//weight *= window_func(x / r->halftaps);
/*weight = sinc(M_PI * scale * x)*scale*r->i_inc; */
/*weight *= window_func(x / r->halftaps); */
c0 += weight * ptr[(start + j + r->filter_length)*2 + 0];
c1 += weight * ptr[(start + j + r->filter_length)*2 + 1];
x += d;

View file

@ -9,11 +9,11 @@
#define AMP 16000
#define I_RATE 48000
#define O_RATE 44100
//#define O_RATE 24000
/*#define O_RATE 24000 */
//#define test_func(x) 1
//#define test_func(x) sin(2*M_PI*(x)*10)
//#define test_func(x) sin(2*M_PI*(x)*(x)*1000)
/*#define test_func(x) 1 */
/*#define test_func(x) sin(2*M_PI*(x)*10) */
/*#define test_func(x) sin(2*M_PI*(x)*(x)*1000) */
#define test_func(x) sin(2*M_PI*(x)*(x)*12000)
short i_buf[I_RATE*2*2];
@ -53,7 +53,7 @@ struct timeval start_time;
void start_timer(void)
{
gettimeofday(&start_time,NULL);
//printf("start %ld.%06ld\n",start_time.tv_sec,start_time.tv_usec);
/*printf("start %ld.%06ld\n",start_time.tv_sec,start_time.tv_usec); */
}
void end_timer(void)
@ -62,7 +62,7 @@ void end_timer(void)
double diff;
gettimeofday(&end_time,NULL);
//printf("end %ld.%06ld\n",end_time.tv_sec,end_time.tv_usec);
/*printf("end %ld.%06ld\n",end_time.tv_sec,end_time.tv_usec); */
diff = (end_time.tv_sec - start_time.tv_sec) +
1e-6*(end_time.tv_usec - start_time.tv_usec);
@ -81,7 +81,7 @@ void test_res1(void)
for(i=0;i<I_RATE;i++){
i_buf[i*2+0] = rint(AMP * test_func((double)i/I_RATE));
//i_buf[i*2+1] = rint(AMP * test_func((double)i/I_RATE));
/*i_buf[i*2+1] = rint(AMP * test_func((double)i/I_RATE)); */
i_buf[i*2+1] = (i<1000)?AMP:0;
}
@ -90,10 +90,10 @@ void test_res1(void)
r->i_rate = I_RATE;
r->o_rate = O_RATE;
//r->method = RESAMPLE_SINC_SLOW;
/*r->method = RESAMPLE_SINC_SLOW; */
r->method = RESAMPLE_SINC;
r->channels = 2;
//r->verbose = 1;
/*r->verbose = 1; */
r->filter_length = 64;
r->get_buffer = get_buffer;
@ -115,7 +115,7 @@ void test_res1(void)
for(i=0;i<O_RATE;i++){
f = AMP*test_func((double)i/O_RATE);
//f = rint(AMP*test_func((double)i/O_RATE));
/*f = rint(AMP*test_func((double)i/O_RATE)); */
fprintf(out,"%d %d %d %g %g\n",i,
o_buf[2*i+0],o_buf[2*i+1],
f,o_buf[2*i+0]-f);
@ -127,7 +127,7 @@ void test_res1(void)
n22k=0;
for(i=0;i<O_RATE;i++){
f = AMP*test_func((double)i/O_RATE);
//f = rint(AMP*test_func((double)i/O_RATE));
/*f = rint(AMP*test_func((double)i/O_RATE)); */
x = o_buf[2*i+0]-f;
if(((0.5*i)/O_RATE*I_RATE)<10000){
sum10k += x*x;
@ -219,8 +219,8 @@ double sinc_poly(double x)
- x2 * INV3FAC
+ x2 * x2 * INV5FAC
- x2 * x2 * x2 * INV7FAC;
//+ x2 * x2 * x2 * x2 * INV9FAC
//- x2 * x2 * x2 * x2 * x2 * INV11FAC;
/*+ x2 * x2 * x2 * x2 * INV9FAC */
/*- x2 * x2 * x2 * x2 * x2 * INV11FAC; */
}
void test_res4(void)
@ -297,10 +297,10 @@ void test_res7(void)
r->i_rate = I_RATE;
r->o_rate = O_RATE;
//r->method = RESAMPLE_SINC_SLOW;
/*r->method = RESAMPLE_SINC_SLOW; */
r->method = RESAMPLE_SINC;
r->channels = 1;
//r->verbose = 1;
/*r->verbose = 1; */
r->filter_length = 64;
r->get_buffer = get_buffer;
@ -322,7 +322,7 @@ void test_res7(void)
for(i=0;i<O_RATE;i++){
f = AMP*test_func((double)i/O_RATE);
//f = rint(AMP*test_func((double)i/O_RATE));
/*f = rint(AMP*test_func((double)i/O_RATE)); */
fprintf(out,"%d %d %d %g %g\n",i,
o_buf[i],0,
f,o_buf[i]-f);
@ -334,7 +334,7 @@ void test_res7(void)
n22k=0;
for(i=0;i<O_RATE;i++){
f = AMP*test_func((double)i/O_RATE);
//f = rint(AMP*test_func((double)i/O_RATE));
/*f = rint(AMP*test_func((double)i/O_RATE)); */
x = o_buf[i]-f;
if(((0.5*i)/O_RATE*I_RATE)<10000){
sum10k += x*x;

View file

@ -7,6 +7,6 @@ libgstriff_la_SOURCES = riffparse.c riffencode.c riffutil.c
libgstriffincludedir = $(includedir)/gst/riff
libgstriffinclude_HEADERS = riff.h
libgstriff_la_LIBADD = $(GST_LIBS)
libgstriff_la_LIBADD =
libgstriff_la_CFLAGS = $(GST_CFLAGS) -funroll-all-loops -finline-functions -ffast-math
libgstriff_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)

View file

@ -20,7 +20,7 @@
#include <riff.h>
//#define debug(format,args...) g_print(format,##args)
/*#define debug(format,args...) g_print(format,##args) */
#define debug(format,args...)
@ -69,33 +69,33 @@ gint gst_riff_next_buffer(GstRiff *riff,GstBuffer *buf,gulong off) {
GST_BUFFER_DATA(buf) = riff->dataleft;
GST_BUFFER_SIZE(buf) = newsize;
off -= riff->dataleft_size;
//last -= riff->dataleft_size;
/*last -= riff->dataleft_size; */
riff->dataleft = NULL;
}
if (off == 0) {
guint32 *words = (guin32 *)GST_BUFFER_DATA(buf);
// don't even try to parse the head if it's not there FIXME
/* don't even try to parse the head if it's not there FIXME */
if (last < 12) {
riff->state = GST_RIFF_ENOTRIFF;
return riff->state;
}
//g_print("testing is 0x%08lx '%s'\n",words[0],gst_riff_id_to_fourcc(words[0]));
/*g_print("testing is 0x%08lx '%s'\n",words[0],gst_riff_id_to_fourcc(words[0])); */
/* verify this is a valid RIFF file, first of all */
if (GUINT32_FROM_LE (words[0]) != GST_RIFF_TAG_RIFF) {
riff->state = GST_RIFF_ENOTRIFF;
return riff->state;
}
riff->form = GUINT32_FROM_LE (words[2]);
//g_print("form is 0x%08lx '%s'\n",words[2],gst_riff_id_to_fourcc(words[2]));
/*g_print("form is 0x%08lx '%s'\n",words[2],gst_riff_id_to_fourcc(words[2])); */
riff->nextlikely = 12; /* skip 'RIFF', length, and form */
// all OK here
/* all OK here */
riff->incomplete_chunk = NULL;
}
// if we have an incomplete chunk from the previous buffer
/* if we have an incomplete chunk from the previous buffer */
if (riff->incomplete_chunk) {
guint leftover;
debug("have incomplete chunk %08x filled\n", riff->incomplete_chunk_size);
@ -135,14 +135,14 @@ gint gst_riff_next_buffer(GstRiff *riff,GstBuffer *buf,gulong off) {
while ((riff->nextlikely+12) <= last) {
guin32 *words = (guin32 *)((guchar *)GST_BUFFER_DATA(buf) + riff->nextlikely - off );
// loop over all of the chunks to check which one is finished
/* loop over all of the chunks to check which one is finished */
while (riff->chunks) {
chunk = g_list_nth_data(riff->chunks, 0);
debug("next 0x%08x offset 0x%08lx size 0x%08x\n",riff->nextlikely, chunk->offset, chunk->size);
if (riff->nextlikely >= chunk->offset+chunk->size) {
//g_print("found END LIST\n");
// we have the end of the chunk on the stack, remove it
/*g_print("found END LIST\n"); */
/* we have the end of the chunk on the stack, remove it */
riff->chunks = g_list_remove(riff->chunks, chunk);
}
else break;
@ -157,17 +157,17 @@ gint gst_riff_next_buffer(GstRiff *riff,GstBuffer *buf,gulong off) {
chunk->id = GUINT32_FROM_LE (words[0]));
chunk->size = GUINT32_FROM_LE (words[1]);
chunk->data = (gchar *)(words+2);
// we need word alignment
//if (chunk->size & 0x01) chunk->size++;
/* we need word alignment */
/*if (chunk->size & 0x01) chunk->size++; */
chunk->form = GUINT32_FROM_LE (words[2]); /* fill in the form, might not be valid */
if (chunk->id == GST_RIFF_TAG_LIST) {
//g_print("found LIST %s\n", gst_riff_id_to_fourcc(chunk->form));
/*g_print("found LIST %s\n", gst_riff_id_to_fourcc(chunk->form)); */
riff->nextlikely += 12;
// we push the list chunk on our 'stack'
/* we push the list chunk on our 'stack' */
riff->chunks = g_list_prepend(riff->chunks,chunk);
// send the buffer to the listener if we have received a function
/* send the buffer to the listener if we have received a function */
if (riff->new_tag_found) {
riff->new_tag_found(chunk, riff->callback_data);
}
@ -178,25 +178,25 @@ gint gst_riff_next_buffer(GstRiff *riff,GstBuffer *buf,gulong off) {
gst_riff_id_to_fourcc(GUINT32_FROM_LE (words[0])), GUINT32_FROM_LE (words[1]));
riff->nextlikely += 8 + chunk->size; /* doesn't include hdr */
// if this buffer is incomplete
/* if this buffer is incomplete */
if (riff->nextlikely > last) {
guint left = size - (riff->nextlikely - chunk->size - off);
//g_print("make incomplete buffer %08x\n", left);
/*g_print("make incomplete buffer %08x\n", left); */
chunk->data = g_malloc(chunk->size);
memcpy(chunk->data, (gchar *)(words+2), left);
riff->incomplete_chunk = chunk;
riff->incomplete_chunk_size = left;
}
else {
// send the buffer to the listener if we have received a function
/* send the buffer to the listener if we have received a function */
if (riff->new_tag_found) {
riff->new_tag_found(chunk, riff->callback_data);
}
g_free(chunk);
}
//riff->chunks = g_list_prepend(riff->chunks,chunk);
/*riff->chunks = g_list_prepend(riff->chunks,chunk); */
}
}

View file

@ -19,7 +19,7 @@
#include <string.h>
//#define DEBUG_ENABLED
/*#define DEBUG_ENABLED */
#include "riff.h"
#define GST_RIFF_ENCODER_BUF_SIZE 1024

View file

@ -19,7 +19,7 @@
#include <string.h>
//#define DEBUG_ENABLED
/*#define DEBUG_ENABLED */
#include <riff.h>
GstRiff*
@ -71,33 +71,33 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
GST_BUFFER_DATA(buf) = riff->dataleft;
size = GST_BUFFER_SIZE(buf) = newsize;
off -= riff->dataleft_size;
//last -= riff->dataleft_size;
/*last -= riff->dataleft_size; */
riff->dataleft = NULL;
}
if (off == 0) {
guint32 *words = (guint32 *)GST_BUFFER_DATA(buf);
// don't even try to parse the head if it's not there FIXME
/* don't even try to parse the head if it's not there FIXME */
if (last < 12) {
riff->state = GST_RIFF_ENOTRIFF;
return riff->state;
}
//g_print("testing is 0x%08lx '%s'\n",words[0],gst_riff_id_to_fourcc(words[0]));
/*g_print("testing is 0x%08lx '%s'\n",words[0],gst_riff_id_to_fourcc(words[0])); */
/* verify this is a valid RIFF file, first of all */
if (GUINT32_FROM_LE (words[0]) != GST_RIFF_TAG_RIFF) {
riff->state = GST_RIFF_ENOTRIFF;
return riff->state;
}
riff->form = GUINT32_FROM_LE (words[2]);
//g_print("form is 0x%08lx '%s'\n",words[2],gst_riff_id_to_fourcc(words[2]));
/*g_print("form is 0x%08lx '%s'\n",words[2],gst_riff_id_to_fourcc(words[2])); */
riff->nextlikely = 12; /* skip 'RIFF', length, and form */
// all OK here
/* all OK here */
riff->incomplete_chunk = NULL;
}
// if we have an incomplete chunk from the previous buffer
/* if we have an incomplete chunk from the previous buffer */
if (riff->incomplete_chunk) {
guint leftover;
GST_DEBUG (0,"gst_riff_parser: have incomplete chunk %08x filled\n", riff->incomplete_chunk_size);
@ -130,7 +130,7 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
while ((riff->nextlikely+12) <= last) {
guint32 *words = (guint32 *)((guchar *)GST_BUFFER_DATA(buf) + riff->nextlikely - off );
// loop over all of the chunks to check which one is finished
/* loop over all of the chunks to check which one is finished */
while (riff->chunks) {
chunk = g_list_nth_data(riff->chunks, 0);
@ -138,7 +138,7 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
chunk->offset, chunk->size);
if (riff->nextlikely >= chunk->offset+chunk->size) {
GST_DEBUG (0,"gst_riff_parser: found END LIST\n");
// we have the end of the chunk on the stack, remove it
/* we have the end of the chunk on the stack, remove it */
riff->chunks = g_list_remove(riff->chunks, chunk);
}
else break;
@ -153,17 +153,17 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
chunk->id = GUINT32_FROM_LE (words[0]);
chunk->size = GUINT32_FROM_LE (words[1]);
chunk->data = (gchar *)(words+2);
// we need word alignment
//if (chunk->size & 0x01) chunk->size++;
/* we need word alignment */
/*if (chunk->size & 0x01) chunk->size++; */
chunk->form = GUINT32_FROM_LE (words[2]); /* fill in the form, might not be valid */
if (chunk->id == GST_RIFF_TAG_LIST) {
GST_DEBUG (0,"found LIST %s\n", gst_riff_id_to_fourcc(chunk->form));
riff->nextlikely += 12;
// we push the list chunk on our 'stack'
/* we push the list chunk on our 'stack' */
riff->chunks = g_list_prepend(riff->chunks,chunk);
// send the buffer to the listener if we have received a function
/* send the buffer to the listener if we have received a function */
if (riff->new_tag_found) {
riff->new_tag_found(chunk, riff->callback_data);
}
@ -175,7 +175,7 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
gst_riff_id_to_fourcc(GUINT32_FROM_LE (words[0])), GUINT32_FROM_LE (words[1]));
riff->nextlikely += 8 + chunk->size; /* doesn't include hdr */
// if this buffer is incomplete
/* if this buffer is incomplete */
if (riff->nextlikely > last) {
guint left = size - (riff->nextlikely - chunk->size - off);
@ -186,7 +186,7 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
riff->incomplete_chunk_size = left;
}
else {
// send the buffer to the listener if we have received a function
/* send the buffer to the listener if we have received a function */
if (riff->new_tag_found) {
riff->new_tag_found(chunk, riff->callback_data);
}
@ -194,7 +194,7 @@ gst_riff_parser_next_buffer (GstRiff *riff, GstBuffer *buf, gulong off)
}
if (riff->nextlikely & 0x01) riff->nextlikely++;
//riff->chunks = g_list_prepend(riff->chunks,chunk);
/*riff->chunks = g_list_prepend(riff->chunks,chunk); */
}
}
if ((riff->nextlikely+12) > last && !riff->incomplete_chunk) {

View file

@ -20,7 +20,7 @@
#include <riff.h>
//#define debug(format,args...) g_print(format,##args)
/*#define debug(format,args...) g_print(format,##args) */
#define debug(format,args...)

View file

@ -7,7 +7,7 @@ libgstac3parse_la_SOURCES = gstac3parse.c
noinst_HEADERS = gstac3parse.h
libgstac3parse_la_CFLAGS = -O3 $(FOMIT_FRAME_POINTER) -funroll-all-loops -finline-functions -ffast-math $(GST_CFLAGS)
libgstac3parse_la_LIBADD = $(GST_LIBS)
libgstac3parse_la_LIBADD =
libgstac3parse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
EXTRA_DIST = README

View file

@ -6,12 +6,12 @@ plugin_LTLIBRARIES = libgstmpegaudioparse.la libgstmp3types.la
libgstmpegaudioparse_la_SOURCES = gstmpegaudioparse.c
# FIXME is this useful?
libgstmpegaudioparse_la_CFLAGS = -O3 $(FOMIT_FRAME_POINTER) -ffast-math -finline-functions $(GST_CFLAGS)
libgstmpegaudioparse_la_LIBADD = $(GST_LIBS)
libgstmpegaudioparse_la_LIBADD =
libgstmpegaudioparse_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstmp3types_la_SOURCES = gstmp3types.c
libgstmp3types_la_CFLAGS = -O3 $(FOMIT_FRAME_POINTER) -ffast-math -finline-functions $(GST_CFLAGS)
libgstmp3types_la_LIBADD = $(GST_LIBS)
libgstmp3types_la_LIBADD =
libgstmp3types_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
noinst_HEADERS = gstmpegaudioparse.h

View file

@ -17,7 +17,7 @@
* Boston, MA 02111-1307, USA.
*/
//#define DEBUG_ENABLED
/*#define DEBUG_ENABLED */
#include <gst/gst.h>
#include <string.h> /* memcmp */

View file

@ -17,7 +17,7 @@
* Boston, MA 02111-1307, USA.
*/
//#define GST_DEBUG_ENABLED
/*#define GST_DEBUG_ENABLED */
#include <gstmpegaudioparse.h>
@ -94,7 +94,7 @@ static void gst_mp3parse_set_property (GObject *object, guint prop_id, const GV
static void gst_mp3parse_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec);
static GstElementClass *parent_class = NULL;
//static guint gst_mp3parse_signals[LAST_SIGNAL] = { 0 };
/*static guint gst_mp3parse_signals[LAST_SIGNAL] = { 0 }; */
GType
gst_mp3parse_get_type(void) {
@ -127,10 +127,10 @@ gst_mp3parse_class_init (GstMPEGAudioParseClass *klass)
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_SKIP,
g_param_spec_int("skip","skip","skip",
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); // CHECKME
G_MININT,G_MAXINT,0,G_PARAM_READWRITE)); /* CHECKME */
g_object_class_install_property(G_OBJECT_CLASS(klass), ARG_BIT_RATE,
g_param_spec_int("bit_rate","bit_rate","bit_rate",
G_MININT,G_MAXINT,0,G_PARAM_READABLE)); // CHECKME
G_MININT,G_MAXINT,0,G_PARAM_READABLE)); /* CHECKME */
parent_class = g_type_class_ref(GST_TYPE_ELEMENT);
@ -144,15 +144,15 @@ gst_mp3parse_init (GstMPEGAudioParse *mp3parse)
mp3parse->sinkpad = gst_pad_new_from_template(sink_temp, "sink");
gst_element_add_pad(GST_ELEMENT(mp3parse),mp3parse->sinkpad);
#if 1 // set this to one to use the old chaining code
#if 1 /* set this to one to use the old chaining code */
gst_pad_set_chain_function(mp3parse->sinkpad,gst_mp3parse_chain);
#else // else you get the new loop-based code, which isn't complete yet
#else /* else you get the new loop-based code, which isn't complete yet */
gst_element_set_loop_function (GST_ELEMENT(mp3parse),gst_mp3parse_loop);
#endif
mp3parse->srcpad = gst_pad_new_from_template(src_temp, "src");
gst_element_add_pad(GST_ELEMENT(mp3parse),mp3parse->srcpad);
//gst_pad_set_type_id(mp3parse->srcpad, mp3frametype);
/*gst_pad_set_type_id(mp3parse->srcpad, mp3frametype); */
mp3parse->partialbuf = NULL;
mp3parse->skip = 0;
@ -190,31 +190,31 @@ gst_mp3parse_loop (GstElement *element)
gint bpf;
while (1) {
// get a new buffer
/* get a new buffer */
inbuf = gst_pad_pull (parse->sinkpad);
size = GST_BUFFER_SIZE (inbuf);
data = GST_BUFFER_DATA (inbuf);
offset = 0;
fprintf(stderr, "have buffer of %d bytes\n",size);
// loop through it and find all the frames
/* loop through it and find all the frames */
while (offset < (size - 4)) {
start = gst_mp3parse_next_header (data,size,offset);
fprintf(stderr, "skipped %d bytes searching for the next header\n",start-offset);
header = GULONG_FROM_BE(*((guint32 *)(data+start)));
fprintf(stderr, "header is 0x%08x\n",header);
// figure out how big the frame is supposed to be
/* figure out how big the frame is supposed to be */
bpf = bpf_from_header (parse, header);
// see if there are enough bytes in this buffer for the whole frame
/* see if there are enough bytes in this buffer for the whole frame */
if ((start + bpf) <= size) {
outbuf = gst_buffer_create_sub (inbuf,start,bpf);
fprintf(stderr, "sending buffer of %d bytes\n",bpf);
gst_pad_push (parse->srcpad, outbuf);
offset = start + bpf;
// if not, we have to deal with it somehow
/* if not, we have to deal with it somehow */
} else {
fprintf(stderr,"don't have enough data for this frame\n");
@ -238,7 +238,7 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
g_return_if_fail(pad != NULL);
g_return_if_fail(GST_IS_PAD(pad));
g_return_if_fail(buf != NULL);
// g_return_if_fail(GST_IS_BUFFER(buf));
/* g_return_if_fail(GST_IS_BUFFER(buf)); */
mp3parse = GST_MP3PARSE (gst_pad_get_parent (pad));
@ -255,11 +255,11 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
mp3parse->in_flush = TRUE;
*/
// if we have something left from the previous frame
/* if we have something left from the previous frame */
if (mp3parse->partialbuf) {
mp3parse->partialbuf = gst_buffer_append(mp3parse->partialbuf, buf);
// and the one we received..
/* and the one we received.. */
gst_buffer_unref(buf);
}
else {
@ -269,22 +269,22 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
size = GST_BUFFER_SIZE(mp3parse->partialbuf);
data = GST_BUFFER_DATA(mp3parse->partialbuf);
// while we still have bytes left -4 for the header
/* while we still have bytes left -4 for the header */
while (offset < size-4) {
int skipped = 0;
GST_DEBUG (0,"mp3parse: offset %ld, size %ld \n",offset, size);
// search for a possible start byte
/* search for a possible start byte */
for (;((data[offset] != 0xff) && (offset < size));offset++) skipped++;
if (skipped && !mp3parse->in_flush) {
GST_DEBUG (0,"mp3parse: **** now at %ld skipped %d bytes\n",offset,skipped);
}
// construct the header word
/* construct the header word */
header = GULONG_FROM_BE(*((gulong *)(data+offset)));
// if it's a valid header, go ahead and send off the frame
/* if it's a valid header, go ahead and send off the frame */
if (head_check(header)) {
// calculate the bpf of the frame
/* calculate the bpf of the frame */
bpf = bpf_from_header(mp3parse, header);
/********************************************************************************
@ -302,22 +302,22 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
if ( mp3parse->in_flush ) {
unsigned long header2;
if ((size-offset)<(bpf+4)) { if (mp3parse->in_flush) break; } // wait until we have the the entire current frame as well as the next frame header
if ((size-offset)<(bpf+4)) { if (mp3parse->in_flush) break; } /* wait until we have the the entire current frame as well as the next frame header */
header2 = GULONG_FROM_BE(*((gulong *)(data+offset+bpf)));
GST_DEBUG(0,"mp3parse: header=%08lX, header2=%08lX, bpf=%d\n", header, header2, bpf );
#define HDRMASK ~( (0xF<<12)/*bitrate*/ | (1<<9)/*padding*/ | (3<<4)/*mode extension*/ ) // mask the bits which are allowed to differ between frames
#define HDRMASK ~( (0xF<<12)/*bitrate*/ | (1<<9)/*padding*/ | (3<<4)/*mode extension*/ ) /* mask the bits which are allowed to differ between frames */
if ( (header2&HDRMASK) != (header&HDRMASK) ) { // require 2 matching headers in a row
if ( (header2&HDRMASK) != (header&HDRMASK) ) { /* require 2 matching headers in a row */
GST_DEBUG(0,"mp3parse: next header doesn't match (header=%08lX, header2=%08lX, bpf=%d)\n", header, header2, bpf );
offset++; // This frame is invalid. Start looking for a valid frame at the next position in the stream
offset++; /* This frame is invalid. Start looking for a valid frame at the next position in the stream */
continue;
}
}
// if we don't have the whole frame...
/* if we don't have the whole frame... */
if ((size - offset) < bpf) {
GST_DEBUG (0,"mp3parse: partial buffer needed %ld < %d \n",(size-offset), bpf);
break;
@ -346,8 +346,8 @@ gst_mp3parse_chain (GstPad *pad, GstBuffer *buf)
if (!mp3parse->in_flush) GST_DEBUG (0,"mp3parse: *** wrong header, skipping byte (FIXME?)\n");
}
}
// if we have processed this block and there are still
// bytes left not in a partial block, copy them over.
/* if we have processed this block and there are still */
/* bytes left not in a partial block, copy them over. */
if (size-offset > 0) {
glong remainder = (size - offset);
GST_DEBUG (0,"mp3parse: partial buffer needed %ld for trailing bytes\n",remainder);
@ -381,7 +381,7 @@ bpf_from_header (GstMPEGAudioParse *parse, unsigned long header)
int layer_index,layer,lsf,samplerate_index,padding;
long bpf;
//mpegver = (header >> 19) & 0x3; // don't need this for bpf
/*mpegver = (header >> 19) & 0x3; // don't need this for bpf */
layer_index = (header >> 17) & 0x3;
layer = 4 - layer_index;
lsf = (header & (1 << 20)) ? ((header & (1 << 19)) ? 0 : 1) : 1;
@ -399,8 +399,8 @@ bpf_from_header (GstMPEGAudioParse *parse, unsigned long header)
bpf += padding;
}
//g_print("%08x: layer %d lsf %d bitrate %d samplerate_index %d padding %d - bpf %d\n",
//header,layer,lsf,bitrate,samplerate_index,padding,bpf);
/*g_print("%08x: layer %d lsf %d bitrate %d samplerate_index %d padding %d - bpf %d\n", */
/*header,layer,lsf,bitrate,samplerate_index,padding,bpf); */
return bpf;
}

View file

@ -50,7 +50,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;
gboolean in_flush;

View file

@ -4,7 +4,7 @@ plugin_LTLIBRARIES = libgstmpegstream.la
libgstmpegstream_la_SOURCES = gstmpegstream.c gstmpegparse.c gstmpegdemux.c gstmpegpacketize.c gstrfc2250enc.c
libgstmpegstream_la_CFLAGS = $(GST_CFLAGS) -O3 $(FOMIT_FRAME_POINTER) -ffast-math
libgstmpegstream_la_LIBADD = $(GST_LIBS)
libgstmpegstream_la_LIBADD =
libgstmpegstream_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
noinst_HEADERS = gstmpegparse.h gstmpegdemux.h gstmpegpacketize.h gstrfc2250enc.h

View file

@ -7,6 +7,6 @@ libgstsynaesthesia_la_SOURCES = gstsynaesthesia.c synaescope.c
noinst_HEADERS = synaescope.h
libgstsynaesthesia_la_CFLAGS = -O2 -ffast-math $(GST_CFLAGS)
libgstsynaesthesia_la_LIBADD = $(GST_LIBS)
libgstsynaesthesia_la_LIBADD =
libgstsynaesthesia_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)

View file

@ -38,11 +38,11 @@ struct _GstSynaesthesia {
GstPad *sinkpad,*srcpad;
GstBufferPool *peerpool;
// the timestamp of the next frame
/* the timestamp of the next frame */
guint64 next_time;
gint16 datain[2][512];
// video state
/* video state */
gint fps;
gint width;
gint height;
@ -198,11 +198,11 @@ gst_synaesthesia_init (GstSynaesthesia *synaesthesia)
synaesthesia->next_time = 0;
synaesthesia->peerpool = NULL;
// reset the initial video state
/* reset the initial video state */
synaesthesia->first_buffer = TRUE;
synaesthesia->width = 320;
synaesthesia->height = 200;
synaesthesia->fps = 25; // desired frame rate
synaesthesia->fps = 25; /* desired frame rate */
}

View file

@ -140,25 +140,25 @@ static void synaescope_coreGo(void) {
( (x1+x2) * (x1-x2) + (y1+y2) * (y1-y2) )/(aa+bb) * 256 );
}
// Asger Alstrupt's optimized 32 bit fade
// (alstrup@diku.dk)
/* Asger Alstrupt's optimized 32 bit fade */
/* (alstrup@diku.dk) */
ptr = (unsigned long*)output;
end = (unsigned long*)(output + syn_width * syn_height * 2);
do {
//Bytewize version was: *(ptr++) -= *ptr+(*ptr>>1)>>4;
/*Bytewize version was: *(ptr++) -= *ptr+(*ptr>>1)>>4; */
if (*ptr)
if (*ptr & 0xf0f0f0f0)
*ptr = *ptr - ((*ptr & 0xf0f0f0f0) >> 4) - ((*ptr & 0xe0e0e0e0) >> 5);
else {
*ptr = (*ptr * 14 >> 4) & 0x0f0f0f0f;
//Should be 29/32 to be consistent. Who cares. This is totally
// hacked anyway.
//unsigned char *subptr = (unsigned char*)(ptr++);
//subptr[0] = (int)subptr[0] * 29 / 32;
//subptr[1] = (int)subptr[0] * 29 / 32;
//subptr[2] = (int)subptr[0] * 29 / 32;
//subptr[3] = (int)subptr[0] * 29 / 32;
/*Should be 29/32 to be consistent. Who cares. This is totally */
/* hacked anyway. */
/*unsigned char *subptr = (unsigned char*)(ptr++); */
/*subptr[0] = (int)subptr[0] * 29 / 32; */
/*subptr[1] = (int)subptr[0] * 29 / 32; */
/*subptr[2] = (int)subptr[0] * 29 / 32; */
/*subptr[3] = (int)subptr[0] * 29 / 32; */
}
ptr++;
} while(ptr < end);
@ -173,10 +173,10 @@ static void synaescope_coreGo(void) {
brtot = 0;
for(i=1;i<FFT_BUFFER_SIZE/2;i++) {
//int h = (int)( corr_r[i]*280 / (corr_l[i]+corr_r[i]+0.0001)+20 );
/*int h = (int)( corr_r[i]*280 / (corr_l[i]+corr_r[i]+0.0001)+20 ); */
if (corr_l[i] > 0 || corr_r[i] > 0) {
int h = (int)( corr_r[i] * syn_width / (corr_l[i]+corr_r[i]) );
// int h = (int)( syn_width - 1 );
/* int h = (int)( syn_width - 1 ); */
int br1, br2, br = (int)(
(corr_l[i]+corr_r[i])*i*brightFactor2 );
int px = h,
@ -186,7 +186,7 @@ static void synaescope_coreGo(void) {
br2 = br*(128-clarity[i])>>8;
if (br1 < 0) br1 = 0; else if (br1 > 255) br1 = 255;
if (br2 < 0) br2 = 0; else if (br2 > 255) br2 = 255;
//unsigned char *p = output+ h*2+(164-((i<<8)>>FFT_BUFFER_SIZE_LOG))*(syn_width*2);
/*unsigned char *p = output+ h*2+(164-((i<<8)>>FFT_BUFFER_SIZE_LOG))*(syn_width*2); */
if (px < 30 || py < 30 || px > syn_width-30 || py > syn_height-30) {
addPixel(output, px,py,br1,br2);
@ -289,7 +289,7 @@ static void synaescope16(void *data)
colEq[i] = color.pixel;
}
// Create render image
/* Create render image */
if (image) {
gdk_image_destroy(image);
image = NULL;
@ -342,7 +342,7 @@ static void synaescope8(void *data)
colEq[i * 4 + 3] = color.pixel;
}
// Create render image
/* Create render image */
if (image) {
gdk_image_destroy(image);
image = NULL;
@ -409,13 +409,13 @@ static void init_synaescope()
for(i = 0; i <= FFT_BUFFER_SIZE / 2 + 1; i++) {
double mult = (double)128 / ((FFT_BUFFER_SIZE * 16384) ^ 2);
// Result now guaranteed (well, almost) to be in range 0..128
/* Result now guaranteed (well, almost) to be in range 0..128 */
// Low values represent more frequencies, and thus get more
// intensity - this helps correct for that.
/* Low values represent more frequencies, and thus get more */
/* intensity - this helps correct for that. */
mult *= log(i + 1) / log(2);
mult *= 3; // Adhoc parameter, looks about right for me.
mult *= 3; /* Adhoc parameter, looks about right for me. */
fftmult[i] = mult;
}