Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_dec_decode_buffer):
Skip empty buffers, but not empty header buffers. That way the original
vorbisdec unit test still passes (#451145); also, take into account
that those empty packets might carry a granulepos.
* tests/check/Makefile.am:
* tests/check/elements/vorbisdec.c:
(_create_codebook_header_buffer), (_create_audio_buffer),
(GST_START_TEST), (vorbisdec_suite):
Add unit test that sends an empty packet.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_dec_decode_buffer):
Don't error out on 0-sized packets, just emit a warning because this is
not a fatal error. Fixes#451145.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
Use scale functions to avoid overflow when calculating duration of
vorbis buffers.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c (vorbis_dec_push_forward,
vorbis_handle_data_packet):
Correctly set DURATION to generate a timestamp-continuous stream.
One bug left at the end; see
ihttp://bugzilla.gnome.org/show_bug.cgi?id=423086
* tests/check/Makefile.am:
* tests/check/pipelines/vorbisenc.c (GST_START_TEST):
Add a test to check this. Without the above patch this test fails.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_chain):
If we get a zero-sized input buffer, don't pass it to libvorbis, as
that marks EOS internally. After that, libvorbis will buffer all
input data, and encode none of it, eventually leading to memory
exhaustion.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_stream_out):
* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
* gst/playback/gstdecodebin2.c:
(gst_decode_group_check_if_blocked):
Printf format and missing argument fixes.
Original commit message from CVS:
* ext/theora/theoradec.c: (gst_theora_dec_reset),
(theora_dec_push_forward), (theora_dec_push_reverse),
(theora_handle_data_packet), (theora_dec_decode_buffer),
(theora_dec_flush_decode), (theora_dec_chain_reverse),
(theora_dec_chain_forward), (theora_dec_chain):
Implement reverse playback.
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_reset),
(vorbis_dec_decode_buffer), (vorbis_dec_flush_decode),
(vorbis_dec_chain_forward):
Clear buffers used for reverse playback in _reset.
No need to set the eos flag, we clip samples using the segment.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_dec_push_forward),
(vorbis_handle_data_packet), (vorbis_dec_decode_buffer),
(vorbis_dec_flush_decode):
Small cleanups.
Don't try to add invalid timestamps.
Clipping will unref the buffer.
Original commit message from CVS:
Patch by: James "Doc" Livingston <doclivingston at gmail com>
* ext/vorbis/Makefile.am:
* ext/vorbis/vorbis.c: (plugin_init):
* ext/vorbis/vorbisparse.c: (gst_vorbis_parse_class_init),
(vorbis_parse_parse_packet), (vorbis_parse_chain):
* ext/vorbis/vorbisparse.h:
* ext/vorbis/vorbistag.c: (gst_vorbis_tag_base_init),
(gst_vorbis_tag_class_init), (gst_vorbis_tag_init),
(gst_vorbis_tag_parse_packet):
* ext/vorbis/vorbistag.h:
Add new vorbistag element which derives from vorbisparse
and is essentially the same as well, only that it implements
the GstTagSetter interface and can modify the stream's
vorbiscomment on the fly (#335635).
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/vorbistag.c: (setup_vorbistag),
(cleanup_vorbistag), (buffer_probe), (start_pipeline),
(get_buffer), (stop_pipeline), (_create_codebook_header_buffer),
(_create_audio_buffer), (GST_START_TEST), (vorbistag_suite):
Add unit test for new vorbistag element.
Original commit message from CVS:
* ext/vorbis/vorbisparse.c: (gst_vorbis_parse_init),
(vorbis_parse_push_headers), (vorbis_parse_chain):
Set BOS flag in packet structure to fix 'jump depends
on unitialized value' errors in valgrind; various minor
clean-ups.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/cdda/Makefile.am:
* gst-libs/gst/cdda/gstcddabasesrc.c:
(gst_cdda_base_src_base_init):
* gst-libs/gst/cdda/gstcddabasesrc.h:
* gst-libs/gst/tag/tag.h:
* gst-libs/gst/tag/tags.c: (gst_tag_register_tags_internal),
(gst_tag_register_musicbrainz_tags):
Move GST_TAG_CDDA_* tags into libgsttag and make libgstcddabasesrc
depend on libgsttag. This is required so we can extract/read tags like
DISCID without depending on libgstcddabasesrc (which used to register
them).
* gst-libs/gst/tag/gstvorbistag.c:
Add vorbiscomment mapping for CDDB_DISCID and MUSICBRAINZ_DISCID
tags (also see #347848).
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_metadata_set1):
Log vorbis comments we are actually writing. Const-ify array.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_push_buffer),
(gst_vorbis_enc_buffer_check_discontinuous),
(gst_vorbis_enc_chain):
Ignore explicit DISCONT marked on buffers (which is often spurious,
particularly when using multiple segments), in favour of solely
using the timestamps/durations.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c:
(gst_vorbis_enc_buffer_check_discontinuous):
Allow very small discontinuities in the timestamps. These we can't
do anything useful with anyway (because vorbis's timestamps have
only sample granularity), and are commonly produced by elements with
minor bugs. Allow up to 1/2 a sample out.
Fixes#351742.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_metadata_set1),
(gst_vorbis_enc_set_metadata):
Use vorbis comment utility functions from libgsttag
instead of re-inventing the wheel (partially fixes#347091).
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_generate_sink_caps),
(gst_vorbis_enc_sink_getcaps), (gst_vorbis_enc_buffer_from_packet),
(gst_vorbis_enc_push_buffer),
(gst_vorbis_enc_buffer_check_discontinuous),
(gst_vorbis_enc_chain), (gst_vorbis_enc_change_state):
* ext/vorbis/vorbisenc.h:
Handle discontinuities in the input vorbis stream correctly,
so that the output is properly timestamped (and has good granulepos
values). Needs some oggmux fixes too.
Original commit message from CVS:
2006-07-14 Andy Wingo <wingo@pobox.com>
* ext/vorbis/vorbisparse.h:
* ext/vorbis/vorbisparse.c (vorbis_parse_drain_event_queue)
(vorbis_parse_push_headers, vorbis_parse_clear_queue)
(vorbis_parse_drain_queue_prematurely, )
(vorbis_parse_sink_event, vorbis_parse_change_state): Queue events
until we have initialized our state. Fixes seeking after an
initial pad block.
2006-07-14 Andy Wingo <wingo@pobox.com>
Patch by: Iain * <iaingnome@gmail.com>
* ext/ogg/gstoggdemux.c (gst_ogg_demux_finalize): Fix memleak.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_dec_finalize),
(vorbis_handle_comment_packet):
gst_tag_list_merge() returns a new object. Take that into account when
using it. This avoids memleak.
Revert previous commit which is not needed.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_reset),
(vorbis_dec_sink_event), (vorbis_handle_comment_packet),
(vorbis_handle_type_packet):
Post tag messages on the bus even if we're not initialized.
If we're not initialized, we still postpone the event pushing of tags.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_handle_identification_packet):
Reinstate limit on channel count. Vorbis does not define the meaning
of > 6 channels, so they're just independent channels. Gstreamer
currently has no mechanism to represent N independent channels.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_handle_identification_packet):
Don't arbitrarily restrict channel counts and rate in vorbis.
In terms of effects likely on real-world files, this fixes 96kHz
playback of vorbis.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (raw_caps_factory),
(gst_vorbis_enc_class_init), (gst_vorbis_enc_dispose),
(gst_vorbis_enc_generate_sink_caps), (gst_vorbis_enc_sink_getcaps),
(gst_vorbis_enc_init), (gst_vorbis_enc_buffer_from_header_packet),
(gst_vorbis_enc_chain), (gst_vorbis_enc_change_state):
* ext/vorbis/vorbisenc.h:
Multi-channel caps negotiation, so we can do proper multichannel
vorbis encoding, negotiated through audioconvert.
Original commit message from CVS:
* ext/theora/theoradec.c: (gst_theora_dec_reset),
(theora_dec_src_query), (theora_dec_src_event),
(theora_dec_sink_event), (theora_handle_comment_packet),
(theora_handle_data_packet), (theora_dec_change_state):
Cleanups, add some G_LIKELY.
Use segment helpers instead of our own wrong code.
Clear queued buffers on seek and READY.
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_reset),
(vorbis_dec_convert), (vorbis_dec_src_query),
(vorbis_dec_src_event), (vorbis_dec_sink_event),
(vorbis_handle_comment_packet), (vorbis_dec_push),
(vorbis_handle_data_packet), (vorbis_dec_chain),
(vorbis_dec_change_state):
* ext/vorbis/vorbisdec.h:
Remove old useless packetno variable.
Do position query properly.
Add some G_LIKELY.
Do cleanup of queued buffers in new helper function
and use it.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_get_query_types),
(vorbis_dec_convert), (vorbis_dec_src_query),
(vorbis_dec_sink_query), (vorbis_dec_src_event),
(vorbis_dec_sink_event), (vorbis_handle_identification_packet),
(vorbis_dec_clean_queued), (vorbis_dec_push),
(vorbis_handle_data_packet), (vorbis_dec_change_state):
Cleanups. Use refcounting and DEBUG_OBJECT.
Reset segment on flush, use code methods instead of our
own wrong version.
Fix potential memleak.
Original commit message from CVS:
2006-05-05 Andy Wingo <wingo@pobox.com>
* ext/theora/theoraparse.c (gst_theora_parse_init)
(theora_parse_src_convert, theora_parse_src_query):
* ext/vorbis/vorbisparse.c (gst_vorbis_parse_init)
(vorbis_parse_convert, vorbis_parse_src_query): Add convert and
query functions on the source pads of the theora and vorbis parse
elements. Fixes position querying when doing a remux.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_dec_sink_event),
(vorbis_dec_push), (vorbis_dec_chain):
Still produce an error when we receive an empty packet.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain_peer),
(gst_ogg_chain_mark_discont), (gst_ogg_chain_new_stream),
(gst_ogg_demux_activate_chain), (gst_ogg_demux_perform_seek):
Mark buffers with DISCONT after seek and after activating new
chains.
* ext/theora/gsttheoradec.h:
* ext/theora/theoradec.c: (gst_theora_dec_reset),
(theora_get_query_types), (theora_dec_sink_event),
(theora_dec_push), (theora_handle_data_packet), (theora_dec_chain),
(theora_dec_change_state):
Fix frame counter.
Detect and mark DISCONT buffers.
* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
(vorbis_dec_sink_event), (vorbis_dec_push), (vorbis_dec_chain),
(vorbis_dec_change_state):
* ext/vorbis/vorbisdec.h:
Use GstSegment.
Detect and mark DISCONT buffers.
Don't crash on 0 sized buffers.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_set_header_on_caps),
(gst_vorbis_enc_chain):
Remove leaks from vorbisenc.
Mostly minor changes, the only significant one is that now the
buffers we set as 'streamheader' on the caps are copies of the
original buffers, to avoid circular refcounting problems.
Original commit message from CVS:
2006-03-31 Andy Wingo <wingo@pobox.com>
* ext/vorbis/vorbisparse.c (vorbis_parse_sink_event): Fix
uninitialized variable return that would happen.
Original commit message from CVS:
2006-03-31 Andy Wingo <wingo@pobox.com>
* ext/vorbis/vorbisparse.c (vorbis_parse_drain_queue): Fix
uninitialized variable return that would never happen.
Original commit message from CVS:
2006-03-31 Andy Wingo <wingo@pobox.com>
* ext/vorbis/vorbisparse.c (gst_vorbis_parse_init)
(vorbis_parse_sink_event): Add an event function to flush our
state on a seek, and to drain buffers on a premature EOS.
(vorbis_parse_push_headers, vorbis_parse_clear_queue)
(vorbis_parse_push_buffer, vorbis_parse_drain_queue_prematurely)
(vorbis_parse_chain, vorbis_parse_queue_buffer)
(vorbis_parse_drain_queue): Queue up buffers until we can set
their timestamps and granulepos values.
* ext/vorbis/vorbisparse.h: Include the vorbis decoder headers,
and keep track of data needed for deriving granulepos and
timestamps for buffers.
Original commit message from CVS:
ogg muxing of vorbis and theora now has pages ordered correctly again,
even with delays.
* ext/ogg/README:
updated with some examples
* ext/theora/theoraenc.c: (granulepos_to_timestamp),
(granulepos_add), (theora_buffer_from_packet):
* ext/vorbis/vorbisenc.c: (granulepos_to_timestamp_offset),
(granulepos_to_timestamp), (gst_vorbisenc_buffer_from_packet),
(gst_vorbisenc_chain):
implement strategy from ext/ogg/README
* ext/ogg/gstoggmux.c: (gst_ogg_mux_buffer_from_page),
(gst_ogg_mux_push_buffer), (gst_ogg_mux_dequeue_page),
(gst_ogg_mux_pad_queue_page), (gst_ogg_mux_compare_pads),
(gst_ogg_mux_queue_pads), (gst_ogg_mux_collected):
Fix muxer so that oggz-validate is happy with all streams;
except for no eos mark, and the BOS page ordering
* tests/check/pipelines/theoraenc.c: (check_buffer_is_header),
(check_buffer_granulepos):
* tests/check/pipelines/vorbisenc.c: (check_buffer_granulepos):
update tests to check for OFFSET being set as requested
fixed type of granulepos, it's not a ClockTime
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_convert_src),
(gst_vorbisenc_convert_sink):
Use some more scaling functions.
Original commit message from CVS:
(theora_enc_finalize), (theora_enc_sink_setcaps):
Add a finalize method to ensure we clean up state even if
someone omitted the state change back to NULL.
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_metadata_set1),
(gst_vorbisenc_chain):
Free some more leaked bits.
* tests/check/pipelines/theoraenc.c: (start_pipeline),
(stop_pipeline):
Wait for state changes to happen if they're ASYNC.
This ought to teach those fancy pants buildbots a lesson.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_dec_convert),
(vorbis_handle_header_packet), (vorbis_dec_push),
(vorbis_handle_data_packet):
Use scale_int when we can, add some more scaling.
Check packettype before parsing it.
Original commit message from CVS:
2006-01-30 Andy Wingo <wingo@pobox.com>
* tests/check/Makefile.am (check_vorbis): Add pipelines/vorbisenc.
* ext/vorbis/vorbisenc.c (gst_vorbisenc_buffer_from_packet): Logic
updated to timestamp from the first sample, not the last.
(gst_vorbisenc_buffer_from_header_packet): New function, takes
special care of granulepos and timestamp for header packets.
(gst_vorbisenc_chain): Reflow, fix some leaks, and handle the case
when the first buffer has a nonzero timestamp.
* ext/vorbis/vorbisenc.h (GstVorbisEnc.granulepos_offset)
(GstVorbisEnc.subgranule_offset): New members. Take care of the
case when the first audio buffer we get has a nonzero timestamp.
(GstVorbisEnc.next_ts): Renamed from prev_ts, because now we
properly timestamp vorbis buffers with the time of the first
sample, not the last.
* ext/vorbis/vorbisenc.c (granulepos_to_clocktime): Renamed from
vorbis_granule_time_copy -- now it takes the granule/subgranule
offset into account.
* tests/check/pipelines/vorbisenc.c: New test for correctness of
timestamps, durations, and granulepos on buffers produced by
vorbisenc.
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_handle_comment_packet):
Post taglist actually on bus instead of just freeing it
(fixes#327114 and totem bug #327080).
* ext/vorbis/vorbisdec.c: (vorbis_handle_comment_packet):
Use gst_element_found_tags_for_pad(), so that the tags
are sent downstream as an event as well.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_setup):
Minimal fix for bug #320200: set the min/max bitrate in the correct
units. A better fix would be to upgrade to the RATEMANAGE2
interface, rather than using the deprecated interface used here, but
that would require an update in our libvorbis dependency (to 1.1),
which is probably undesirable.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_push_buffer),
(gst_vorbisenc_push_packet):
GST_PAD_IS_USABLE is gone, use the return value of
the push or pad_alloc_buffer instead.
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (gst_ogg_mux_clear), (gst_ogg_mux_init),
(gst_ogg_mux_sinkconnect), (gst_ogg_mux_request_new_pad),
(gst_ogg_mux_push_buffer), (gst_ogg_mux_dequeue_page),
(gst_ogg_mux_pad_queue_page), (gst_ogg_mux_queue_pads),
(gst_ogg_mux_set_header_on_caps), (gst_ogg_mux_collected),
(gst_ogg_mux_clear_collectpads), (gst_ogg_mux_change_state):
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_buffer_from_packet),
(gst_vorbisenc_change_state):
Fix a small memory leak in vorbisenc.
Fix large memory leaks in oggmux, also fix lots of state change
bugs in oggmux.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_setup),
(gst_vorbisenc_buffer_from_packet):
* ext/vorbis/vorbisenc.h:
Set duration on encoded buffers. This allows oggmux's
max_page_delay parameter to actually work.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
Correctly flush decoder samples even if we could not
copy them to an output buffer. Fixes#319618.
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_dec_src_query),
(theora_dec_sink_event):
* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
(vorbis_dec_sink_event), (vorbis_handle_identification_packet),
(vorbis_handle_data_packet):
* ext/vorbis/vorbisdec.h:
Fix old naming.
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_render):
Don't try to sync on buffers without a timestamp.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_get_query_types),
(gst_vorbisenc_src_query):
Implement position and duration queries.
* gst/playback/test3.c: (update_scale), (main):
Fix for async state changes and print nicer output.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_dec_sink_event),
(vorbis_handle_data_packet), (vorbis_dec_chain),
(vorbis_dec_change_state):
* ext/vorbis/vorbisdec.h:
Vorbis streams can be embedded in other container formats
than ogg, container formats where the demuxer might set
timestamps on encoded vorbis buffers instead of those silly
granulepos thingies. In short: make vorbisdec handle
timestamps on incoming buffers as well.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c:
* gst-libs/gst/tag/gstid3tag.c: (gst_tag_list_new_from_id3v1):
* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add),
(gst_tag_to_vorbis_comments):
Fix handling of GST_TAG_DATE, which is now of GST_TYPE_DATE.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_clear),
(gst_vorbisenc_sink_event), (gst_vorbisenc_change_state):
Don't flush encoder state unless we have an initialised encoder.
Clear out encoder state on PAUSED_TO_READY.
Original commit message from CVS:
* check/Makefile.am:
have some tests be disabled for valgrinding
* check/elements/vorbisdec.c: (cleanup_vorbisdec),
(GST_START_TEST):
* ext/vorbis/vorbisdec.c: (vorbisdec_finalize):
Fix A Leak. Chain To Parent Finalize.
Original commit message from CVS:
2005-09-15 Thomas Vander Stichele <thomas at apestaart dot org>
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_init),
(gst_vorbisenc_sink_event), (gst_vorbisenc_chain),
(gst_vorbisenc_output_buffers), (gst_vorbisenc_change_state):
* ext/vorbis/vorbisenc.h:
Fix EOS handling. Still needs a fix in the ogg muxer to
mark the last page as eos somehow.
Original commit message from CVS:
* common/gtk-doc-plugins.mak:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* ext/theora/Makefile.am:
* ext/theora/gsttheoraenc.h:
* ext/theora/theoraenc.c:
* ext/vorbis/vorbisenc.c:
pick up signals and args for vorbis; add some docs for vorbis
Original commit message from CVS:
2005-08-29 Andy Wingo <wingo@pobox.com>
* ext/vorbis/vorbisdec.c (vorbis_dec_convert, vorbis_dec_push)
(vorbis_handle_data_packet): Fix some int overflow errors.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_dispose):
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_class_init),
(vorbisdec_finalize), (vorbis_handle_type_packet):
Big shout-out to MikeS for fixing this giant memory leak.
Huzzah!
Original commit message from CVS:
make GST_PLUGIN_LDFLAGS only be flags; GST_LIBS should be
added manually to each Makefile.am so we are sure it goes
*last* and doesn't add -L flags before linking in libs of our
own, like, say, internal .la libs, that then accidentally pick
up the installed copy.
Original commit message from CVS:
* ext/theora/theoraenc.c: (theora_set_header_on_caps):
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_set_header_on_caps):
Set buffers on caps as miniobjects and not as boxed.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_dispose),
(gst_ogg_pad_typefind), (gst_ogg_pad_submit_packet),
(gst_ogg_chain_new_stream), (gst_ogg_demux_perform_seek),
(gst_ogg_demux_chain), (gst_ogg_demux_loop),
(gst_ogg_demux_sink_activate):
* ext/theora/theoradec.c: (theora_dec_src_event),
(theora_handle_comment_packet), (theora_dec_chain),
(theora_dec_change_state):
* ext/vorbis/vorbisdec.c: (vorbis_dec_sink_event),
(vorbis_handle_data_packet), (vorbis_dec_chain),
(vorbis_dec_change_state):
Remove STREAM locks as they are taken in core now.
Never set bogus granulepos on vorbis/theora.
Fix leaks in theoradec tag parsing.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c (vorbis_handle_comment_packet): Post a
message to the bus with the tags. Still not sent downstream tho.
* gst/playback/gstdecodebin.c (remove_element_chain): Unref after
get_parent.
(remove_element_chain): Use OBJECT_PARENT instead of get_parent to
avoid refcounting hassles.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_sink_setcaps),
(gst_vorbisenc_src_query), (gst_vorbisenc_sink_query),
(gst_vorbisenc_set_header_on_caps), (gst_vorbisenc_sink_event),
(gst_vorbisenc_chain):
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain),
(gst_audio_convert_caps_remove_format_info),
(gst_audio_convert_getcaps), (gst_audio_convert_setcaps),
(gst_audio_convert_fixate), (gst_audio_convert_channels):
Make caps writable before writing to it.
Fix negotiation in audioconvert some more.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_typefind),
(gst_ogg_demux_perform_seek), (gst_ogg_demux_sink_activate):
* ext/vorbis/vorbisdec.c: (vorbis_dec_convert),
(vorbis_dec_src_query), (vorbis_dec_src_event),
(vorbis_dec_sink_event), (vorbis_handle_comment_packet),
(vorbis_handle_type_packet), (vorbis_handle_header_packet),
(copy_samples), (vorbis_handle_data_packet), (vorbis_dec_chain):
Don't crap out when seeking back to position 0.
Original commit message from CVS:
Plugin port to 0.9, ogg/theora playback should work in the seek
example now.
Removed old examples.
Removed old oggvorbisenc, renamed rawvorbisenc to vorbisenc as
explained in 0.9 TODO doc.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
Debug.
* sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_grab_frame):
If we got a state change in the _get handler, don't return success.
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_dec_chain):
Fix broken code generation by gcc by swapping arguments.
* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query):
Fix \n in debug.
Original commit message from CVS:
* ext/vorbis/oggvorbisenc.c
* ext/vorbis/vorbisenc.c :
change description fields of those plugins to differentiate them
(pitivi show Encoders by description, they had the same one)
Original commit message from CVS:
reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query):
No warnings (#157986).
Original commit message from CVS:
reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/vorbis/vorbisenc.c: (raw_caps_factory):
Fix weird caps (#157548).
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query),
(gst_ogg_demux_src_event), (gst_ogg_pad_populate),
(_read_bos_process), (gst_ogg_demux_iterate), (gst_ogg_pad_new):
Faster seeking.
* ext/theora/theoradec.c: (theora_dec_sink_convert):
Time-to-default conversion.
* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
Don't error on unknown packets, just skip. We should probably
read them if we want to support chained ogg.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_init),
(gst_ogg_demux_get_formats), (gst_ogg_demux_src_query),
(gst_ogg_demux_src_event), (gst_ogg_demux_src_convert),
(gst_ogg_demux_handle_event), (gst_ogg_demux_seek_before),
(_find_chain_get_unknown_part), (_find_streams_check),
(gst_ogg_demux_push), (gst_ogg_pad_push):
* ext/theora/theoradec.c: (theora_get_formats),
(theora_dec_src_convert), (theora_dec_sink_convert),
(theora_dec_src_query), (theora_dec_src_event), (theora_dec_event),
(theora_dec_chain):
* ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats),
(vorbis_dec_convert), (vorbis_dec_src_query),
(vorbis_dec_src_event), (vorbis_dec_event):
More seeking fixes, oggdemux now supports seeking to time and
uses the downstream element to convert granulepos to time.
Seeking in theora-only ogg files now works.
Original commit message from CVS:
* ext/theora/theoradec.c: (gst_theora_dec_init),
(theora_get_formats), (theora_get_event_masks),
(theora_get_query_types), (theora_dec_src_convert),
(theora_dec_sink_convert), (theora_dec_src_query),
(theora_dec_src_event), (theora_dec_event), (theora_dec_chain):
* ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats),
(vorbis_get_event_masks), (vorbis_get_query_types),
(gst_vorbis_dec_init), (vorbis_dec_convert),
(vorbis_dec_src_query), (vorbis_dec_src_event), (vorbis_dec_event):
Added query/convert/formats functions to vorbis and theora decoders
so that the outside world can use them too. Fixed seeking on an
ogg/theora/vorbis file by disabling the seeking on the
theora srcpad.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init):
use explicit caps on the srcpad
* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
properly error out if caps couldn't be set (fixes#142764)
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_dec_chain):
Initialise b_o_s and e_o_s variables
* gst-libs/gst/riff/riff-media.c:
(gst_riff_create_video_caps_with_data):
Add some unusual fourcc's from mplayer avi's
* gst/multipart/multipartmux.c: (gst_multipart_mux_plugin_init):
Make the muxer have rank GST_RANK_NONE, so it doesn't mess up
autoplugging.
Original commit message from CVS:
* ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_sinkconnect),
(gst_oggvorbisenc_setup):
properly fail when we can't setup the vorbis encoder due to
unsupported settings
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_sinkconnect),
(gst_vorbisenc_setup):
same
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link):
fix case where warnings occured when one pad was unlinked while the
other's link function was called
Original commit message from CVS:
second batch :
remove ',' at end of enums as they could confuse older gcc, foreign compilers (forte) and gtk-doc
(in gst-plugins/ext/ this time)
Original commit message from CVS:
* ext/vorbis/Makefile.am:
* ext/vorbis/README:
* ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_get_formats),
(oggvorbisenc_get_type), (vorbis_caps_factory), (raw_caps_factory),
(gst_oggvorbisenc_base_init), (gst_oggvorbisenc_class_init),
(gst_oggvorbisenc_sinkconnect), (gst_oggvorbisenc_convert_src),
(gst_oggvorbisenc_convert_sink),
(gst_oggvorbisenc_get_query_types), (gst_oggvorbisenc_src_query),
(gst_oggvorbisenc_init), (gst_oggvorbisenc_get_tag_value),
(gst_oggvorbisenc_metadata_set1), (gst_oggvorbisenc_set_metadata),
(get_constraints_string), (update_start_message),
(gst_oggvorbisenc_setup), (gst_oggvorbisenc_write_page),
(gst_oggvorbisenc_chain), (gst_oggvorbisenc_get_property),
(gst_oggvorbisenc_set_property), (gst_oggvorbisenc_change_state):
* ext/vorbis/oggvorbisenc.h:
* ext/vorbis/vorbis.c: (plugin_init):
* ext/vorbis/vorbisenc.c: (vorbis_caps_factory),
(raw_caps_factory), (gst_vorbisenc_class_init),
(gst_vorbisenc_init), (gst_vorbisenc_setup),
(gst_vorbisenc_push_packet), (gst_vorbisenc_chain),
(gst_vorbisenc_get_property), (gst_vorbisenc_set_property):
* ext/vorbis/vorbisenc.h:
Added a raw vorbis encoder to be used with the oggmuxer.
We still need the old encoder for some gnome applications,
read the README to find out how that works.
The raw encoder is called "rawvorbisenc" until 0.9.
Original commit message from CVS:
* configure.ac:
check for kdemacros.h, too (should fix#141821)
* ext/vorbis/vorbisdec.c: (vorbis_dec_event), (vorbis_dec_chain):
don't crash if no header was sent, but nicely error out (fixes part
of #141554)
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssink.c:
(_gst_boolean_allow_overwrite_accumulator),
(gst_gnomevfssink_class_init):
fix erase signal - if any handler returns false the file will not be
overwritten. If no handler is connected, the file will not be
overwritten either.
renamed signal to "allow-overwrite"
* ext/mad/gstid3tag.c: (tag_list_to_id3_tag_foreach):
free string when adding it to ID3 failed
* ext/vorbis/vorbisdec.c: (vorbis_dec_event):
unref event when done
* gst/audioconvert/gstaudioconvert.c: (_fixate_caps_to_int):
free caps
* gst/typefind/gsttypefindfunctions.c:
(mpeg_video_stream_type_find):
fix invalid read
Original commit message from CVS:
2004-02-19 Benjamin Otte <otte@gnome.org>
* ext/lame/gstlame.c: (gst_lame_chain):
* ext/vorbis/vorbisenc.c: (gst_vorbisenc_chain):
use gst_tag_list_insert when you want to insert tags
Original commit message from CVS:
2004-01-31 Benjamin Otte <in7y118@public.uni-hamburg.de>
* ext/alsa/gstalsa.c: (gst_alsa_change_state), (gst_alsa_start),
(gst_alsa_drain_audio), (gst_alsa_stop_audio):
really start/stop clock only on PLAYING <=> PAUSED
* ext/alsa/gstalsasink.c: (gst_alsa_sink_loop):
remove \n from debugging lines
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain):
make it work when seeking does not
* ext/vorbis/vorbisdec.c: (vorbis_dec_event):
reset on DISCONT
Original commit message from CVS:
2004-01-31 Benjamin Otte <in7y118@public.uni-hamburg.de>
* ext/alsa/gstalsa.c: (gst_alsa_change_state), (gst_alsa_start):
start clock on PAUSED=>PLAYING, not later
* ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event):
extract correct time for different discont formats
(gst_alsa_sink_get_time):
don't segfault when no format is negotiated yet, just return 0
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event),
(gst_ogg_demux_handle_event), (gst_ogg_demux_push),
(gst_ogg_pad_push):
handle flush and discont events correctly
* ext/vorbis/vorbisdec.c: (vorbis_dec_event), (vorbis_dec_chain):
handle discont events correctly
Original commit message from CVS:
2004-01-31 Benjamin Otte <in7y118@public.uni-hamburg.de>
* ext/theora/theoradec.c: (theora_dec_chain):
make comments work
* ext/vorbis/vorbisdec.c: (vorbis_dec_src_query),
(vorbis_dec_src_event), (vorbis_dec_chain):
add encoder tag, fix tag reading to be more error tolerant, change
BITRATE to NOMINAL_BITRATE, add debugging, don't unref events after
gst_pad_event_default.
* gst/tags/gstvorbistag.c:
(gst_tag_list_from_vorbiscomment_buffer):
undefine function specific define at end of function
Original commit message from CVS:
2004-01-30 Benjamin Otte <in7y118@public.uni-hamburg.de>
* configure.ac:
use AC_C_INLINE
* configure.ac:
* ext/Makefile.am:
* ext/theora/Makefile.am:
* ext/theora/theoradec.c:
add theora video decoder. Does just do simple decoding for now and
has been tested against Theora cvs only.
* ext/vorbis/vorbisdec.c: (vorbis_dec_event):
always reset packetno on DISCONT
Original commit message from CVS:
2004-01-30 Benjamin Otte <in7y118@public.uni-hamburg.de>
* ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps):
removee video/x-theora from vp3 decoder, it doesn't handle raw
theora streams
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_init):
fix bug with finalizing element that never went to PAUSED
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query):
length and position queries were swapped
* ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init),
(vorbis_dec_from_granulepos), (vorbis_dec_src_query),
(vorbis_dec_src_event):
implement querying time and bytes
Original commit message from CVS:
2004-01-29 Benjamin Otte <in7y118@public.uni-hamburg.de>
* ext/ogg/gstoggdemux.c:
lots of changes - mainly support for chained bitstreams, seeking,
querying and bugfixes of course
* ext/vorbis/Makefile.am:
* ext/vorbis/vorbisdec.c:
* ext/vorbis/vorbisdec.h:
add vorbisdec raw vorbis decoder
* ext/vorbis/vorbis.c: (plugin_init):
register vorbisdec as PRIMARY, vorbisfile as SECONDARY
* gst/intfloat/Makefile.am:
* gst/intfloat/float22int.c:
* gst/intfloat/float22int.h:
* gst/intfloat/gstintfloatconvert.c: (plugin_init):
add float2intnew plugin. It converts multichannel interleaved float to
multichannel interleaved int. The name should probably be changed.
* gst/typefind/gsttypefindfunctions.c: (theora_type_find),
(plugin_init):
add typefinding for raw theora video so oggdemux can detect it.
Original commit message from CVS:
tagging stuff and build fixes. In detail:
- make gdk-pixbuf loader work when distchecking
- fix invalid syntax in ffmpeg Makefile. wildcards for EXTRA_DIST are not allowed. This broke builds where distdir != srcdir
- fix ffmpeg cvs grabbing when srcdir != distdir
- new id3tag plugin for id3 tag reading/writing (uses mad's libid3tag)
- mad and libid3tag require mad/libid3tag v0.15. Fixed configure to require that
- added ogg demuxer in ext/ogg. The demuxer does not handle events yet. Especially getting seeking right will require some effort or code copying from libvorbis.
- added raw vorbis detection to typefinding. oggdemux requires a typefind function to detect its contents.
- tags plugin in gst/tags. Provides API in <gst/tags/gsttagediting.h>. API includes tag matching GStreamer <=> ID3 and GStreamer <=> vorbis and writing/reading vorbiscomments or ID3v1 tags. Also included is a simple vorbiscomment reader/writer. Writing will not really work though until someone writes oggmux.
- various build fixes. Mostly missing (DIST)CLEANFILES.
- vorbisenc handles tag writing.
Now it's YOUR turn to fix and write more plugins that handle writing/reading of tags. :)
Original commit message from CVS:
Remove all config.h includes from header files, add it to each source file and remove duplicate config.h includes from several source files
Original commit message from CVS:
merge TYPEFIND branch. Major changes:
- totally reworked type(find) system
- all typefind functions are in gst/typefind now
- more typefind functions then before
- some plugins might fail to compile now because I don't have them installed and they
a) require bytestream or
b) haven't had their typefind fixed.
Please fix those plugins and put the typefind functions into gst/typefind if they don't have dependencies
Original commit message from CVS:
New typefind system:
* bytestream is now part of the core
* all plugins have been modified to use this new typefind system
* asf typefinding added
* mpeg video stream typefiding removed because it's broken
* duplicate typefind entries removed
* extra id3 typefinding added, because we've seen 4 types of files
(riff/wav, flac, vorbis, mp3) with id3 headers and each of these needs
to work. Instead, I've added an id3 element and let it redo typefiding
after the id3 header. this needs a hack because spider only typefinds
once. We can remove this hack once spider supports multiple typefinds.
* with all this, mp3 typefinding is semi-rewritten
* id3 typefinding in flac/vorbis is removed, it's no longer needed
* fixed spider and gst-typefind to use this, too.
* Other general cleanups
Original commit message from CVS:
New mimetypes gone into effect today - this commit changes all old mimetypes over to the new mimetypes spec as described in the previous commit's document. Note: some plugins will break, some pipelines will break, expect HEAD to be broken or at least not 100% working for a few days, but don't forget to report bugs
Original commit message from CVS:
compatibility fix for new GST_DEBUG stuff.
Includes fixes for missing includes for config.h and unistd.h
I only ensured for plugins I can build that they work, so if some of them are still broken, you gotta fix them yourselves unfortunately.
Original commit message from CVS:
another batch of connect->link fixes
please let me know about issues
and please refrain of making them yourself, so that I don't spend double
the time resolving conflicts
Original commit message from CVS:
this patch implements metadata the wtay way.
some other stuff I still need to clean up to make it work well.
test it with
gst-launch filesrc location=... ! vorbisfile
Original commit message from CVS:
- Implement queries and convert functions for vorbisenc + lots of
cleanups/improvements
- catch negotiation errors in vorbisfile