Original commit message from CVS:
README and the beginning of the first code-review. Here's the README:
Code reviews:
=============
Files are to be named by file or subsystem, and CVS revision number or date:
gstbin.c-1.41
editor-20001216
A file should look something like the following:
----------------------------------------------------------------------
Code Review
===========
File: gst/gstbin.c
Revision: 1.41
Date: Dec 16, 2000
Reviewer: Erik Walthinsen <omega@cse.ogi.edu>
-----
Line 20:
#define GST_DEBUG_ENABLED
Shouldn't be here, DEBUG should be enabled globally. May leave until
scheduling changes are done.
-----
Line 117: (gst_bin_class_init)
gstelement_class->elementfactory = gst_elementfactory_find("bin");
Not sure this is such a great idea. I thought the GstElement code did this
kind of stuff?
----------------------------------------------------------------------
The format will evolve as we do more stuff, such as putting in fields for
recommended actions, comments regarding any later changes made and when, etc.
Original commit message from CVS:
WARNING: Don't grab this updated unless you're really, REALLY sure.
WARNING: Wait for the next one.
Whole lotta changes here, including a few random bits:
examples/*/Makefile: updated to use `libtool gcc`, not just `gcc`
gst/
gstbuffer.h: updated to new flag style
gst.c, gstdebug.h: added new debugging for function ptrs
gstpipeline.c: set type of parent_class to the class, not the object
gstthread.c: ditto
plugins/
cdparanoia/cdparanoia.c: added an argument type, updated some defaults
cobin/spindentity.c: updated to new do/while loopfunction style
mp3encode/lame/gstlame.c: argument types, whole lotta lame options
tests/: various changes
Now, for the big changes: Once again, the scheduling system has changed.
And once again, it broke a whole bunch of things. The gist of the change
is that there is now a function pointer for gst_pad_push and gst_pad_pull,
instead of a hard-wired function. Well, currently they are functions, but
that's for debugging purposes only, they just call the function pointer
after spewing lots of DEBUG().
This changed the GstPad structure a bit, and the GstPad API as well.
Where elements used to provide chain() and pull() functions, they provide
chain() and get() functions. gst_pad_set_pull[region]_function has been
changed to get_pad_set_get[region]_function. This means all the elements
out there that used to have pull functions need to be updated. The calls
to that function have been changed in the normal elements, but the names
of the functions passed is still _pull[region](), which is an aesthetic
issue more than anything.
As for what doesn't work yet, just about anything dealing with Connections
is hosed, meaning threaded stuff won't work. This will be fixed about 12
hours from now, after I've slept, etc. The simplefake.c test works in
both cothreaded and chained cases, but not much else will work due to the
Connection problem. Needless to say, don't grab this unless you *need*
these features *now*, else wait to update this stuff until tomorrow.
I'm going to sleep now.
Original commit message from CVS:
Changed the GstPadFactory and added the GstPadTemplate.
The GstPadFactory is an easy way to define a pad with capabilities.
The GstPadFactory is converted into a GstPadTemplate. The template is
used to create new pads and to expose the possible pads used in an
element to the plugin system.
updated mp3parse, mpg123, cdparanoia to the new API.
Rerun gstreamer-register because the XML definition has changed.
Original commit message from CVS:
First pass at an outline for the Filter Writer's Guide. Mostly complete,
though the structure needs some work. Just need someone to write it ;-)
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.
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.
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...
Original commit message from CVS:
Manual now gets installed correctly by make install. Problems:
clean / uninstall don't work.
make dist not tested.
pdf manual doesn't have images.
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.
Original commit message from CVS:
Fix compile problem due to DEBUG being redefined in
libs/getbits/gstgetbits.h. Also fix several small typos in the docs and
examples.
Original commit message from CVS:
Added gst_pipeline_add_sink/src to allow multiple sink cases and
more complex autoplugging. Update docs too.
Simplified the pipeline autoplugging code.
Changed the cothread case: One iteration is now a push from the src
element. The disk source does not change its state anymore on eof.
Better type setting for the ac3 parser/decoder and mpeg2parse.
Original commit message from CVS:
Added a quick hack to allow loop based elements to finish intead of
looping till infinity.
Added compile time i386 or plain C getbits implementation selection.
The vorbis decoder now is our first loop based element!
Original commit message from CVS:
Changes to gstreamer-config to include gtk+ libs
manual changes: queues, threads, programs
gsteditor does not crash anymore.
gstpipline new should return a GstElement *
fixed ac3dec for new getbits
fixes to gstreamer-launch
more efficient startup for gstplay.
Original commit message from CVS:
More docs (most of them just empty...)
Added automatic pad plugging.
Added automatic dynamic pad plugging.
Changed some codecs to correctly set their pad types.
Original commit message from CVS:
A first (rude) attempt at autoplug.
Autoplugging selects appropriate codecs to connect src to sink, adds
them to the pipeline and connect pads.
Autoplugging will run the typedetect plugin if the src pad has no MIME
type.
No autoplugging is done on the src and sink pads, it's hardcoded:
connect 'src to sink'.
No attempt at creating threads.
No attempt at dynamically autoplugging not yet existing pads.
Changes to (some) plugins to properly set their MIME types.
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.
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.
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.
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.
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).
Original commit message from CVS:
Documentation updates. All standard library objects and standard
elements are documented. Modified some of the elements to more
accuratly report about their arguments so the documentation builds
more reasonable output.
Added aviencoder and jpegencoder elements (not working yet)
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
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.
Original commit message from CVS:
OK, I think I've got all the .cvsignore stuff taken care of, though we'll
want to fine-tune things as we go, of course. Most of them are the same,
with some exceptions for directories that produce executables (those are
listed by name after the standard ones and a newline for separation).