Commit graph

106 commits

Author SHA1 Message Date
Erik Walthinsen
29d567ba23 Changes made to the DEBUG system. New header file gstdebug.h holds the stuff to keep it out of gst.h's hair. DEBUG ...
Original commit message from CVS:
Changes made to the DEBUG system.  New header file gstdebug.h holds the
stuff to keep it out of gst.h's hair.  DEBUG prints out the process id,
cothread id, source filename and line number.  Two new macros DEBUG_ENTER
and DEBUG_LEAVE are used to show the entry and exit of a given function.
This eventually might be used to construct call trace graphs, even taking
cothreads into account.  This would be quite useful in visualizing the
scheduling mechanism.

Minor changes to various debug messages.

Also sitting in gstdebug.h is a prototypical DEBUG_ENTER that's capable of
performing DEBUG_LEAVE automatically.  It does this by utilizing a
little-known GCC extension that allows one to call a function with the
same parameters as the current function.  The macro uses this to basically
call itself.  A boolean is used to ensure that when it calls itself it
actually runs the body of the function.  In the meantime it prints stuff
out before and after the real function, as well as constructing a
debugging string.  This can be used eventually to provide call-wide data
on the DEBUG lines, instead of having to replicate data on each call to
DEBUG.  More research is needed into how this would most cleanly be fit
into some other chunk of code, like GStreamer (I think of this DEBUG trick
as a separate project, sorta).

Unfortunately, the aforementioned DEBUG trick interacts quite poorly with
cothreads.  Almost any time it's used in a function that has anything
remotely to do with a cothread context (as in, it runs in one), a segfault
results from the __builtin_apply call, which is the heart of the whole
thing.  If someone who really knows assembly could analyze the resulting
code to see what's really going on, we might find a way to fix either the
macro or the cothreads (I'm thinking that there's something we missed in
constructing the cothreads themselves) so this works in all cases.

