summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 29ea571)
raw | patch | inline | side by side (parent: 29ea571)
author | Andy Wingo <wingo@pobox.com> | |
Tue, 19 Mar 2002 04:10:05 +0000 (04:10 +0000) | ||
committer | Andy Wingo <wingo@pobox.com> | |
Tue, 19 Mar 2002 04:10:05 +0000 (04:10 +0000) |
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.
* 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.
36 files changed:
index bd0b916e2675547e6473437656dca59b9198db12..3b57967f5f9d3fc9cf9ea894e320bc659f690542 100644 (file)
--- a/examples/gob/Makefile.am
+++ b/examples/gob/Makefile.am
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 $<
diff --git a/ext/a52dec/Makefile.am b/ext/a52dec/Makefile.am
index 069c98d4dab11b5348ceed9bd4642bc4257750ca..f8b0fb1a0a919f48f61be677ab67b1e69cf86127 100644 (file)
--- a/ext/a52dec/Makefile.am
+++ b/ext/a52dec/Makefile.am
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
index c39296ad32dea7dd3f39ee0597043808afa32f8d..4a17d99939c1283d0460007ac10aae439112afa7 100644 (file)
--- a/ext/dvdread/Makefile.am
+++ b/ext/dvdread/Makefile.am
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
index ca3a902aef4aa468a86a7b038cef61f598a91d5e..7bb41f6b2974f3f621626d9b53b289ed43b403d4 100644 (file)
--- a/ext/dvdread/demo-play.c
+++ b/ext/dvdread/demo-play.c
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);
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));
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);
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);
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 ();
diff --git a/ext/dvdread/dvdsrc.c b/ext/dvdread/dvdsrc.c
index 372c13d9a012dd32f75d4376509ace842e6250bb..451ca2eb753e3e3726e0bb8922a841330ed3b18c 100644 (file)
--- a/ext/dvdread/dvdsrc.c
+++ b/ext/dvdread/dvdsrc.c
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)
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);
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);
*/
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); */
/**
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);
diff --git a/ext/dvdread/dvdsrc.h b/ext/dvdread/dvdsrc.h
index 2eb9937aca86b7199478e168d994c0b074b412dc..0ab2239f64a22279f3927174987f9daa964822f2 100644 (file)
--- a/ext/dvdread/dvdsrc.h
+++ b/ext/dvdread/dvdsrc.h
#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,
diff --git a/ext/lame/Makefile.am b/ext/lame/Makefile.am
index 535635ec6a17ad46aeb50b1328b7406e1db7d578..b9215a775939c8af482711ef2b064e97866b0744 100644 (file)
--- a/ext/lame/Makefile.am
+++ b/ext/lame/Makefile.am
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
diff --git a/ext/lame/gstlame.c b/ext/lame/gstlame.c
index ae4be6013552914e775f5b3f45154b4c5eaa9a42..6806bd6c3535eab335ee24b5d446711ed5ca0f5b 100644 (file)
--- a/ext/lame/gstlame.c
+++ b/ext/lame/gstlame.c
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,
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));
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;
diff --git a/ext/mad/Makefile.am b/ext/mad/Makefile.am
index 694f45f8bb7ddb29356a33d5d33b6a6f6e1f7f87..ace660aba07494be16bbb2947069937fa2247d78 100644 (file)
--- a/ext/mad/Makefile.am
+++ b/ext/mad/Makefile.am
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)
index 55d5f329a4499ce31d4f69a752f56034070f10c6..d283793d57be9cdef59ca27469c2ffe2f65a7ca9 100644 (file)
--- a/ext/mpeg2dec/Makefile.am
+++ b/ext/mpeg2dec/Makefile.am
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
index 4d1a39bc692425e5f44529a4b27cd7c84bd8ec83..fb56e77fce38e64582820cbd7a6011b032f38fea 100644 (file)
/* 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);
index 0e873cbbcb2f03cd0c9df023e6a653069cc1c017..0981b445c52dc6efaaf91c7b6458f57f419739f8 100644 (file)
--- a/ext/sidplay/Makefile.am
+++ b/ext/sidplay/Makefile.am
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
index 082ace35c7fac7d9f84fb34b28898b6fb5550f24..b6e7b47dd358c266d5fcc371cfa6799581d312c9 100644 (file)
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)
index 31b9ed89b2914f828079da356d60c33c6c16af33..1a0bcf224931f53749647582b7f49baa9ac70902 100644 (file)
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");
index 8fea312184cb7b50c688a8c26cafb6e7bfc26f43..8b9d86ba02ca8ec21777ce29f65f70cd5f9b6f0b 100644 (file)
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)
index 23d64eb5b12bfce4b919cee66202145f8e2303d3..5925a6fd74151fa27fe2e816c904c7173a9a5632 100644 (file)
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;
index 78bf45bf2500d2bd5329e163bccf978a57edf9cb..0090d8a72343e4639c237903222a4a05220e5c94 100644 (file)
*/\r
\r
\r
-// MMX32 iDCT algorithm (IEEE-1180 compliant) :: idct_mmx32()\r
-//\r
-// MPEG2AVI\r
-// --------\r
-// v0.16B33 initial release\r
-//\r
-// This was one of the harder pieces of work to code.\r
-// Intel's app-note focuses on the numerical issues of the algorithm, but\r
-// assumes the programmer is familiar with IDCT mathematics, leaving the\r
-// form of the complete function up to the programmer's imagination.\r
-//\r
-// ALGORITHM OVERVIEW\r
-// ------------------\r
-// I played around with the code for quite a few hours. I came up\r
-// with *A* working IDCT algorithm, however I'm not sure whether my routine\r
-// is "the correct one." But rest assured, my code passes all six IEEE \r
-// accuracy tests with plenty of margin.\r
-//\r
-// My IDCT algorithm consists of 4 steps:\r
-//\r
-// 1) IDCT-row transformation (using the IDCT-row function) on all 8 rows\r
-// This yields an intermediate 8x8 matrix.\r
-//\r
-// 2) intermediate matrix transpose (mandatory)\r
-//\r
-// 3) IDCT-row transformation (2nd time) on all 8 rows of the intermediate\r
-// matrix. The output is the final-result, in transposed form.\r
-//\r
-// 4) post-transformation matrix transpose \r
-// (not necessary if the input-data is already transposed, this could\r
-// be done during the MPEG "zig-zag" scan, but since my algorithm\r
-// requires at least one transpose operation, why not re-use the\r
-// transpose-code.)\r
-//\r
-// Although the (1st) and (3rd) steps use the SAME row-transform operation,\r
-// the (3rd) step uses different shift&round constants (explained later.)\r
-//\r
-// Also note that the intermediate transpose (2) would not be neccessary,\r
-// if the subsequent operation were a iDCT-column transformation. Since\r
-// we only have the iDCT-row transform, we transpose the intermediate\r
-// matrix and use the iDCT-row transform a 2nd time.\r
-//\r
-// I had to change some constants/variables for my method to work :\r
-//\r
-// As given by Intel, the #defines for SHIFT_INV_COL and RND_INV_COL are\r
-// wrong. Not surprising since I'm not using a true column-transform \r
-// operation, but the row-transform operation (as mentioned earlier.)\r
-// round_inv_col[], which is given as "4 short" values, should have the\r
-// same dimensions as round_inv_row[]. The corrected variables are \r
-// shown.\r
-//\r
-// Intel's code defines a different table for each each row operation.\r
-// The tables given are 0/4, 1/7, 2/6, and 5/3. My code only uses row#0.\r
-// Using the other rows messes up the overall transform.\r
-//\r
-// IMPLEMENTATION DETAILs\r
-// ----------------------\r
-// \r
-// I divided the algorithm's work into two subroutines,\r
-// 1) idct_mmx32_rows() - transforms 8 rows, then transpose\r
-// 2) idct_mmx32_cols() - transforms 8 rows, then transpose\r
-// yields final result ("drop-in" direct replacement for INT32 IDCT)\r
-//\r
-// The 2nd function is a clone of the 1st, with changes made only to the\r
-// shift&rounding instructions.\r
-//\r
-// In the 1st function (rows), the shift & round instructions use \r
-// SHIFT_INV_ROW & round_inv_row[] (renamed to r_inv_row[])\r
-//\r
-// In the 2nd function (cols)-> r_inv_col[], and\r
-// SHIFT_INV_COL & round_inv_col[] (renamed to r_inv_col[])\r
-//\r
-// Each function contains an integrated transpose-operator, which comes\r
-// AFTER the primary transformation operation. In the future, I'll optimize\r
-// the code to do more of the transpose-work "in-place". Right now, I've\r
-// left the code as two subroutines and a main calling function, so other\r
-// people can read the code more easily.\r
-//\r
-// liaor@umcc.ais.org http://members.tripod.com/~liaor\r
-// \r
-\r
-\r
-//;=============================================================================\r
-//;\r
-//; AP-922 http://developer.intel.com/vtune/cbts/strmsimd\r
-//; These examples contain code fragments for first stage iDCT 8x8\r
-//; (for rows) and first stage DCT 8x8 (for columns)\r
-//;\r
-//;=============================================================================\r
+/* MMX32 iDCT algorithm (IEEE-1180 compliant) :: idct_mmx32()\r */
+/*\r */
+/* MPEG2AVI\r */
+/* --------\r */
+/* v0.16B33 initial release\r */
+/*\r */
+/* This was one of the harder pieces of work to code.\r */
+/* Intel's app-note focuses on the numerical issues of the algorithm, but\r */
+/* assumes the programmer is familiar with IDCT mathematics, leaving the\r */
+/* form of the complete function up to the programmer's imagination.\r */
+/*\r */
+/* ALGORITHM OVERVIEW\r */
+/* ------------------\r */
+/* I played around with the code for quite a few hours. I came up\r */
+/* with *A* working IDCT algorithm, however I'm not sure whether my routine\r */
+/* is "the correct one." But rest assured, my code passes all six IEEE \r */
+/* accuracy tests with plenty of margin.\r */
+/*\r */
+/* My IDCT algorithm consists of 4 steps:\r */
+/*\r */
+/* 1) IDCT-row transformation (using the IDCT-row function) on all 8 rows\r */
+/* This yields an intermediate 8x8 matrix.\r */
+/*\r */
+/* 2) intermediate matrix transpose (mandatory)\r */
+/*\r */
+/* 3) IDCT-row transformation (2nd time) on all 8 rows of the intermediate\r */
+/* matrix. The output is the final-result, in transposed form.\r */
+/*\r */
+/* 4) post-transformation matrix transpose \r */
+/* (not necessary if the input-data is already transposed, this could\r */
+/* be done during the MPEG "zig-zag" scan, but since my algorithm\r */
+/* requires at least one transpose operation, why not re-use the\r */
+/* transpose-code.)\r */
+/*\r */
+/* Although the (1st) and (3rd) steps use the SAME row-transform operation,\r */
+/* the (3rd) step uses different shift&round constants (explained later.)\r */
+/*\r */
+/* Also note that the intermediate transpose (2) would not be neccessary,\r */
+/* if the subsequent operation were a iDCT-column transformation. Since\r */
+/* we only have the iDCT-row transform, we transpose the intermediate\r */
+/* matrix and use the iDCT-row transform a 2nd time.\r */
+/*\r */
+/* I had to change some constants/variables for my method to work :\r */
+/*\r */
+/* As given by Intel, the #defines for SHIFT_INV_COL and RND_INV_COL are\r */
+/* wrong. Not surprising since I'm not using a true column-transform \r */
+/* operation, but the row-transform operation (as mentioned earlier.)\r */
+/* round_inv_col[], which is given as "4 short" values, should have the\r */
+/* same dimensions as round_inv_row[]. The corrected variables are \r */
+/* shown.\r */
+/*\r */
+/* Intel's code defines a different table for each each row operation.\r */
+/* The tables given are 0/4, 1/7, 2/6, and 5/3. My code only uses row#0.\r */
+/* Using the other rows messes up the overall transform.\r */
+/*\r */
+/* IMPLEMENTATION DETAILs\r */
+/* ----------------------\r */
+/* \r */
+/* I divided the algorithm's work into two subroutines,\r */
+/* 1) idct_mmx32_rows() - transforms 8 rows, then transpose\r */
+/* 2) idct_mmx32_cols() - transforms 8 rows, then transpose\r */
+/* yields final result ("drop-in" direct replacement for INT32 IDCT)\r */
+/*\r */
+/* The 2nd function is a clone of the 1st, with changes made only to the\r */
+/* shift&rounding instructions.\r */
+/*\r */
+/* In the 1st function (rows), the shift & round instructions use \r */
+/* SHIFT_INV_ROW & round_inv_row[] (renamed to r_inv_row[])\r */
+/*\r */
+/* In the 2nd function (cols)-> r_inv_col[], and\r */
+/* SHIFT_INV_COL & round_inv_col[] (renamed to r_inv_col[])\r */
+/*\r */
+/* Each function contains an integrated transpose-operator, which comes\r */
+/* AFTER the primary transformation operation. In the future, I'll optimize\r */
+/* the code to do more of the transpose-work "in-place". Right now, I've\r */
+/* left the code as two subroutines and a main calling function, so other\r */
+/* people can read the code more easily.\r */
+/*\r */
+/* liaor@umcc.ais.org http://members.tripod.com/~liaor\r */
+/* \r */
+\r
+\r
+/*;=============================================================================\r */
+/*;\r */
+/*; AP-922 http://developer.intel.com/vtune/cbts/strmsimd\r */
+/*; These examples contain code fragments for first stage iDCT 8x8\r */
+/*; (for rows) and first stage DCT 8x8 (for columns)\r */
+/*;\r */
+/*;=============================================================================\r */
/*\r
mword typedef qword\r
qword ptr equ mword ptr */\r
\r
#include <mmx.h>\r
\r
-#define BITS_INV_ACC 4 //; 4 or 5 for IEEE\r
- // 5 yields higher accuracy, but lessens dynamic range on the input matrix\r
+#define BITS_INV_ACC 4 /*; 4 or 5 for IEEE\r */
+ /* 5 yields higher accuracy, but lessens dynamic range on the input matrix\r */
#define SHIFT_INV_ROW (16 - BITS_INV_ACC)\r
-#define SHIFT_INV_COL (1 + BITS_INV_ACC +14 ) // changed from Intel's val)\r
-//#define SHIFT_INV_COL (1 + BITS_INV_ACC )\r
+#define SHIFT_INV_COL (1 + BITS_INV_ACC +14 ) /* changed from Intel's val)\r */
+/*#define SHIFT_INV_COL (1 + BITS_INV_ACC )\r */
\r
#define RND_INV_ROW (1 << (SHIFT_INV_ROW-1))\r
#define RND_INV_COL (1 << (SHIFT_INV_COL-1)) \r
-#define RND_INV_CORR (RND_INV_COL - 1) //; correction -1.0 and round\r
-//#define RND_INV_ROW (1024 * (6 - BITS_INV_ACC)) //; 1 << (SHIFT_INV_ROW-1)\r
-//#define RND_INV_COL (16 * (BITS_INV_ACC - 3)) //; 1 << (SHIFT_INV_COL-1)\r
+#define RND_INV_CORR (RND_INV_COL - 1) /*; correction -1.0 and round\r */
+/*#define RND_INV_ROW (1024 * (6 - BITS_INV_ACC)) //; 1 << (SHIFT_INV_ROW-1)\r */
+/*#define RND_INV_COL (16 * (BITS_INV_ACC - 3)) //; 1 << (SHIFT_INV_COL-1)\r */
\r
\r
-//.data\r
-//Align 16\r
+/*.data\r */
+/*Align 16\r */
const static long r_inv_row[2] = { RND_INV_ROW, RND_INV_ROW};\r
const static long r_inv_col[2] = {RND_INV_COL, RND_INV_COL};\r
const static long r_inv_corr[2] = {RND_INV_CORR, RND_INV_CORR };\r
\r
-//const static short r_inv_col[4] = \r
-// {RND_INV_COL, RND_INV_COL, RND_INV_COL, RND_INV_COL};\r
-//const static short r_inv_corr[4] =\r
-// {RND_INV_CORR, RND_INV_CORR, RND_INV_CORR, RND_INV_CORR};\r
+/*const static short r_inv_col[4] = \r */
+/* {RND_INV_COL, RND_INV_COL, RND_INV_COL, RND_INV_COL};\r */
+/*const static short r_inv_corr[4] =\r */
+/* {RND_INV_CORR, RND_INV_CORR, RND_INV_CORR, RND_INV_CORR};\r */
\r
/* constants for the forward DCT\r
\r
-//#define BITS_FRW_ACC 3 //; 2 or 3 for accuracy\r
-//#define SHIFT_FRW_COL BITS_FRW_ACC\r
-//#define SHIFT_FRW_ROW (BITS_FRW_ACC + 17)\r
-//#define RND_FRW_ROW (262144 * (BITS_FRW_ACC - 1)) //; 1 << (SHIFT_FRW_ROW-1)\r
+/*#define BITS_FRW_ACC 3 //; 2 or 3 for accuracy\r */
+/*#define SHIFT_FRW_COL BITS_FRW_ACC\r */
+/*#define SHIFT_FRW_ROW (BITS_FRW_ACC + 17)\r */
+/*#define RND_FRW_ROW (262144 * (BITS_FRW_ACC - 1)) //; 1 << (SHIFT_FRW_ROW-1)\r */
\r
const static __int64 one_corr = 0x0001000100010001;\r
const static long r_frw_row[2] = {RND_FRW_ROW, RND_FRW_ROW };\r
\r
-//const static short tg_1_16[4] = {13036, 13036, 13036, 13036 }; //tg * (2<<16) + 0.5\r
-//const static short tg_2_16[4] = {27146, 27146, 27146, 27146 }; //tg * (2<<16) + 0.5\r
-//const static short tg_3_16[4] = {-21746, -21746, -21746, -21746 }; //tg * (2<<16) + 0.5\r
-//const static short cos_4_16[4] = {-19195, -19195, -19195, -19195 }; //cos * (2<<16) + 0.5\r
-//const static short ocos_4_16[4] = {23170, 23170, 23170, 23170 }; //cos * (2<<15) + 0.5\r
+/*const static short tg_1_16[4] = {13036, 13036, 13036, 13036 }; //tg * (2<<16) + 0.5\r */
+/*const static short tg_2_16[4] = {27146, 27146, 27146, 27146 }; //tg * (2<<16) + 0.5\r */
+/*const static short tg_3_16[4] = {-21746, -21746, -21746, -21746 }; //tg * (2<<16) + 0.5\r */
+/*const static short cos_4_16[4] = {-19195, -19195, -19195, -19195 }; //cos * (2<<16) + 0.5\r */
+/*const static short ocos_4_16[4] = {23170, 23170, 23170, 23170 }; //cos * (2<<15) + 0.5\r */
\r
-//concatenated table, for forward DCT transformation\r
+/*concatenated table, for forward DCT transformation\r */
const static short tg_all_16[] = {\r
- 13036, 13036, 13036, 13036, // tg * (2<<16) + 0.5\r
- 27146, 27146, 27146, 27146, //tg * (2<<16) + 0.5\r
- -21746, -21746, -21746, -21746, // tg * (2<<16) + 0.5\r
- -19195, -19195, -19195, -19195, //cos * (2<<16) + 0.5\r
- 23170, 23170, 23170, 23170 }; //cos * (2<<15) + 0.5\r
+ 13036, 13036, 13036, 13036, /* tg * (2<<16) + 0.5\r */
+ 27146, 27146, 27146, 27146, /*tg * (2<<16) + 0.5\r */
+ -21746, -21746, -21746, -21746, /* tg * (2<<16) + 0.5\r */
+ -19195, -19195, -19195, -19195, /*cos * (2<<16) + 0.5\r */
+ 23170, 23170, 23170, 23170 }; /*cos * (2<<15) + 0.5\r */
\r
#define tg_1_16 (tg_all_16 + 0)\r
#define tg_2_16 (tg_all_16 + 8)\r
IF _MMX ; MMX code\r
;=============================================================================\r
\r
-//; Table for rows 0,4 - constants are multiplied by cos_4_16\r
+/*; Table for rows 0,4 - constants are multiplied by cos_4_16\r */
const short tab_i_04[] = {\r
- 16384, 16384, 16384, -16384, // ; movq-> w06 w04 w02 w00\r
- 21407, 8867, 8867, -21407, // w07 w05 w03 w01\r
- 16384, -16384, 16384, 16384, //; w14 w12 w10 w08\r
- -8867, 21407, -21407, -8867, //; w15 w13 w11 w09\r
- 22725, 12873, 19266, -22725, //; w22 w20 w18 w16\r
- 19266, 4520, -4520, -12873, //; w23 w21 w19 w17\r
- 12873, 4520, 4520, 19266, //; w30 w28 w26 w24\r
- -22725, 19266, -12873, -22725 };//w31 w29 w27 w25\r
-\r
-//; Table for rows 1,7 - constants are multiplied by cos_1_16\r
+ 16384, 16384, 16384, -16384, /* ; movq-> w06 w04 w02 w00\r */
+ 21407, 8867, 8867, -21407, /* w07 w05 w03 w01\r */
+ 16384, -16384, 16384, 16384, /*; w14 w12 w10 w08\r */
+ -8867, 21407, -21407, -8867, /*; w15 w13 w11 w09\r */
+ 22725, 12873, 19266, -22725, /*; w22 w20 w18 w16\r */
+ 19266, 4520, -4520, -12873, /*; w23 w21 w19 w17\r */
+ 12873, 4520, 4520, 19266, /*; w30 w28 w26 w24\r */
+ -22725, 19266, -12873, -22725 };/*w31 w29 w27 w25\r */
+\r
+/*; Table for rows 1,7 - constants are multiplied by cos_1_16\r */
const short tab_i_17[] = {\r
- 22725, 22725, 22725, -22725, // ; movq-> w06 w04 w02 w00\r
- 29692, 12299, 12299, -29692, // ; w07 w05 w03 w01\r
- 22725, -22725, 22725, 22725, //; w14 w12 w10 w08\r
- -12299, 29692, -29692, -12299, //; w15 w13 w11 w09\r
- 31521, 17855, 26722, -31521, //; w22 w20 w18 w16\r
- 26722, 6270, -6270, -17855, //; w23 w21 w19 w17\r
- 17855, 6270, 6270, 26722, //; w30 w28 w26 w24\r
- -31521, 26722, -17855, -31521}; // w31 w29 w27 w25\r
-\r
-//; Table for rows 2,6 - constants are multiplied by cos_2_16\r
+ 22725, 22725, 22725, -22725, /* ; movq-> w06 w04 w02 w00\r */
+ 29692, 12299, 12299, -29692, /* ; w07 w05 w03 w01\r */
+ 22725, -22725, 22725, 22725, /*; w14 w12 w10 w08\r */
+ -12299, 29692, -29692, -12299, /*; w15 w13 w11 w09\r */
+ 31521, 17855, 26722, -31521, /*; w22 w20 w18 w16\r */
+ 26722, 6270, -6270, -17855, /*; w23 w21 w19 w17\r */
+ 17855, 6270, 6270, 26722, /*; w30 w28 w26 w24\r */
+ -31521, 26722, -17855, -31521}; /* w31 w29 w27 w25\r */
+\r
+/*; Table for rows 2,6 - constants are multiplied by cos_2_16\r */
const short tab_i_26[] = {\r
- 21407, 21407, 21407, -21407, // ; movq-> w06 w04 w02 w00\r
- 27969, 11585, 11585, -27969, // ; w07 w05 w03 w01\r
- 21407, -21407, 21407, 21407, // ; w14 w12 w10 w08\r
- -11585, 27969, -27969, -11585, // ;w15 w13 w11 w09\r
- 29692, 16819, 25172, -29692, // ;w22 w20 w18 w16\r
- 25172, 5906, -5906, -16819, // ;w23 w21 w19 w17\r
- 16819, 5906, 5906, 25172, // ;w30 w28 w26 w24\r
- -29692, 25172, -16819, -29692}; // ;w31 w29 w27 w25\r
+ 21407, 21407, 21407, -21407, /* ; movq-> w06 w04 w02 w00\r */
+ 27969, 11585, 11585, -27969, /* ; w07 w05 w03 w01\r */
+ 21407, -21407, 21407, 21407, /* ; w14 w12 w10 w08\r */
+ -11585, 27969, -27969, -11585, /* ;w15 w13 w11 w09\r */
+ 29692, 16819, 25172, -29692, /* ;w22 w20 w18 w16\r */
+ 25172, 5906, -5906, -16819, /* ;w23 w21 w19 w17\r */
+ 16819, 5906, 5906, 25172, /* ;w30 w28 w26 w24\r */
+ -29692, 25172, -16819, -29692}; /* ;w31 w29 w27 w25\r */
\r
\r
-//; Table for rows 3,5 - constants are multiplied by cos_3_16\r
+/*; Table for rows 3,5 - constants are multiplied by cos_3_16\r */
const short tab_i_35[] = {\r
- 19266, 19266, 19266, -19266, //; movq-> w06 w04 w02 w00\r
- 25172, 10426, 10426, -25172, //; w07 w05 w03 w01\r
- 19266, -19266, 19266, 19266, //; w14 w12 w10 w08\r
- -10426, 25172, -25172, -10426, //; w15 w13 w11 w09\r
- 26722, 15137, 22654, -26722, //; w22 w20 w18 w16\r
- 22654, 5315, -5315, -15137, //; w23 w21 w19 w17\r
- 15137, 5315, 5315, 22654, //; w30 w28 w26 w24\r
- -26722, 22654, -15137, -26722}; //; w31 w29 w27 w25\r
+ 19266, 19266, 19266, -19266, /*; movq-> w06 w04 w02 w00\r */
+ 25172, 10426, 10426, -25172, /*; w07 w05 w03 w01\r */
+ 19266, -19266, 19266, 19266, /*; w14 w12 w10 w08\r */
+ -10426, 25172, -25172, -10426, /*; w15 w13 w11 w09\r */
+ 26722, 15137, 22654, -26722, /*; w22 w20 w18 w16\r */
+ 22654, 5315, -5315, -15137, /*; w23 w21 w19 w17\r */
+ 15137, 5315, 5315, 22654, /*; w30 w28 w26 w24\r */
+ -26722, 22654, -15137, -26722}; /*; w31 w29 w27 w25\r */
*/\r
\r
-// CONCATENATED TABLE, rows 0,1,2,3,4,5,6,7 (in order )\r
-//\r
-// In our implementation, however, we only use row0 !\r
-//\r
+/* CONCATENATED TABLE, rows 0,1,2,3,4,5,6,7 (in order )\r */
+/*\r */
+/* In our implementation, however, we only use row0 !\r */
+/*\r */
static const short tab_i_01234567[] = {\r
- //row0, this row is required\r
- 16384, 16384, 16384, -16384, // ; movq-> w06 w04 w02 w00\r
- 21407, 8867, 8867, -21407, // w07 w05 w03 w01\r
- 16384, -16384, 16384, 16384, //; w14 w12 w10 w08\r
- -8867, 21407, -21407, -8867, //; w15 w13 w11 w09\r
- 22725, 12873, 19266, -22725, //; w22 w20 w18 w16\r
- 19266, 4520, -4520, -12873, //; w23 w21 w19 w17\r
- 12873, 4520, 4520, 19266, //; w30 w28 w26 w24\r
- -22725, 19266, -12873, -22725, //w31 w29 w27 w25\r
-\r
- // the rest of these rows (1-7), aren't used !\r
-\r
- //row1\r
- 22725, 22725, 22725, -22725, // ; movq-> w06 w04 w02 w00\r
- 29692, 12299, 12299, -29692, // ; w07 w05 w03 w01\r
- 22725, -22725, 22725, 22725, //; w14 w12 w10 w08\r
- -12299, 29692, -29692, -12299, //; w15 w13 w11 w09\r
- 31521, 17855, 26722, -31521, //; w22 w20 w18 w16\r
- 26722, 6270, -6270, -17855, //; w23 w21 w19 w17\r
- 17855, 6270, 6270, 26722, //; w30 w28 w26 w24\r
- -31521, 26722, -17855, -31521, // w31 w29 w27 w25\r
-\r
- //row2\r
- 21407, 21407, 21407, -21407, // ; movq-> w06 w04 w02 w00\r
- 27969, 11585, 11585, -27969, // ; w07 w05 w03 w01\r
- 21407, -21407, 21407, 21407, // ; w14 w12 w10 w08\r
- -11585, 27969, -27969, -11585, // ;w15 w13 w11 w09\r
- 29692, 16819, 25172, -29692, // ;w22 w20 w18 w16\r
- 25172, 5906, -5906, -16819, // ;w23 w21 w19 w17\r
- 16819, 5906, 5906, 25172, // ;w30 w28 w26 w24\r
- -29692, 25172, -16819, -29692, // ;w31 w29 w27 w25\r
-\r
- //row3\r
- 19266, 19266, 19266, -19266, //; movq-> w06 w04 w02 w00\r
- 25172, 10426, 10426, -25172, //; w07 w05 w03 w01\r
- 19266, -19266, 19266, 19266, //; w14 w12 w10 w08\r
- -10426, 25172, -25172, -10426, //; w15 w13 w11 w09\r
- 26722, 15137, 22654, -26722, //; w22 w20 w18 w16\r
- 22654, 5315, -5315, -15137, //; w23 w21 w19 w17\r
- 15137, 5315, 5315, 22654, //; w30 w28 w26 w24\r
- -26722, 22654, -15137, -26722, //; w31 w29 w27 w25\r
-\r
- //row4\r
- 16384, 16384, 16384, -16384, // ; movq-> w06 w04 w02 w00\r
- 21407, 8867, 8867, -21407, // w07 w05 w03 w01\r
- 16384, -16384, 16384, 16384, //; w14 w12 w10 w08\r
- -8867, 21407, -21407, -8867, //; w15 w13 w11 w09\r
- 22725, 12873, 19266, -22725, //; w22 w20 w18 w16\r
- 19266, 4520, -4520, -12873, //; w23 w21 w19 w17\r
- 12873, 4520, 4520, 19266, //; w30 w28 w26 w24\r
- -22725, 19266, -12873, -22725, //w31 w29 w27 w25\r
-\r
- //row5\r
- 19266, 19266, 19266, -19266, //; movq-> w06 w04 w02 w00\r
- 25172, 10426, 10426, -25172, //; w07 w05 w03 w01\r
- 19266, -19266, 19266, 19266, //; w14 w12 w10 w08\r
- -10426, 25172, -25172, -10426, //; w15 w13 w11 w09\r
- 26722, 15137, 22654, -26722, //; w22 w20 w18 w16\r
- 22654, 5315, -5315, -15137, //; w23 w21 w19 w17\r
- 15137, 5315, 5315, 22654, //; w30 w28 w26 w24\r
- -26722, 22654, -15137, -26722, //; w31 w29 w27 w25\r
-\r
- //row6\r
- 21407, 21407, 21407, -21407, // ; movq-> w06 w04 w02 w00\r
- 27969, 11585, 11585, -27969, // ; w07 w05 w03 w01\r
- 21407, -21407, 21407, 21407, // ; w14 w12 w10 w08\r
- -11585, 27969, -27969, -11585, // ;w15 w13 w11 w09\r
- 29692, 16819, 25172, -29692, // ;w22 w20 w18 w16\r
- 25172, 5906, -5906, -16819, // ;w23 w21 w19 w17\r
- 16819, 5906, 5906, 25172, // ;w30 w28 w26 w24\r
- -29692, 25172, -16819, -29692, // ;w31 w29 w27 w25\r
-\r
- //row7\r
- 22725, 22725, 22725, -22725, // ; movq-> w06 w04 w02 w00\r
- 29692, 12299, 12299, -29692, // ; w07 w05 w03 w01\r
- 22725, -22725, 22725, 22725, //; w14 w12 w10 w08\r
- -12299, 29692, -29692, -12299, //; w15 w13 w11 w09\r
- 31521, 17855, 26722, -31521, //; w22 w20 w18 w16\r
- 26722, 6270, -6270, -17855, //; w23 w21 w19 w17\r
- 17855, 6270, 6270, 26722, //; w30 w28 w26 w24\r
- -31521, 26722, -17855, -31521}; // w31 w29 w27 w25\r
-\r
-\r
-#define INP eax // pointer to (short *blk)\r
-#define OUT ecx // pointer to output (temporary store space qwTemp[])\r
-#define TABLE ebx // pointer to tab_i_01234567[]\r
+ /*row0, this row is required\r */
+ 16384, 16384, 16384, -16384, /* ; movq-> w06 w04 w02 w00\r */
+ 21407, 8867, 8867, -21407, /* w07 w05 w03 w01\r */
+ 16384, -16384, 16384, 16384, /*; w14 w12 w10 w08\r */
+ -8867, 21407, -21407, -8867, /*; w15 w13 w11 w09\r */
+ 22725, 12873, 19266, -22725, /*; w22 w20 w18 w16\r */
+ 19266, 4520, -4520, -12873, /*; w23 w21 w19 w17\r */
+ 12873, 4520, 4520, 19266, /*; w30 w28 w26 w24\r */
+ -22725, 19266, -12873, -22725, /*w31 w29 w27 w25\r */
+\r
+ /* the rest of these rows (1-7), aren't used !\r */
+\r
+ /*row1\r */
+ 22725, 22725, 22725, -22725, /* ; movq-> w06 w04 w02 w00\r */
+ 29692, 12299, 12299, -29692, /* ; w07 w05 w03 w01\r */
+ 22725, -22725, 22725, 22725, /*; w14 w12 w10 w08\r */
+ -12299, 29692, -29692, -12299, /*; w15 w13 w11 w09\r */
+ 31521, 17855, 26722, -31521, /*; w22 w20 w18 w16\r */
+ 26722, 6270, -6270, -17855, /*; w23 w21 w19 w17\r */
+ 17855, 6270, 6270, 26722, /*; w30 w28 w26 w24\r */
+ -31521, 26722, -17855, -31521, /* w31 w29 w27 w25\r */
+\r
+ /*row2\r */
+ 21407, 21407, 21407, -21407, /* ; movq-> w06 w04 w02 w00\r */
+ 27969, 11585, 11585, -27969, /* ; w07 w05 w03 w01\r */
+ 21407, -21407, 21407, 21407, /* ; w14 w12 w10 w08\r */
+ -11585, 27969, -27969, -11585, /* ;w15 w13 w11 w09\r */
+ 29692, 16819, 25172, -29692, /* ;w22 w20 w18 w16\r */
+ 25172, 5906, -5906, -16819, /* ;w23 w21 w19 w17\r */
+ 16819, 5906, 5906, 25172, /* ;w30 w28 w26 w24\r */
+ -29692, 25172, -16819, -29692, /* ;w31 w29 w27 w25\r */
+\r
+ /*row3\r */
+ 19266, 19266, 19266, -19266, /*; movq-> w06 w04 w02 w00\r */
+ 25172, 10426, 10426, -25172, /*; w07 w05 w03 w01\r */
+ 19266, -19266, 19266, 19266, /*; w14 w12 w10 w08\r */
+ -10426, 25172, -25172, -10426, /*; w15 w13 w11 w09\r */
+ 26722, 15137, 22654, -26722, /*; w22 w20 w18 w16\r */
+ 22654, 5315, -5315, -15137, /*; w23 w21 w19 w17\r */
+ 15137, 5315, 5315, 22654, /*; w30 w28 w26 w24\r */
+ -26722, 22654, -15137, -26722, /*; w31 w29 w27 w25\r */
+\r
+ /*row4\r */
+ 16384, 16384, 16384, -16384, /* ; movq-> w06 w04 w02 w00\r */
+ 21407, 8867, 8867, -21407, /* w07 w05 w03 w01\r */
+ 16384, -16384, 16384, 16384, /*; w14 w12 w10 w08\r */
+ -8867, 21407, -21407, -8867, /*; w15 w13 w11 w09\r */
+ 22725, 12873, 19266, -22725, /*; w22 w20 w18 w16\r */
+ 19266, 4520, -4520, -12873, /*; w23 w21 w19 w17\r */
+ 12873, 4520, 4520, 19266, /*; w30 w28 w26 w24\r */
+ -22725, 19266, -12873, -22725, /*w31 w29 w27 w25\r */
+\r
+ /*row5\r */
+ 19266, 19266, 19266, -19266, /*; movq-> w06 w04 w02 w00\r */
+ 25172, 10426, 10426, -25172, /*; w07 w05 w03 w01\r */
+ 19266, -19266, 19266, 19266, /*; w14 w12 w10 w08\r */
+ -10426, 25172, -25172, -10426, /*; w15 w13 w11 w09\r */
+ 26722, 15137, 22654, -26722, /*; w22 w20 w18 w16\r */
+ 22654, 5315, -5315, -15137, /*; w23 w21 w19 w17\r */
+ 15137, 5315, 5315, 22654, /*; w30 w28 w26 w24\r */
+ -26722, 22654, -15137, -26722, /*; w31 w29 w27 w25\r */
+\r
+ /*row6\r */
+ 21407, 21407, 21407, -21407, /* ; movq-> w06 w04 w02 w00\r */
+ 27969, 11585, 11585, -27969, /* ; w07 w05 w03 w01\r */
+ 21407, -21407, 21407, 21407, /* ; w14 w12 w10 w08\r */
+ -11585, 27969, -27969, -11585, /* ;w15 w13 w11 w09\r */
+ 29692, 16819, 25172, -29692, /* ;w22 w20 w18 w16\r */
+ 25172, 5906, -5906, -16819, /* ;w23 w21 w19 w17\r */
+ 16819, 5906, 5906, 25172, /* ;w30 w28 w26 w24\r */
+ -29692, 25172, -16819, -29692, /* ;w31 w29 w27 w25\r */
+\r
+ /*row7\r */
+ 22725, 22725, 22725, -22725, /* ; movq-> w06 w04 w02 w00\r */
+ 29692, 12299, 12299, -29692, /* ; w07 w05 w03 w01\r */
+ 22725, -22725, 22725, 22725, /*; w14 w12 w10 w08\r */
+ -12299, 29692, -29692, -12299, /*; w15 w13 w11 w09\r */
+ 31521, 17855, 26722, -31521, /*; w22 w20 w18 w16\r */
+ 26722, 6270, -6270, -17855, /*; w23 w21 w19 w17\r */
+ 17855, 6270, 6270, 26722, /*; w30 w28 w26 w24\r */
+ -31521, 26722, -17855, -31521}; /* w31 w29 w27 w25\r */
+\r
+\r
+#define INP eax /* pointer to (short *blk)\r */
+#define OUT ecx /* pointer to output (temporary store space qwTemp[])\r */
+#define TABLE ebx /* pointer to tab_i_01234567[]\r */
#define round_inv_row edx\r
#define round_inv_col edx\r
\r
-#define ROW_STRIDE 8 // for 8x8 matrix transposer\r
+#define ROW_STRIDE 8 /* for 8x8 matrix transposer\r */
\r
-// private variables and functions\r
+/* private variables and functions\r */
\r
-//temporary storage space, 8x8 of shorts\r
+/*temporary storage space, 8x8 of shorts\r */
\r
-__inline static void idct_mmx32_rows( short *blk ); // transform rows\r
-__inline static void idct_mmx32_cols( short *blk ); // transform "columns"\r
- // the "column" transform actually transforms rows, it is\r
- // identical to the row-transform except for the ROUNDING\r
- // and SHIFTING coefficients.\r
+__inline static void idct_mmx32_rows( short *blk ); /* transform rows\r */
+__inline static void idct_mmx32_cols( short *blk ); /* transform "columns"\r */
+ /* the "column" transform actually transforms rows, it is\r */
+ /* identical to the row-transform except for the ROUNDING\r */
+ /* and SHIFTING coefficients.\r */
\r
\r
static void \r
-idct_mmx32_rows( short *blk ) // transform all 8 rows of 8x8 iDCT block\r
+idct_mmx32_rows( short *blk ) /* transform all 8 rows of 8x8 iDCT block\r */
{\r
int x;\r
short qwTemp[64];\r
short *out = &qwTemp[0];\r
short *inptr = blk;\r
- // this subroutine performs two operations\r
- // 1) iDCT row transform\r
- // for( i = 0; i < 8; ++ i)\r
- // DCT_8_INV_ROW_1( blk[i*8], qwTemp[i] );\r
- //\r
- // 2) transpose the matrix (which was stored in qwTemp[])\r
- // qwTemp[] -> [8x8 matrix transpose] -> blk[]\r
+ /* this subroutine performs two operations\r */
+ /* 1) iDCT row transform\r */
+ /* for( i = 0; i < 8; ++ i)\r */
+ /* DCT_8_INV_ROW_1( blk[i*8], qwTemp[i] );\r */
+ /*\r */
+ /* 2) transpose the matrix (which was stored in qwTemp[])\r */
+ /* qwTemp[] -> [8x8 matrix transpose] -> blk[]\r */
\r
- for (x=0; x<8; x++) { // transform one row per iteration\r
- movq_m2r(*(inptr), mm0); // 0 ; x3 x2 x1 x0\r
+ for (x=0; x<8; x++) { /* transform one row per iteration\r */
+ movq_m2r(*(inptr), mm0); /* 0 ; x3 x2 x1 x0\r */
\r
- movq_m2r(*(inptr+4), mm1); // 1 ; x7 x6 x5 x4\r
- movq_r2r(mm0, mm2); // 2 ; x3 x2 x1 x0\r
+ movq_m2r(*(inptr+4), mm1); /* 1 ; x7 x6 x5 x4\r */
+ movq_r2r(mm0, mm2); /* 2 ; x3 x2 x1 x0\r */
\r
- movq_m2r(*(tab_i_01234567), mm3); // 3 ; w06 w04 w02 w00\r
- punpcklwd_r2r(mm1, mm0); // x5 x1 x4 x0\r
+ movq_m2r(*(tab_i_01234567), mm3); /* 3 ; w06 w04 w02 w00\r */
+ punpcklwd_r2r(mm1, mm0); /* x5 x1 x4 x0\r */
\r
- // ----------\r
- movq_r2r(mm0, mm5); // 5 ; x5 x1 x4 x0\r
- punpckldq_r2r(mm0, mm0); // x4 x0 x4 x0\r
+ /* ----------\r */
+ movq_r2r(mm0, mm5); /* 5 ; x5 x1 x4 x0\r */
+ punpckldq_r2r(mm0, mm0); /* x4 x0 x4 x0\r */
\r
- movq_m2r(*(tab_i_01234567+4), mm4); // 4 ; w07 w05 w03 w01\r
- punpckhwd_r2r(mm1, mm2); // 1 ; x7 x3 x6 x2\r
+ movq_m2r(*(tab_i_01234567+4), mm4); /* 4 ; w07 w05 w03 w01\r */
+ punpckhwd_r2r(mm1, mm2); /* 1 ; x7 x3 x6 x2\r */
\r
- pmaddwd_r2r(mm0, mm3); // x4*w06+x0*w04 x4*w02+x0*w00\r
- movq_r2r(mm2, mm6); // 6 ; x7 x3 x6 x2\r
+ pmaddwd_r2r(mm0, mm3); /* x4*w06+x0*w04 x4*w02+x0*w00\r */
+ movq_r2r(mm2, mm6); /* 6 ; x7 x3 x6 x2\r */
\r
- movq_m2r(*(tab_i_01234567+16), mm1);// 1 ; w22 w20 w18 w16\r
- punpckldq_r2r(mm2, mm2); // x6 x2 x6 x2\r
+ movq_m2r(*(tab_i_01234567+16), mm1);/* 1 ; w22 w20 w18 w16\r */
+ punpckldq_r2r(mm2, mm2); /* x6 x2 x6 x2\r */
\r
- pmaddwd_r2r(mm2, mm4); // x6*w07+x2*w05 x6*w03+x2*w01\r
- punpckhdq_r2r(mm5, mm5); // x5 x1 x5 x1\r
+ pmaddwd_r2r(mm2, mm4); /* x6*w07+x2*w05 x6*w03+x2*w01\r */
+ punpckhdq_r2r(mm5, mm5); /* x5 x1 x5 x1\r */
\r
- pmaddwd_m2r(*(tab_i_01234567+8), mm0);// x4*w14+x0*w12 x4*w10+x0*w08\r
- punpckhdq_r2r(mm6, mm6); // x7 x3 x7 x3\r
+ pmaddwd_m2r(*(tab_i_01234567+8), mm0);/* x4*w14+x0*w12 x4*w10+x0*w08\r */
+ punpckhdq_r2r(mm6, mm6); /* x7 x3 x7 x3\r */
\r
- movq_m2r(*(tab_i_01234567+20), mm7);// 7 ; w23 w21 w19 w17\r
- pmaddwd_r2r(mm5, mm1); // x5*w22+x1*w20 x5*w18+x1*w16\r
+ movq_m2r(*(tab_i_01234567+20), mm7);/* 7 ; w23 w21 w19 w17\r */
+ pmaddwd_r2r(mm5, mm1); /* x5*w22+x1*w20 x5*w18+x1*w16\r */
\r
- paddd_m2r(*(r_inv_row), mm3);// +rounder\r
- pmaddwd_r2r(mm6, mm7); // x7*w23+x3*w21 x7*w19+x3*w17\r
+ paddd_m2r(*(r_inv_row), mm3);/* +rounder\r */
+ pmaddwd_r2r(mm6, mm7); /* x7*w23+x3*w21 x7*w19+x3*w17\r */
\r
- pmaddwd_m2r(*(tab_i_01234567+12), mm2);// x6*w15+x2*w13 x6*w11+x2*w09\r
- paddd_r2r(mm4, mm3); // 4 ; a1=sum(even1) a0=sum(even0)\r
+ pmaddwd_m2r(*(tab_i_01234567+12), mm2);/* x6*w15+x2*w13 x6*w11+x2*w09\r */
+ paddd_r2r(mm4, mm3); /* 4 ; a1=sum(even1) a0=sum(even0)\r */
\r
- pmaddwd_m2r(*(tab_i_01234567+24), mm5);// x5*w30+x1*w28 x5*w26+x1*w24\r
- movq_r2r(mm3, mm4); // 4 ; a1 a0\r
+ pmaddwd_m2r(*(tab_i_01234567+24), mm5);/* x5*w30+x1*w28 x5*w26+x1*w24\r */
+ movq_r2r(mm3, mm4); /* 4 ; a1 a0\r */
\r
- pmaddwd_m2r(*(tab_i_01234567+28), mm6);// x7*w31+x3*w29 x7*w27+x3*w25\r
- paddd_r2r(mm7, mm1); // 7 ; b1=sum(odd1) b0=sum(odd0)\r
+ pmaddwd_m2r(*(tab_i_01234567+28), mm6);/* x7*w31+x3*w29 x7*w27+x3*w25\r */
+ paddd_r2r(mm7, mm1); /* 7 ; b1=sum(odd1) b0=sum(odd0)\r */
\r
- paddd_m2r(*(r_inv_row), mm0);// +rounder\r
- psubd_r2r(mm1, mm3); // a1-b1 a0-b0\r
+ paddd_m2r(*(r_inv_row), mm0);/* +rounder\r */
+ psubd_r2r(mm1, mm3); /* a1-b1 a0-b0\r */
\r
- psrad_i2r(SHIFT_INV_ROW, mm3); // y6=a1-b1 y7=a0-b0\r
- paddd_r2r(mm4, mm1); // 4 ; a1+b1 a0+b0\r
+ psrad_i2r(SHIFT_INV_ROW, mm3); /* y6=a1-b1 y7=a0-b0\r */
+ paddd_r2r(mm4, mm1); /* 4 ; a1+b1 a0+b0\r */
\r
- paddd_r2r(mm2, mm0); // 2 ; a3=sum(even3) a2=sum(even2)\r
- psrad_i2r(SHIFT_INV_ROW, mm1); // y1=a1+b1 y0=a0+b0\r
+ paddd_r2r(mm2, mm0); /* 2 ; a3=sum(even3) a2=sum(even2)\r */
+ psrad_i2r(SHIFT_INV_ROW, mm1); /* y1=a1+b1 y0=a0+b0\r */
\r
- paddd_r2r(mm6, mm5); // 6 ; b3=sum(odd3) b2=sum(odd2)\r
- movq_r2r(mm0, mm4); // 4 ; a3 a2\r
+ paddd_r2r(mm6, mm5); /* 6 ; b3=sum(odd3) b2=sum(odd2)\r */
+ movq_r2r(mm0, mm4); /* 4 ; a3 a2\r */
\r
- paddd_r2r(mm5, mm0); // a3+b3 a2+b2\r
- psubd_r2r(mm5, mm4); // 5 ; a3-b3 a2-b2\r
+ paddd_r2r(mm5, mm0); /* a3+b3 a2+b2\r */
+ psubd_r2r(mm5, mm4); /* 5 ; a3-b3 a2-b2\r */
\r
- psrad_i2r(SHIFT_INV_ROW, mm4); // y4=a3-b3 y5=a2-b2\r
- psrad_i2r(SHIFT_INV_ROW, mm0); // y3=a3+b3 y2=a2+b2\r
+ psrad_i2r(SHIFT_INV_ROW, mm4); /* y4=a3-b3 y5=a2-b2\r */
+ psrad_i2r(SHIFT_INV_ROW, mm0); /* y3=a3+b3 y2=a2+b2\r */
\r
- packssdw_r2r(mm3, mm4); // 3 ; y6 y7 y4 y5\r
+ packssdw_r2r(mm3, mm4); /* 3 ; y6 y7 y4 y5\r */
\r
- packssdw_r2r(mm0, mm1); // 0 ; y3 y2 y1 y0\r
- movq_r2r(mm4, mm7); // 7 ; y6 y7 y4 y5\r
+ packssdw_r2r(mm0, mm1); /* 0 ; y3 y2 y1 y0\r */
+ movq_r2r(mm4, mm7); /* 7 ; y6 y7 y4 y5\r */
\r
- psrld_i2r(16, mm4); // 0 y6 0 y4\r
+ psrld_i2r(16, mm4); /* 0 y6 0 y4\r */
\r
- movq_r2m(mm1, *(out)); // 1 ; save y3 y2 y1 y0\r
- pslld_i2r(16, mm7); // y7 0 y5 0\r
+ movq_r2m(mm1, *(out)); /* 1 ; save y3 y2 y1 y0\r */
+ pslld_i2r(16, mm7); /* y7 0 y5 0\r */
\r
- por_r2r(mm4, mm7); // 4 ; y7 y6 y5 y4\r
+ por_r2r(mm4, mm7); /* 4 ; y7 y6 y5 y4\r */
\r
- // begin processing row 1\r
- movq_r2m(mm7, *(out+4)); // 7 ; save y7 y6 y5 y4\r
+ /* begin processing row 1\r */
+ movq_r2m(mm7, *(out+4)); /* 7 ; save y7 y6 y5 y4\r */
\r
inptr += 8;\r
out += 8;\r
}\r
\r
\r
- // done with the iDCT row-transformation\r
+ /* done with the iDCT row-transformation\r */
\r
- // now we have to transpose the output 8x8 matrix\r
- // 8x8 (OUT) -> 8x8't' (IN)\r
- // the transposition is implemented as 4 sub-operations.\r
- // 1) transpose upper-left quad\r
- // 2) transpose lower-right quad\r
- // 3) transpose lower-left quad\r
- // 4) transpose upper-right quad\r
+ /* now we have to transpose the output 8x8 matrix\r */
+ /* 8x8 (OUT) -> 8x8't' (IN)\r */
+ /* the transposition is implemented as 4 sub-operations.\r */
+ /* 1) transpose upper-left quad\r */
+ /* 2) transpose lower-right quad\r */
+ /* 3) transpose lower-left quad\r */
+ /* 4) transpose upper-right quad\r */
\r
\r
- // mm0 = 1st row [ A B C D ] row1\r
- // mm1 = 2nd row [ E F G H ] 2\r
- // mm2 = 3rd row [ I J K L ] 3\r
- // mm3 = 4th row [ M N O P ] 4\r
+ /* mm0 = 1st row [ A B C D ] row1\r */
+ /* mm1 = 2nd row [ E F G H ] 2\r */
+ /* mm2 = 3rd row [ I J K L ] 3\r */
+ /* mm3 = 4th row [ M N O P ] 4\r */
\r
- // 1) transpose upper-left quad\r
+ /* 1) transpose upper-left quad\r */
out = &qwTemp[0];\r
\r
movq_m2r(*(out + ROW_STRIDE * 0), mm0);\r
\r
movq_m2r(*(out + ROW_STRIDE * 1), mm1);\r
- movq_r2r(mm0, mm4); // mm4 = copy of row1[A B C D]\r
+ movq_r2r(mm0, mm4); /* mm4 = copy of row1[A B C D]\r */
\r
movq_m2r(*(out + ROW_STRIDE * 2), mm2);\r
- punpcklwd_r2r(mm1, mm0); // mm0 = [ 0 4 1 5]\r
+ punpcklwd_r2r(mm1, mm0); /* mm0 = [ 0 4 1 5]\r */
\r
movq_m2r(*(out + ROW_STRIDE * 3), mm3);\r
- punpckhwd_r2r(mm1, mm4); // mm4 = [ 2 6 3 7]\r
+ punpckhwd_r2r(mm1, mm4); /* mm4 = [ 2 6 3 7]\r */
\r
movq_r2r(mm2, mm6);\r
- punpcklwd_r2r(mm3, mm2); // mm2 = [ 8 12 9 13]\r
+ punpcklwd_r2r(mm3, mm2); /* mm2 = [ 8 12 9 13]\r */
\r
- punpckhwd_r2r(mm3, mm6); // mm6 = 10 14 11 15]\r
- movq_r2r(mm0, mm1); // mm1 = [ 0 4 1 5]\r
+ punpckhwd_r2r(mm3, mm6); /* mm6 = 10 14 11 15]\r */
+ movq_r2r(mm0, mm1); /* mm1 = [ 0 4 1 5]\r */
\r
inptr = blk;\r
\r
- punpckldq_r2r(mm2, mm0); // final result mm0 = row1 [0 4 8 12]\r
+ punpckldq_r2r(mm2, mm0); /* final result mm0 = row1 [0 4 8 12]\r */
\r
- movq_r2r(mm4, mm3); // mm3 = [ 2 6 3 7]\r
- punpckhdq_r2r(mm2, mm1); // mm1 = final result mm1 = row2 [1 5 9 13]\r
+ movq_r2r(mm4, mm3); /* mm3 = [ 2 6 3 7]\r */
+ punpckhdq_r2r(mm2, mm1); /* mm1 = final result mm1 = row2 [1 5 9 13]\r */
\r
- movq_r2m(mm0, *(inptr + ROW_STRIDE * 0)); // store row 1\r
- punpckldq_r2r(mm6, mm4); // final result mm4 = row3 [2 6 10 14]\r
+ movq_r2m(mm0, *(inptr + ROW_STRIDE * 0)); /* store row 1\r */
+ punpckldq_r2r(mm6, mm4); /* final result mm4 = row3 [2 6 10 14]\r */
\r
-// begin reading next quadrant (lower-right)\r
+/* begin reading next quadrant (lower-right)\r */
movq_m2r(*(out + ROW_STRIDE*4 + 4), mm0); \r
- punpckhdq_r2r(mm6, mm3); // final result mm3 = row4 [3 7 11 15]\r
+ punpckhdq_r2r(mm6, mm3); /* final result mm3 = row4 [3 7 11 15]\r */
\r
- movq_r2m(mm4, *(inptr + ROW_STRIDE * 2)); // store row 3\r
- movq_r2r(mm0, mm4); // mm4 = copy of row1[A B C D]\r
+ movq_r2m(mm4, *(inptr + ROW_STRIDE * 2)); /* store row 3\r */
+ movq_r2r(mm0, mm4); /* mm4 = copy of row1[A B C D]\r */
\r
- movq_r2m(mm1, *(inptr + ROW_STRIDE * 1)); // store row 2\r
+ movq_r2m(mm1, *(inptr + ROW_STRIDE * 1)); /* store row 2\r */
\r
movq_m2r(*(out + ROW_STRIDE*5 + 4), mm1);\r
\r
- movq_r2m(mm3, *(inptr + ROW_STRIDE * 3)); // store row 4\r
- punpcklwd_r2r(mm1, mm0); // mm0 = [ 0 4 1 5]\r
+ movq_r2m(mm3, *(inptr + ROW_STRIDE * 3)); /* store row 4\r */
+ punpcklwd_r2r(mm1, mm0); /* mm0 = [ 0 4 1 5]\r */
\r
- // 2) transpose lower-right quadrant\r
+ /* 2) transpose lower-right quadrant\r */
\r
-// movq mm0, qword ptr [OUT + ROW_STRIDE*4 + 8]\r
+/* movq mm0, qword ptr [OUT + ROW_STRIDE*4 + 8]\r */
\r
-// movq mm1, qword ptr [OUT + ROW_STRIDE*5 + 8]\r
-// movq mm4, mm0; // mm4 = copy of row1[A B C D]\r
+/* movq mm1, qword ptr [OUT + ROW_STRIDE*5 + 8]\r */
+/* movq mm4, mm0; // mm4 = copy of row1[A B C D]\r */
\r
movq_m2r(*(out + ROW_STRIDE*6 + 4), mm2);\r
-// punpcklwd mm0, mm1; // mm0 = [ 0 4 1 5]\r
- punpckhwd_r2r(mm1, mm4); // mm4 = [ 2 6 3 7]\r
+/* punpcklwd mm0, mm1; // mm0 = [ 0 4 1 5]\r */
+ punpckhwd_r2r(mm1, mm4); /* mm4 = [ 2 6 3 7]\r */
\r
movq_m2r(*(out + ROW_STRIDE*7 + 4), mm3);\r
movq_r2r(mm2, mm6);\r
\r
- punpcklwd_r2r(mm3, mm2); // mm2 = [ 8 12 9 13]\r
- movq_r2r(mm0, mm1); // mm1 = [ 0 4 1 5]\r
+ punpcklwd_r2r(mm3, mm2); /* mm2 = [ 8 12 9 13]\r */
+ movq_r2r(mm0, mm1); /* mm1 = [ 0 4 1 5]\r */
\r
- punpckhwd_r2r(mm3, mm6); // mm6 = 10 14 11 15]\r
- movq_r2r(mm4, mm3); // mm3 = [ 2 6 3 7]\r
+ punpckhwd_r2r(mm3, mm6); /* mm6 = 10 14 11 15]\r */
+ movq_r2r(mm4, mm3); /* mm3 = [ 2 6 3 7]\r */
\r
- punpckldq_r2r(mm2, mm0); // final result mm0 = row1 [0 4 8 12]\r
+ punpckldq_r2r(mm2, mm0); /* final result mm0 = row1 [0 4 8 12]\r */
\r
- punpckhdq_r2r(mm2, mm1); // mm1 = final result mm1 = row2 [1 5 9 13]\r
- ; // slot\r
+ punpckhdq_r2r(mm2, mm1); /* mm1 = final result mm1 = row2 [1 5 9 13]\r */
+ ; /* slot\r */
\r
- movq_r2m(mm0, *(inptr + ROW_STRIDE*4 + 4)); // store row 1\r
- punpckldq_r2r(mm6, mm4); // final result mm4 = row3 [2 6 10 14]\r
+ movq_r2m(mm0, *(inptr + ROW_STRIDE*4 + 4)); /* store row 1\r */
+ punpckldq_r2r(mm6, mm4); /* final result mm4 = row3 [2 6 10 14]\r */
\r
movq_m2r(*(out + ROW_STRIDE * 4 ), mm0);\r
- punpckhdq_r2r(mm6, mm3); // final result mm3 = row4 [3 7 11 15]\r
+ punpckhdq_r2r(mm6, mm3); /* final result mm3 = row4 [3 7 11 15]\r */
\r
- movq_r2m(mm4, *(inptr + ROW_STRIDE*6 + 4)); // store row 3\r
- movq_r2r(mm0, mm4); // mm4 = copy of row1[A B C D]\r
+ movq_r2m(mm4, *(inptr + ROW_STRIDE*6 + 4)); /* store row 3\r */
+ movq_r2r(mm0, mm4); /* mm4 = copy of row1[A B C D]\r */
\r
- movq_r2m(mm1, *(inptr + ROW_STRIDE*5 + 4)); // store row 2\r
- ; // slot\r
+ movq_r2m(mm1, *(inptr + ROW_STRIDE*5 + 4)); /* store row 2\r */
+ ; /* slot\r */
\r
movq_m2r(*(out + ROW_STRIDE * 5 ), mm1);\r
- ; // slot\r
+ ; /* slot\r */
\r
- movq_r2m(mm3, *(inptr + ROW_STRIDE*7 + 4)); // store row 4\r
- punpcklwd_r2r(mm1, mm0); // mm0 = [ 0 4 1 5]\r
+ movq_r2m(mm3, *(inptr + ROW_STRIDE*7 + 4)); /* store row 4\r */
+ punpcklwd_r2r(mm1, mm0); /* mm0 = [ 0 4 1 5]\r */
\r
- // 3) transpose lower-left\r
-// movq mm0, qword ptr [OUT + ROW_STRIDE * 4 ]\r
+ /* 3) transpose lower-left\r */
+/* movq mm0, qword ptr [OUT + ROW_STRIDE * 4 ]\r */
\r
-// movq mm1, qword ptr [OUT + ROW_STRIDE * 5 ]\r
-// movq mm4, mm0; // mm4 = copy of row1[A B C D]\r
+/* movq mm1, qword ptr [OUT + ROW_STRIDE * 5 ]\r */
+/* movq mm4, mm0; // mm4 = copy of row1[A B C D]\r */
\r
movq_m2r(*(out + ROW_STRIDE * 6 ), mm2);\r
-// punpcklwd mm0, mm1; // mm0 = [ 0 4 1 5]\r
- punpckhwd_r2r(mm1, mm4); // mm4 = [ 2 6 3 7]\r
+/* punpcklwd mm0, mm1; // mm0 = [ 0 4 1 5]\r */
+ punpckhwd_r2r(mm1, mm4); /* mm4 = [ 2 6 3 7]\r */
\r
movq_m2r(*(out + ROW_STRIDE * 7 ), mm3);\r
movq_r2r(mm2, mm6);\r
\r
- punpcklwd_r2r(mm3, mm2); // mm2 = [ 8 12 9 13]\r
- movq_r2r(mm0, mm1); // mm1 = [ 0 4 1 5]\r
+ punpcklwd_r2r(mm3, mm2); /* mm2 = [ 8 12 9 13]\r */
+ movq_r2r(mm0, mm1); /* mm1 = [ 0 4 1 5]\r */
\r
- punpckhwd_r2r(mm3, mm6); // mm6 = 10 14 11 15]\r
- movq_r2r(mm4, mm3); // mm3 = [ 2 6 3 7]\r
+ punpckhwd_r2r(mm3, mm6); /* mm6 = 10 14 11 15]\r */
+ movq_r2r(mm4, mm3); /* mm3 = [ 2 6 3 7]\r */
\r
- punpckldq_r2r(mm2, mm0); // final result mm0 = row1 [0 4 8 12]\r
+ punpckldq_r2r(mm2, mm0); /* final result mm0 = row1 [0 4 8 12]\r */
\r
- punpckhdq_r2r(mm2, mm1); // mm1 = final result mm1 = row2 [1 5 9 13]\r
- ;//slot\r
+ punpckhdq_r2r(mm2, mm1); /* mm1 = final result mm1 = row2 [1 5 9 13]\r */
+ ;/*slot\r */
\r
- movq_r2m(mm0, *(inptr + ROW_STRIDE * 0 + 4 )); // store row 1\r
- punpckldq_r2r(mm6, mm4); // final result mm4 = row3 [2 6 10 14]\r
+ movq_r2m(mm0, *(inptr + ROW_STRIDE * 0 + 4 )); /* store row 1\r */
+ punpckldq_r2r(mm6, mm4); /* final result mm4 = row3 [2 6 10 14]\r */
\r
-// begin reading next quadrant (upper-right)\r
+/* begin reading next quadrant (upper-right)\r */
movq_m2r(*(out + ROW_STRIDE*0 + 4), mm0);\r
- punpckhdq_r2r(mm6, mm3); // final result mm3 = row4 [3 7 11 15]\r
+ punpckhdq_r2r(mm6, mm3); /* final result mm3 = row4 [3 7 11 15]\r */
\r
- movq_r2m(mm4, *(inptr + ROW_STRIDE * 2 + 4)); // store row 3\r
- movq_r2r(mm0, mm4); // mm4 = copy of row1[A B C D]\r
+ movq_r2m(mm4, *(inptr + ROW_STRIDE * 2 + 4)); /* store row 3\r */
+ movq_r2r(mm0, mm4); /* mm4 = copy of row1[A B C D]\r */
\r
- movq_r2m(mm1, *(inptr + ROW_STRIDE * 1 + 4)); // store row 2\r
+ movq_r2m(mm1, *(inptr + ROW_STRIDE * 1 + 4)); /* store row 2\r */
movq_m2r(*(out + ROW_STRIDE*1 + 4), mm1);\r
\r
- movq_r2m(mm3, *(inptr + ROW_STRIDE * 3 + 4)); // store row 4\r
- punpcklwd_r2r(mm1, mm0); // mm0 = [ 0 4 1 5]\r
+ movq_r2m(mm3, *(inptr + ROW_STRIDE * 3 + 4)); /* store row 4\r */
+ punpcklwd_r2r(mm1, mm0); /* mm0 = [ 0 4 1 5]\r */
\r
\r
- // 2) transpose lower-right quadrant\r
+ /* 2) transpose lower-right quadrant\r */
\r
-// movq mm0, qword ptr [OUT + ROW_STRIDE*4 + 8]\r
+/* movq mm0, qword ptr [OUT + ROW_STRIDE*4 + 8]\r */
\r
-// movq mm1, qword ptr [OUT + ROW_STRIDE*5 + 8]\r
-// movq mm4, mm0; // mm4 = copy of row1[A B C D]\r
+/* movq mm1, qword ptr [OUT + ROW_STRIDE*5 + 8]\r */
+/* movq mm4, mm0; // mm4 = copy of row1[A B C D]\r */
\r
movq_m2r(*(out + ROW_STRIDE*2 + 4), mm2);\r
-// punpcklwd mm0, mm1; // mm0 = [ 0 4 1 5]\r
- punpckhwd_r2r(mm1, mm4); // mm4 = [ 2 6 3 7]\r
+/* punpcklwd mm0, mm1; // mm0 = [ 0 4 1 5]\r */
+ punpckhwd_r2r(mm1, mm4); /* mm4 = [ 2 6 3 7]\r */
\r
movq_m2r(*(out + ROW_STRIDE*3 + 4), mm3);\r
movq_r2r(mm2, mm6);\r
\r
- punpcklwd_r2r(mm3, mm2); // mm2 = [ 8 12 9 13]\r
- movq_r2r(mm0, mm1); // mm1 = [ 0 4 1 5]\r
+ punpcklwd_r2r(mm3, mm2); /* mm2 = [ 8 12 9 13]\r */
+ movq_r2r(mm0, mm1); /* mm1 = [ 0 4 1 5]\r */
\r
- punpckhwd_r2r(mm3, mm6); // mm6 = 10 14 11 15]\r
- movq_r2r(mm4, mm3); // mm3 = [ 2 6 3 7]\r
+ punpckhwd_r2r(mm3, mm6); /* mm6 = 10 14 11 15]\r */
+ movq_r2r(mm4, mm3); /* mm3 = [ 2 6 3 7]\r */
\r
- punpckldq_r2r(mm2, mm0); // final result mm0 = row1 [0 4 8 12]\r
+ punpckldq_r2r(mm2, mm0); /* final result mm0 = row1 [0 4 8 12]\r */
\r
- punpckhdq_r2r(mm2, mm1); // mm1 = final result mm1 = row2 [1 5 9 13]\r
- ; // slot\r
+ punpckhdq_r2r(mm2, mm1); /* mm1 = final result mm1 = row2 [1 5 9 13]\r */
+ ; /* slot\r */
\r
- movq_r2m(mm0, *(inptr + ROW_STRIDE*4)); // store row 1\r
- punpckldq_r2r(mm6, mm4); // final result mm4 = row3 [2 6 10 14]\r
+ movq_r2m(mm0, *(inptr + ROW_STRIDE*4)); /* store row 1\r */
+ punpckldq_r2r(mm6, mm4); /* final result mm4 = row3 [2 6 10 14]\r */
\r
- movq_r2m(mm1, *(inptr + ROW_STRIDE*5)); // store row 2\r
- punpckhdq_r2r(mm6, mm3); // final result mm3 = row4 [3 7 11 15]\r
+ movq_r2m(mm1, *(inptr + ROW_STRIDE*5)); /* store row 2\r */
+ punpckhdq_r2r(mm6, mm3); /* final result mm3 = row4 [3 7 11 15]\r */
\r
- movq_r2m(mm4, *(inptr + ROW_STRIDE*6)); // store row 3\r
- ; // slot\r
+ movq_r2m(mm4, *(inptr + ROW_STRIDE*6)); /* store row 3\r */
+ ; /* slot\r */
\r
- movq_r2m(mm3, *(inptr + ROW_STRIDE*7)); // store row 4\r
- ; // slot\r
+ movq_r2m(mm3, *(inptr + ROW_STRIDE*7)); /* store row 4\r */
+ ; /* slot\r */
\r
}\r
\r
\r
static void \r
-idct_mmx32_cols( short *blk ) // transform all 8 cols of 8x8 iDCT block\r
+idct_mmx32_cols( short *blk ) /* transform all 8 cols of 8x8 iDCT block\r */
{\r
int x;\r
short *inptr = blk;\r
\r
- // Despite the function's name, the matrix is transformed\r
- // row by row. This function is identical to idct_mmx32_rows(),\r
- // except for the SHIFT amount and ROUND_INV amount.\r
+ /* Despite the function's name, the matrix is transformed\r */
+ /* row by row. This function is identical to idct_mmx32_rows(),\r */
+ /* except for the SHIFT amount and ROUND_INV amount.\r */
\r
- // this subroutine performs two operations\r
- // 1) iDCT row transform\r
- // for( i = 0; i < 8; ++ i)\r
- // DCT_8_INV_ROW_1( blk[i*8], qwTemp[i] );\r
- //\r
- // 2) transpose the matrix (which was stored in qwTemp[])\r
- // qwTemp[] -> [8x8 matrix transpose] -> blk[]\r
+ /* this subroutine performs two operations\r */
+ /* 1) iDCT row transform\r */
+ /* for( i = 0; i < 8; ++ i)\r */
+ /* DCT_8_INV_ROW_1( blk[i*8], qwTemp[i] );\r */
+ /*\r */
+ /* 2) transpose the matrix (which was stored in qwTemp[])\r */
+ /* qwTemp[] -> [8x8 matrix transpose] -> blk[]\r */
\r
\r
- for (x=0; x<8; x++) { // transform one row per iteration\r
+ for (x=0; x<8; x++) { /* transform one row per iteration\r */
\r
- movq_m2r(*(inptr), mm0); // 0 ; x3 x2 x1 x0\r
+ movq_m2r(*(inptr), mm0); /* 0 ; x3 x2 x1 x0\r */
\r
- movq_m2r(*(inptr+4), mm1); // 1 ; x7 x6 x5 x4\r
- movq_r2r(mm0, mm2); // 2 ; x3 x2 x1 x0\r
+ movq_m2r(*(inptr+4), mm1); /* 1 ; x7 x6 x5 x4\r */
+ movq_r2r(mm0, mm2); /* 2 ; x3 x2 x1 x0\r */
\r
- movq_m2r(*(tab_i_01234567), mm3); // 3 ; w06 w04 w02 w00\r
- punpcklwd_r2r(mm1, mm0); // x5 x1 x4 x0\r
+ movq_m2r(*(tab_i_01234567), mm3); /* 3 ; w06 w04 w02 w00\r */
+ punpcklwd_r2r(mm1, mm0); /* x5 x1 x4 x0\r */
\r
-// ----------\r
- movq_r2r(mm0, mm5); // 5 ; x5 x1 x4 x0\r
- punpckldq_r2r(mm0, mm0); // x4 x0 x4 x0\r
+/* ----------\r */
+ movq_r2r(mm0, mm5); /* 5 ; x5 x1 x4 x0\r */
+ punpckldq_r2r(mm0, mm0); /* x4 x0 x4 x0\r */
\r
- movq_m2r(*(tab_i_01234567+4), mm4); // 4 ; w07 w05 w03 w01\r
- punpckhwd_r2r(mm1, mm2); // 1 ; x7 x3 x6 x2\r
+ movq_m2r(*(tab_i_01234567+4), mm4); /* 4 ; w07 w05 w03 w01\r */
+ punpckhwd_r2r(mm1, mm2); /* 1 ; x7 x3 x6 x2\r */
\r
- pmaddwd_r2r(mm0, mm3); // x4*w06+x0*w04 x4*w02+x0*w00\r
- movq_r2r(mm2, mm6); // 6 ; x7 x3 x6 x2\r
+ pmaddwd_r2r(mm0, mm3); /* x4*w06+x0*w04 x4*w02+x0*w00\r */
+ movq_r2r(mm2, mm6); /* 6 ; x7 x3 x6 x2\r */
\r
- movq_m2r(*(tab_i_01234567+16), mm1);// 1 ; w22 w20 w18 w16\r
- punpckldq_r2r(mm2, mm2); // x6 x2 x6 x2\r
+ movq_m2r(*(tab_i_01234567+16), mm1);/* 1 ; w22 w20 w18 w16\r */
+ punpckldq_r2r(mm2, mm2); /* x6 x2 x6 x2\r */
\r
- pmaddwd_r2r(mm2, mm4); // x6*w07+x2*w05 x6*w03+x2*w01\r
- punpckhdq_r2r(mm5, mm5); // x5 x1 x5 x1\r
+ pmaddwd_r2r(mm2, mm4); /* x6*w07+x2*w05 x6*w03+x2*w01\r */
+ punpckhdq_r2r(mm5, mm5); /* x5 x1 x5 x1\r */
\r
- pmaddwd_m2r(*(tab_i_01234567+8), mm0);// x4*w14+x0*w12 x4*w10+x0*w08\r
- punpckhdq_r2r(mm6, mm6); // x7 x3 x7 x3\r
+ pmaddwd_m2r(*(tab_i_01234567+8), mm0);/* x4*w14+x0*w12 x4*w10+x0*w08\r */
+ punpckhdq_r2r(mm6, mm6); /* x7 x3 x7 x3\r */
\r
- movq_m2r(*(tab_i_01234567+20), mm7);// 7 ; w23 w21 w19 w17\r
- pmaddwd_r2r(mm5, mm1); // x5*w22+x1*w20 x5*w18+x1*w16\r
+ movq_m2r(*(tab_i_01234567+20), mm7);/* 7 ; w23 w21 w19 w17\r */
+ pmaddwd_r2r(mm5, mm1); /* x5*w22+x1*w20 x5*w18+x1*w16\r */
\r
- paddd_m2r(*(r_inv_col), mm3);// +rounder\r
- pmaddwd_r2r(mm6, mm7); // x7*w23+x3*w21 x7*w19+x3*w17\r
+ paddd_m2r(*(r_inv_col), mm3);/* +rounder\r */
+ pmaddwd_r2r(mm6, mm7); /* x7*w23+x3*w21 x7*w19+x3*w17\r */
\r
- pmaddwd_m2r(*(tab_i_01234567+12), mm2);// x6*w15+x2*w13 x6*w11+x2*w09\r
- paddd_r2r(mm4, mm3); // 4 ; a1=sum(even1) a0=sum(even0)\r
+ pmaddwd_m2r(*(tab_i_01234567+12), mm2);/* x6*w15+x2*w13 x6*w11+x2*w09\r */
+ paddd_r2r(mm4, mm3); /* 4 ; a1=sum(even1) a0=sum(even0)\r */
\r
- pmaddwd_m2r(*(tab_i_01234567+24), mm5);// x5*w30+x1*w28 x5*w26+x1*w24\r
- movq_r2r(mm3, mm4); // 4 ; a1 a0\r
+ pmaddwd_m2r(*(tab_i_01234567+24), mm5);/* x5*w30+x1*w28 x5*w26+x1*w24\r */
+ movq_r2r(mm3, mm4); /* 4 ; a1 a0\r */
\r
- pmaddwd_m2r(*(tab_i_01234567+28), mm6);// x7*w31+x3*w29 x7*w27+x3*w25\r
- paddd_r2r(mm7, mm1); // 7 ; b1=sum(odd1) b0=sum(odd0)\r
+ pmaddwd_m2r(*(tab_i_01234567+28), mm6);/* x7*w31+x3*w29 x7*w27+x3*w25\r */
+ paddd_r2r(mm7, mm1); /* 7 ; b1=sum(odd1) b0=sum(odd0)\r */
\r
- paddd_m2r(*(r_inv_col), mm0);// +rounder\r
- psubd_r2r(mm1, mm3); // a1-b1 a0-b0\r
+ paddd_m2r(*(r_inv_col), mm0);/* +rounder\r */
+ psubd_r2r(mm1, mm3); /* a1-b1 a0-b0\r */
\r
- psrad_i2r(SHIFT_INV_COL, mm3); // y6=a1-b1 y7=a0-b0\r
- paddd_r2r(mm4, mm1); // 4 ; a1+b1 a0+b0\r
+ psrad_i2r(SHIFT_INV_COL, mm3); /* y6=a1-b1 y7=a0-b0\r */
+ paddd_r2r(mm4, mm1); /* 4 ; a1+b1 a0+b0\r */
\r
- paddd_r2r(mm2, mm0); // 2 ; a3=sum(even3) a2=sum(even2)\r
- psrad_i2r(SHIFT_INV_COL, mm1); // y1=a1+b1 y0=a0+b0\r
+ paddd_r2r(mm2, mm0); /* 2 ; a3=sum(even3) a2=sum(even2)\r */
+ psrad_i2r(SHIFT_INV_COL, mm1); /* y1=a1+b1 y0=a0+b0\r */
\r
- paddd_r2r(mm6, mm5); // 6 ; b3=sum(odd3) b2=sum(odd2)\r
- movq_r2r(mm0, mm4); // 4 ; a3 a2\r
+ paddd_r2r(mm6, mm5); /* 6 ; b3=sum(odd3) b2=sum(odd2)\r */
+ movq_r2r(mm0, mm4); /* 4 ; a3 a2\r */
\r
- paddd_r2r(mm5, mm0); // a3+b3 a2+b2\r
- psubd_r2r(mm5, mm4); // 5 ; a3-b3 a2-b2\r
+ paddd_r2r(mm5, mm0); /* a3+b3 a2+b2\r */
+ psubd_r2r(mm5, mm4); /* 5 ; a3-b3 a2-b2\r */
\r
\r
- psrad_i2r(SHIFT_INV_COL, mm4); // y4=a3-b3 y5=a2-b2\r
- psrad_i2r(SHIFT_INV_COL, mm0); // y3=a3+b3 y2=a2+b2\r
+ psrad_i2r(SHIFT_INV_COL, mm4); /* y4=a3-b3 y5=a2-b2\r */
+ psrad_i2r(SHIFT_INV_COL, mm0); /* y3=a3+b3 y2=a2+b2\r */
\r
- packssdw_r2r(mm3, mm4); // 3 ; y6 y7 y4 y5\r
+ packssdw_r2r(mm3, mm4); /* 3 ; y6 y7 y4 y5\r */
\r
- packssdw_r2r(mm0, mm1); // 0 ; y3 y2 y1 y0\r
- movq_r2r(mm4, mm7); // 7 ; y6 y7 y4 y5\r
+ packssdw_r2r(mm0, mm1); /* 0 ; y3 y2 y1 y0\r */
+ movq_r2r(mm4, mm7); /* 7 ; y6 y7 y4 y5\r */
\r
- psrld_i2r(16, mm4); // 0 y6 0 y4\r
+ psrld_i2r(16, mm4); /* 0 y6 0 y4\r */
\r
- movq_r2m(mm1, *(inptr)); // 1 ; save y3 y2 y1 y0\r
- pslld_i2r(16, mm7); // y7 0 y5 0\r
+ movq_r2m(mm1, *(inptr)); /* 1 ; save y3 y2 y1 y0\r */
+ pslld_i2r(16, mm7); /* y7 0 y5 0\r */
\r
- por_r2r(mm4, mm7); // 4 ; y7 y6 y5 y4\r
+ por_r2r(mm4, mm7); /* 4 ; y7 y6 y5 y4\r */
\r
- // begin processing row 1\r
- movq_r2m(mm7, *(inptr+4)); // 7 ; save y7 y6 y5 y4\r
+ /* begin processing row 1\r */
+ movq_r2m(mm7, *(inptr+4)); /* 7 ; save y7 y6 y5 y4\r */
\r
inptr += 8;\r
}\r
- // done with the iDCT column-transformation\r
+ /* done with the iDCT column-transformation\r */
}\r
\r
-// \r
-// public interface to MMX32 IDCT 8x8 operation\r
-//\r
+/* \r */
+/* public interface to MMX32 IDCT 8x8 operation\r */
+/*\r */
void\r
gst_idct_mmx32_idct( short *blk )\r
{\r
- // 1) iDCT row transformation\r
- idct_mmx32_rows( blk ); // 1) transform iDCT row, and transpose\r
+ /* 1) iDCT row transformation\r */
+ idct_mmx32_rows( blk ); /* 1) transform iDCT row, and transpose\r */
\r
- // 2) iDCT column transformation\r
- idct_mmx32_cols( blk ); // 2) transform iDCT row, and transpose\r
+ /* 2) iDCT column transformation\r */
+ idct_mmx32_cols( blk ); /* 2) transform iDCT row, and transpose\r */
\r
- emms(); // restore processor state\r
- // all done\r
+ emms(); /* restore processor state\r */
+ /* all done\r */
}\r
index c1def79d123b9df91c1da9974f90fb9dce7bef61..f70567893649fcc41b52e60b00c9c61bf0aa3203 100644 (file)
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)
index 7762595fae2c306d0f22ea910c9b2a12fc2e0615..96bfe41d64e724e0ae730460eb0de74314d84489 100644 (file)
#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
index d61efca4987ca1e2c126c238741cf57c0eff1559..c225958eab2de5e842585041e2071107e15f65a2 100644 (file)
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;
}
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;
index cedb874e2f4af23d7274ce22e6369a50d7f80463..286cb84b28ca4829d02bab37c0b6264734be4c01 100644 (file)
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");
}
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++;
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;
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;
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));
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;
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;
index 44d19a651743754ba5114942314d21db1cfea893..f268a5929992f3d7d0ed2a4f64f016f5209f7759 100644 (file)
#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];
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)
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);
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;
}
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;
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);
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;
- 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)
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;
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);
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;
index c0931c8a15cc6ce02eea4e5984c7d18736b71640..deaa0bcc4490cbb291e28bc79da76cd877a9c562 100644 (file)
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)
index e0bb72933eb7e3a20cf4e8054e593b4ba6694859..0ac4ee88a8c0e8916ee3192eb5e294ab2ee7b0f3 100644 (file)
--- a/gst-libs/gst/riff/riff.c
+++ b/gst-libs/gst/riff/riff.c
#include <riff.h>
-//#define debug(format,args...) g_print(format,##args)
+/*#define debug(format,args...) g_print(format,##args) */
#define debug(format,args...)
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);
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;
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);
}
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); */
}
}
index a6caed9ee54af7f1e56d3bba441a77bfb83ba47b..febf259946eb0e1c7f5569aedabdec33b6031811 100644 (file)
#include <string.h>
-//#define DEBUG_ENABLED
+/*#define DEBUG_ENABLED */
#include "riff.h"
#define GST_RIFF_ENCODER_BUF_SIZE 1024
index eb4746fcfe543db428bf00a646ebc583f9c05d3c..c7fa3f755c19ec830b43c1c8ffbb3dfe3bb44267 100644 (file)
#include <string.h>
-//#define DEBUG_ENABLED
+/*#define DEBUG_ENABLED */
#include <riff.h>
GstRiff*
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);
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);
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;
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);
}
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);
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);
}
}
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) {
index ca01f6e6156f121fd0d86f836e2f772c4629c38f..9005279f3b14d4f031da392d048698649acd4a90 100644 (file)
#include <riff.h>
-//#define debug(format,args...) g_print(format,##args)
+/*#define debug(format,args...) g_print(format,##args) */
#define debug(format,args...)
index 88f2d2e7a1d37f8a2cf3f8bc779e2bc4e7edfe5a..21aa850c2f10f35a012c2bfed11e81fa905c0970 100644 (file)
--- a/gst/ac3parse/Makefile.am
+++ b/gst/ac3parse/Makefile.am
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
index 4ce1aa3d6012cc47cdbb8a9de855a6010eee6bb1..c2e9649f4a2e0e4ca04b1fa7491ac40685d14327 100644 (file)
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
index a14094ce907d58b909e7e536d8fbb1a0b00ff53c..69429fccee2948f20849a00bb928f76400ee0a07 100644 (file)
* Boston, MA 02111-1307, USA.
*/
-//#define DEBUG_ENABLED
+/*#define DEBUG_ENABLED */
#include <gst/gst.h>
#include <string.h> /* memcmp */
index 9e19b319d7e1f0d0733b22e79793d4370901de50..0787d2944a3b6c83c61071a619d6655f71a65308 100644 (file)
* Boston, MA 02111-1307, USA.
*/
-//#define GST_DEBUG_ENABLED
+/*#define GST_DEBUG_ENABLED */
#include <gstmpegaudioparse.h>
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) {
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);
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;
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");
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));
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 {
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);
/********************************************************************************
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;
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);
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;
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;
}
index fbd1047efb7fc0f831e52c00b4e41480c1da0c58..5252703026036ddceb9792011e5ed85057f01dad 100644 (file)
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;
index 57a37281e205c1410a513478d65d116e54812e71..2433f3efdec3d566a19e07db7697a6996447ffc5 100644 (file)
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
index 261ec6cee05a62d6f1eebd304ad2651a367eacfa..05588a7d781c54b6afea8e229e19c43d3e0ba951 100644 (file)
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)
index d02fd7cc6db009f81fe74e9cf16a709feb639847..8757c35cfa0935e0e9afe4110e6841af48c4ffc1 100644 (file)
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;
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 */
}
index 827fcc0a06e15030d950db25183dd099c53ee2d4..ae5ea7e03c7d42e62cc64af1a40bca85832227c1 100644 (file)
( (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);
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,
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);
colEq[i] = color.pixel;
}
- // Create render image
+ /* Create render image */
if (image) {
gdk_image_destroy(image);
image = NULL;
colEq[i * 4 + 3] = color.pixel;
}
- // Create render image
+ /* Create render image */
if (image) {
gdk_image_destroy(image);
image = NULL;
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;
}