In the meantime, please insert both DEBUG_ENTER and DEBUG_LEAVE in your
functions.  Be sure to put DEBUG_ENTER after your variable declarations
and before any functional code, not to put the function name in any DEBUG
strings (it's already there, trust me), and put a DEBUG_LEAVE if you care
enough.

Changes are going to happen in the way DEBUGs and other printouts occur,
so stay tuned.
2000-12-04 09:35:08 +00:00
Wim Taymans
92c447c536 Reworked AC3 decoder. No seeking yet but at least we do not need ac3parse anymore.
Original commit message from CVS:
Reworked AC3 decoder. No seeking yet but at least we do not need ac3parse
anymore.
Reworked dvdsrc to read scrambled data (DeCSS not included). I have
modified DeCSS a bit to work in GStreamer. Can I release the code or is
there some lawyer that's going to sue me?
MPEG2 SSE motion compensation.
Tried to add PTS to the MPEG decoder but failed.
2000-11-20 19:04:32 +00:00
Wim Taymans
ef31aa64e8 Docs updates.
Original commit message from CVS:
Docs updates.
Added LICENSE info to headers/code where missing in gst directory
Added a bonobo wrapper for the media player (it shows up in gshell but
locks up when activating the component, anyone?)
Fixed some XML save/load problems with arguments.
2000-11-11 15:13:50 +00:00
Wim Taymans
c125059f97 Added the excellent mpeg2dec decoder. Not 100% optimized but allready very fast.
Original commit message from CVS:
Added the excellent mpeg2dec decoder. Not 100% optimized but allready
very fast.
More cleanup.
2000-11-04 18:54:07 +00:00
Wim Taymans
9bae9d4b91 More Docs updates.
Original commit message from CVS:
More Docs updates.
Added plugin documentation. I fear we need a gstdoc implementation
that loads plugins and does introspection on them. I think we should
automatically create the docs for the pads and mime types the plugins
provide. Does anyone have enough perl knowledge to add these features? I
allready changed the C code to output the pad definitions but my perl
knowledge is too limited, for now, to implement the rest of the needed
functionality...
2000-10-25 19:09:53 +00:00
Wim Taymans
2521a319c3 MPEG2 types added for better autoplugging. MPEG2 works more or less. fix in autoplugging. avi now works.
Original commit message from CVS:
MPEG2 types added for better autoplugging. MPEG2 works more or less.
fix in autoplugging. avi now works.
2000-10-21 12:04:40 +00:00
Richard Boulton
f1d8e760fb Added building of the manual to the build system. Currently in a rudimentary state - will not gracefully give up if ...
Original commit message from CVS:
Added building of the manual to the build system.  Currently in a
rudimentary state - will not gracefully give up if tools not available,
will not uninstall / clean, and may not install / make dist properly.
Documentation does not have dependencies on images, so won't rebuild if
they're altered either.
2000-10-09 00:34:21 +00:00
Wim Taymans
695f761c2b Fixed a bug in the typeloading.
Original commit message from CVS:
Fixed a bug in the typeloading.
Fixes to various elements so that correct types are returned.
Fixed flag collision with GtkObject.
Elements can now suggest a thread. not sure if this is the right way to
handle automatic thread creation.
Autoplugging now works with multiple sinks and thread setup. No threads
are created for intermediate elements yet, so MPEG may still be choppy.
2000-10-08 22:17:11 +00:00
Wim Taymans
f7bace76aa Added check for vorbis.
Original commit message from CVS:
Added check for vorbis.
Really compile with Xv extension if the library is found.
Changed the disksrc so that is goes to the PAUSE state if eof.
2000-09-17 14:06:18 +00:00
Richard Boulton
5a7cbafdda More work porting to PPC. libs/winloader is disabled on PPC - I doubt this can be made to work.
Original commit message from CVS:
More work porting to PPC.
libs/winloader is disabled on PPC - I doubt this can be made to work.
libs/videoscale and libs/idct are also disabled - they should be fixable
though.

Sorted out most of the plugins - avi is disabled for now on PPC;
can be worked on later if there's any chance of getting it to work.

Also provide an automake conditional for compiling vorbis, based on a
configure test for the needed libraries: currently the test isn't
implemented and defaults to "no" so you'll have to fiddle it to compile
vorbis.  I shall get hold of vorbis and implement an appropriate test some
other time (if noone else beats me to it).
2000-09-16 23:11:05 +00:00
Richard Boulton
968b5acaa1 Fix on x86 architectures - was just checking for 386, D'oh.
Original commit message from CVS:
Fix on x86 architectures - was just checking for 386, D'oh.
Fix autogen to run autoheader _before_ autoconf, since it generates a
required file (config.h.in, which I just removed from CVS since its an
autogenerated one).  Also fix messed up variables in gst/Makefile.am
2000-09-15 23:04:31 +00:00
Richard Boulton
238bbc23c8 Begun to add support for non i386 architectures, with the help of Chris
Original commit message from CVS:
Begun to add support for non i386 architectures, with the help of Chris
Emerson.  Added bits to configure to figure out architecture, and added
some alternatives for PPC.  Should cause no problems on i386, but I'll
check after this commit, but doesn't yet work on PPC by a fair way...
2000-09-15 22:44:10 +00:00
Wim Taymans
8051d54c36 Due to popular demand :-), I added a vorbis decoder.
Original commit message from CVS:
Due to popular demand :-), I added a vorbis decoder.
The encoder is not yet functional.
Small cosmetic changes to gstcpu.c

Beware:
You *need* to install libvorbis.a from the main vorbis CVS.
you *have* to change the line in libtool to
deplibs_check_method="pass_all"
because else the plugin shared library refuses to link against the
static libvorbis.a library. This is a hack. I have no intention in
including libvorbis into the gstreamer CVS tree and making it
libtool compatible.
2000-09-14 20:31:03 +00:00
Richard Boulton
cf0a34528d libXv is now linked against by test/* and gstplay if it is present.
Original commit message from CVS:
libXv is now linked against by test/* and gstplay if it is present.
-lXv isn't leaked all over the place due to AC_CHECK_LIB test.
This is still messy though - we shouldn't have to link explicitly
with extra things just because we use certain plugins.

Build Makefile in tests, but don't recurse into tests when doing the
build  (tests no longer in SUBDIRS).
2000-08-19 00:29:57 +00:00
Richard Boulton
9ae673e291 Test for a working libglade-gnome, and compile gstplay only if there is one.
Original commit message from CVS:
Test for a working libglade-gnome, and compile gstplay only if there is
one.
2000-08-18 23:31:30 +00:00
Richard Boulton
daf7640e76 If nasm isn't present, mpeg2enc plugin just ignores the .s files,
Original commit message from CVS:
If nasm isn't present, mpeg2enc plugin just ignores the .s files,
C equivalents will be used.
2000-08-18 22:07:34 +00:00
Richard Boulton
d840ef3e7d Test for nasm - define HAVE_NASM in config.h if we have it, and AC_SUBST
Original commit message from CVS:
Test for nasm - define HAVE_NASM in config.h if we have it, and AC_SUBST
NASM_PATH for use when using nasm.
2000-08-18 21:30:30 +00:00
Wim Taymans
d6e6b9cb60 Build fixes.
Original commit message from CVS:
Build fixes.
Adapted the test directory to the new state management
added an mpeg2 to avi encoder.
added a v4l to divx capture example.
2000-08-14 15:17:24 +00:00
Wim Taymans
b40f374449 The include files for the windows codec loader. top level configure file.
Original commit message from CVS:
The include files for the windows codec loader.
top level configure file.
2000-08-14 10:59:32 +00:00
Erik Walthinsen
b6d31c1c72 Megapatch, changes which states are available, how they're used, and how they're set. Also modifies the scheduling s...
Original commit message from CVS:
Megapatch, changes which states are available, how they're used, and how
they're set.  Also modifies the scheduling system, breaking pulled
buffers.  Check mail archives for more details.
2000-07-17 17:14:15 +00:00
Wim Taymans
8df1c8a278 Added DivX ;-) support by using the wine .dll loader. you must unzip binaries.zip from http://divx.euro.ru/binaries.z...
Original commit message from CVS:
Added DivX ;-) support by using the wine .dll loader. you must unzip
binaries.zip from http://divx.euro.ru/binaries.zip into the win32
directory **of the source tree**.
Extended and bugfixed thr riff parser to support DivX ;-)
Extended the avi parser to support DivX ;-) and MPEG Layer 3.
Fixed a bug in mpg123. Sound still is seriously wrong with layer 3.
Fixed MPEG2 playback in gstplay.
Time indication in gstplay is temporarly broken.
2000-07-15 12:06:18 +00:00
Wim Taymans
9920b88c3f This is the audio/video sync release.
Original commit message from CVS:
This is the audio/video sync release.
Changed the mpegvideoparser to parse complete pictures. Added the PTS
timestamps to the pictures.
Added PTS timestamps to the MPEG audio frames.
Made the clock a littlebit better.
Gstplay now uses two more threads one for video, one for audio playback.
Added the first QoS callbacks for the pads.
hopefully fix an mmx compilation problem.
2000-07-12 22:52:42 +00:00
Wim Taymans
37576c7dc9 Added HW scaling and YUV conversion for XFree 4.0
Original commit message from CVS:
Added HW scaling and YUV conversion for XFree 4.0
Need to cleanup the fallback mechanism in case no suitable XvImage is
found.
2000-07-05 21:32:38 +00:00
Wim Taymans
a3d5d3a62b Switched Cr and Cb in YUV2RGB fixed the avi parser (gstriff had wrong size) the system_encoder can now do video only ...
Original commit message from CVS:
Switched Cr and Cb in YUV2RGB
fixed the avi parser (gstriff had wrong size)
the system_encoder can now do video only system streams
sanitized the colorspace and scaler api.
added fast self modifying asm scaler.
worked on the typefind stuff.
added a cool media player (gstplay) it uses the typefinder to playback
avi, mpeg1 (system and video) streams. It is also a testbed and a real app.
2000-06-25 21:38:00 +00:00
Wim Taymans
3f0b3470a3 Unified putbits.
Original commit message from CVS:
Unified putbits.
2000-06-16 22:58:38 +00:00
Wim Taymans
d3fb1a8bd3 Added SCR and mux_rate calculations in the MPEG1 multiplexer. worked toward a unified putbits implementation
Original commit message from CVS:
Added SCR and mux_rate calculations in the MPEG1 multiplexer.
worked toward a unified putbits implementation
Added an MPEG audio layer 1&2 encoder.
2000-06-16 22:30:24 +00:00
Wim Taymans
f179798efb Reworked the audio resampler.
Original commit message from CVS:
Reworked the audio resampler.
Added first frames skipping to the mp3 and ac3 parser (this allows you to
skip a number of frames before pushing them).
Removed wrong mmx code from the encoder.
Added Macroblocks per slice to the encoder.
added bilinear and bicubic interpolation to the videoscaler.
Added a MPEG1 multiplexer (no SCR or mux rate calculations yet)
Added some options (framerate to the encoder/decoder)
2000-06-11 12:11:41 +00:00
Wim Taymans
cbb196fd31 Rewrote the mpeg1 system stream parser.
Original commit message from CVS:
Rewrote the mpeg1 system stream parser.
Fixed a motion compensation bug (was a bug on Intels site)
Faster/Better/more accurate motion detection in the mpeg encoder
Added an audio resampler (convert 48000 kHz to 44100 for example) does not work
Fixed rate control in the mpeg2 encoder.
2000-05-28 19:59:46 +00:00
Wim Taymans
8f2b441e96 Fixed the mpeg2 encoder. Added MMX optimisations for motion estimation.
Original commit message from CVS:
Fixed the mpeg2 encoder. Added MMX optimisations for motion estimation.
Added another mpeg1 encoder.
Added Two filters: smooth and median (a median cut filter)
Made the queue pull buffers.
2000-05-21 21:58:20 +00:00
Wim Taymans
17224d3c8e More changes to the mpeg parser and encoder.
Original commit message from CVS:
More changes to the mpeg parser and encoder.
It seems like the mpeg2 decoder does not like some MPEG1 videos. Use
mpeg_play for now (eg. AlienSong)
2000-05-12 17:33:35 +00:00
Richard Boulton
1c6911d307 Make GDK pixbuf optional, by compiling videosink only if it is present.
Original commit message from CVS:
Make GDK pixbuf optional, by compiling videosink only if it is present.
Make documentation generated successfully even if libghttp isn't present
(by skipping the ghttpsrc stuff).
2000-05-12 07:15:03 +00:00
Wim Taymans
58dede8409 MPEG2 decoder fixes, unified MPEG System stream parser. an mpeg encoder.
Original commit message from CVS:
MPEG2 decoder fixes, unified MPEG System stream parser. an mpeg
encoder.
2000-05-01 23:09:46 +00:00
Wim Taymans
c81358367e Added the mpeg2dec MPEG1 and MPEG2 decoder.
Original commit message from CVS:
Added the mpeg2dec MPEG1 and MPEG2 decoder.
2000-04-24 20:51:30 +00:00
Wim Taymans
a3443b51d5 Unified getbits handling. I currently have an inline integer implementation.
Original commit message from CVS:
Unified getbits handling. I currently have an inline integer implementation.
2000-04-16 18:47:45 +00:00
Wim Taymans
3fbaa5c582 Makefile.am fixes
Original commit message from CVS:
Makefile.am fixes
2000-04-13 21:59:38 +00:00
Wim Taymans
0d9315223a Added a colorspace library and removed yuv2rgb conversion from the videosink.
Original commit message from CVS:
Added a colorspace library and removed yuv2rgb conversion from the
videosink.
The aviencoder should now more or less work.
2000-04-02 21:36:54 +00:00
Wim Taymans
53b9cea328 Added jpeg decoder. the avi decoder now configures the jpeg codec if an MJPG encoded avi is found. Fixed riff parsing...
Original commit message from CVS:
Added jpeg decoder. the avi decoder now configures the jpeg codec if
an MJPG encoded avi is found. Fixed riff parsing. readded rgb_draw
functions to the videosink. jpeglib is used to decode the jpeg image.
2000-03-22 21:18:15 +00:00
Wim Taymans
1f4d20f689 Implemented riff parsing as a library. The avi parser can play simple PCM encoded audio.
Original commit message from CVS:
Implemented riff parsing as a library. The avi parser can play
simple PCM encoded audio.
some minor cleanups.
2000-03-20 20:25:03 +00:00
Wim Taymans
39d3ec0a0d Added the riff code into a seperate library in /libs dir. The plugin loader also checks the /libs path.
Original commit message from CVS:
Added the riff code into a seperate library in /libs dir. The plugin
loader also checks the /libs path.
The avi parser now uses the riff library.
WAV is broken.
2000-03-19 00:59:05 +00:00
Wim Taymans
c2b8daff3a Various cleanups. Moved the overlay code to a specialized widget.
Original commit message from CVS:
Various cleanups. Moved the overlay code to a specialized widget.
One error I cannot seem to fix: switching desktops does not disable the
overlay.
2000-03-13 22:13:11 +00:00
Wim Taymans
aa0b9ec506 Added a Video 4 linux source. Not generic at all and may not work on any other system but mine.
Original commit message from CVS:
Added a Video 4 linux source. Not generic at all and may not work
on any other system but mine.
2000-02-25 23:18:51 +00:00
Wim Taymans
2810e739f6 Added GdkPixbuf support and scaling (sloww...)
Original commit message from CVS:
Added GdkPixbuf support and scaling (sloww...)
2000-02-20 16:19:50 +00:00
Wim Taymans
13198c06fa MPEG1 cleanup. Added first (non functional) video sink.
Original commit message from CVS:
MPEG1 cleanup. Added first (non functional) video sink.
2000-02-17 22:50:28 +00:00
Wim Taymans
b2e0448541 Added MPEG1 video parser.
Original commit message from CVS:
Added MPEG1 video parser.
2000-02-08 22:36:20 +00:00
Wim Taymans
f6ba2d4db2 Added compiler optimistaion flags to mpg123. reverted to old WRITE_SAMPLE which was much faster.
Original commit message from CVS:
Added compiler optimistaion flags to mpg123. reverted to old WRITE_SAMPLE
which was much faster.
Added mpeg_play, the MPEG1 video player. It does not work yet.
2000-02-07 19:04:33 +00:00
Richard Boulton
5d5807c0d5 Compile a test program to ensure that we have working atomic resource counting.
Original commit message from CVS:
Compile a test program to ensure that we have working atomic resource
counting.

A few small changes (include headers, fix a cast) to stop compiler
warnings.
2000-02-04 02:25:34 +00:00
Erik Walthinsen
65e7c2e158 More documentation changes, a couple configure.in and Makefile.am fixes.
Original commit message from CVS:
More documentation changes, a couple configure.in and Makefile.am fixes.
2000-02-02 06:26:44 +00:00
Wim Taymans
d946ac7b3c Fixed lowercase PLUGINS_USE_SRCDIR which made running test apps fail.
Original commit message from CVS:
Fixed lowercase PLUGINS_USE_SRCDIR which made running test apps fail.
Added GHTTP_LIBS to the libraries.
commented out mm_support() call, wich is not working yet and causes errors.
2000-02-01 20:35:14 +00:00
Wim Taymans
ffd6d98e9d Try to compile a little mmx program, set the default value of HAVE_LIBMMX. some typos fixed. Changed include path for...
Original commit message from CVS:
Try to compile a little mmx program, set the default value of HAVE_LIBMMX.
some typos fixed. Changed include path for volume.c. RTjpeg uses mmx.h
2000-02-01 19:40:10 +00:00
Erik Walthinsen
56a79fbfcc Re- set up the gtk-doc system. I'd managed to mutilate it a while back, but now it's fixed. I'll put a copy of the ...
Original commit message from CVS:
Re- set up the gtk-doc system.  I'd managed to mutilate it a while back,
but now it's fixed.  I'll put a copy of the HTML output somewhere on the
website tonight.

In order to actually generate the docs, you'll have to install all the
DocBook tools, as well as gtk-doc from GNOME cvs.  (see
http://developer.gnome.org/arch/doc/tools.html)

Notes (I'll codify these some day):

- Don't believe the Gnome page, always edit the SOURCES when documenting a
given function, never the tmpl file.
- I'll be re-arranging things a lot, but gtk-doc is smart enough to merge
any changes to the tmpl file.  However, gtk-doc's merge and CVS's diff are
two entirely separate animals.  We should probably have a virtual mutex on
the entire docs/gst/ directory, over and above what CVS does.
- I'm going to try to end up with a book set (docbook terms), where
docs/gst/ is only one book.  There'd be another called docs/manual/, and
another docs/plugins/, etc.  If you have any comments as to how these
should be done, gstreamer-devel is the place.
2000-02-01 09:16:43 +00:00
Richard Boulton
dc38347cee Tidy up of configure script.
Original commit message from CVS:
Tidy up of configure script.
Make libghttp detection work at all.
Make library configuration specifiable on configure commandline.
Make detection of atomic resource stuff cope with 2.0 linux kernels.
Fix typo (HAVE_ATOMIC_T for HAVE_ATOMIC_H).
Remove generated ltmain.sh file from mp3decode.
2000-02-01 04:10:58 +00:00
Erik Walthinsen
0032727103 More incremental updates. I can now successfully produce an rpm simply by typing ./autogen.sh;make rpm. This is g...
Original commit message from CVS:
More incremental updates.  I can now successfully produce an rpm simply by
typing `./autogen.sh;make rpm`.  This is good ;-)
2000-01-31 09:43:08 +00:00
Erik Walthinsen
0bc672ec72 Various fixes that collectively allow make dist to work.
Original commit message from CVS:
Various fixes that collectively allow `make dist` to work.
2000-01-31 05:55:22 +00:00
Erik Walthinsen
e4f151a2ce RTjpeg plugin with several elements. It's currently a skeleton, doing no work at all. Need to have a video display ...
Original commit message from CVS:
RTjpeg plugin with several elements.  It's currently a skeleton, doing no
work at all.  Need to have a video display element, some kind of
simulation source (read from .ppm, a la what I do at work to solve the
exact same problem), raw video types, metadata structs, etc.

The RTjpeg.[ch] code is taken from a just-downloaded copy from Justin's
site, with some fixes (#include <asm/types.h> to get __u64,etc).  Once the
aforementioned infrastructure is in place, the elements can actually be
set up to do the encode/decode, and we'll have our first functioning video
codec in place. ;-)
2000-01-31 03:02:52 +00:00
Wim Taymans
b8a3a19774 Changed Makefiles to: detect xaudio (check header xaudio/decoder.h) detect mmx.h need something better.
Original commit message from CVS:
Changed Makefiles to:
detect xaudio (check header xaudio/decoder.h)
detect mmx.h
detect CSS (check if css.c is in plugins/dvdsrc), need something better.
some LDFLAGS had *.la dependencies which failed for libtool

The build is now 100% on my system.
2000-01-30 22:50:27 +00:00
Erik Walthinsen
1762dfbf98 initial checkin
Original commit message from CVS:
initial checkin
2000-01-30 09:03:00 +00:00