Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_activate_chain),
(gst_ogg_demux_read_chain), (gst_ogg_demux_handle_page):
The new-pad-group sequence is add-pads, no-more-pads, add-pads,
no-more-pads...
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_bisect_forward_serialno),
(gst_ogg_demux_read_chain):
If we find a new serial number but it does not contain a BOS page, make
sure we initialize the chain to NULL because else we will try to scan it
and crash. Fixes#500763
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_read_chain),
(gst_ogg_demux_collect_chain_info):
Also submit the eos page when trying to find the first timestamp.
See #466717.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_find_chains):
The chain should be freed if we error out here, else it will leak.
* gst/playback/gstdecodebin.c: (disconnect_unlinked_signals),
(cleanup_decodebin):
Don't forget to *properly* remove the signals, else it will leak.
Original commit message from CVS:
* tests/check/pipelines/oggmux.c: (validate_ogg_page), (is_video),
(eos_buffer_probe):
Add a test that ensures we set DELTA_UNIT on all non-header,
non-video buffers, if we have a video stream.
* ext/ogg/gstoggmux.c: (gst_ogg_mux_queue_pads),
(gst_ogg_mux_process_best_pad):
Move setting delta_pad to earlier, where we inspect all pads, so
that leading audio pages don't get DELTA_UNIT unset if they come
before the first DELTA_UNIT from video pages. Fixes the newly-added
test. Fixes#385527.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
(gst_ogg_demux_perform_seek), (gst_ogg_demux_read_chain):
Fix compilation on mingw. Fixes#446972.
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (gst_ogg_mux_send_headers):
The BOS page of the first Dirac video stream needs to come before
the BOS page of any Vorbis streams or other audio streams, just like
it is with Theora.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_parse_skeleton_fisbone),
(gst_ogg_pad_submit_packet), (gst_ogg_demux_perform_seek),
(gst_ogg_demux_read_chain), (gst_ogg_demux_collect_chain_info):
consideratly speedup ogg chain detection by not trying to find a base
timestamp for skeleton streams.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
(gst_ogg_demux_perform_seek), (gst_ogg_demux_handle_page):
Some more chained streaming ogg timestamp fixes.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
(gst_ogg_demux_activate_chain), (gst_ogg_demux_perform_seek),
(gst_ogg_demux_handle_page):
Add some FIXMEs.
Fix chain start/stop segment handling based on patch by
<ahalda at cs dot mcgill dot ca> see #320984.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_packet),
(gst_ogg_demux_collect_chain_info):
If there is a stream in a chain without any data packets, ignore the
stream in the total length calculations. Might be related to #436820.
Original commit message from CVS:
reviewed by: Wim Taymans <wim@fluendo.com>
* ext/ogg/gstoggmux.c: (gst_ogg_mux_ogg_pad_destroy_notify),
(gst_ogg_mux_request_new_pad), (gst_ogg_mux_release_pad):
Use newly added GstCollectPads API to free the allocated resources in
the GstOggPad structures (#402393).
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_submit_buffer),
(gst_ogg_demux_get_data), (gst_ogg_demux_get_next_page),
(gst_ogg_demux_get_prev_page), (gst_ogg_demux_do_seek),
(gst_ogg_demux_perform_seek),
(gst_ogg_demux_bisect_forward_serialno),
(gst_ogg_demux_read_chain), (gst_ogg_demux_read_end_chain),
(gst_ogg_demux_find_chains), (gst_ogg_demux_handle_page),
(gst_ogg_demux_chain), (gst_ogg_demux_combine_flows),
(gst_ogg_demux_loop_reverse), (gst_ogg_demux_loop):
* ext/ogg/gstoggdemux.h:
Properly propagate streaming errors when we are scanning the file for
chains so that we don't crash when shut down. Might fix some crashers
when quickly switching oggs in RB such as #332503 and #378436.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_read_chain):
Error out properly if we get an error from libogg while reading the
BOS page(s). Fixes crash parsing 'fuzzed' ogg file (#399340).
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (all_pads_eos), (gst_ogg_mux_collected):
Fix the cases where oggmux doesn't properly figure out that all
sinkpads have gone EOS, and therefore doesn't push out the remaining
buffers and the final EOS event.
Fixes#363379
Original commit message from CVS:
* ext/ogg/Makefile.am:
Dist gstoggdemux.h to fix 'make distcheck'.
* sys/v4l/Makefile.am:
Fix 'make distcheck' even more.
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/ogg/gstogmparse.c: (gst_ogm_parse_stream_header),
(gst_ogm_parse_change_state):
Activate pads before adding them to the element.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_page_copy), (gst_ogg_page_free),
(gst_ogg_pad_init), (gst_ogg_pad_dispose), (gst_ogg_pad_reset),
(gst_ogg_pad_stream_out), (gst_ogg_pad_submit_page),
(gst_ogg_chain_reset), (gst_ogg_demux_perform_seek):
Some cleanups.
Handle continued pages in reverse mode.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_page),
(gst_ogg_demux_chain):
Don't just ignore return values from _pad_push().
Small debug improvements.
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (gst_ogg_mux_process_best_pad):
If our incoming buffer is marked as DISCONT, then increment the page
number (so that the discontinuity is marked in the final ogg
bitstream) and flush the previous page.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_submit_page):
Improve a debug line slightly.
* ext/ogg/gstogmparse.c: (gst_ogm_parse_plugin_init):
Call gst_riff_init() in plugin_init, to avoid getting errors from
the debug system (unrelated changes to another plugin made this turn
up; not sure why).
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet dot be>
* ext/ogg/gstoggmux.c: (gst_ogg_mux_release_pad):
Remove the pad from the element in release_pad.
Original commit message from CVS:
* ext/ogg/gstoggparse.c: (gst_ogg_parse_dispose),
(gst_ogg_parse_append_header), (gst_ogg_parse_chain):
Set caps on pushed buffers; fix up refcounting of caps objects.
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (gst_ogg_mux_request_new_pad),
(gst_ogg_mux_release_pad), (gst_ogg_mux_push_buffer),
(gst_ogg_mux_compare_pads), (gst_ogg_mux_queue_pads),
(gst_ogg_mux_send_headers), (gst_ogg_mux_process_best_pad),
(gst_ogg_mux_collected):
Commit patch from James "Doc" Livingston, adds proper EOS handling
in oggmux. GStreamer can, for the first time ever, create a valid
Ogg file! Yay!
* tests/check/pipelines/oggmux.c: (check_chain_final_state),
(oggmux_suite):
Reenable tests now that they pass.
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (gst_ogg_mux_push_buffer):
Timestamps are unsigned; comparision against GST_CLOCK_TIME_NONE was
always true, leading to dropping all timestamps.
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (gst_ogg_mux_clear),
(gst_ogg_mux_push_buffer):
Don't generate out-of-order timestamps from oggmux, instead clamp
output timestamps to be >= the previously output ts.
Fixes#355595
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssrc.c:
Add docs about icydemux usage in connection with gnomevfssrc
* ext/libvisual/visual.c:
* ext/ogg/gstoggaviparse.c:
* ext/ogg/gstoggdemux.c:
* ext/ogg/gstoggmux.c:
* ext/ogg/gstoggparse.c:
* gst-libs/gst/audio/gstaudiofiltertemplate.c:
* gst-libs/gst/audio/gstaudiosink.c:
* gst-libs/gst/audio/gstaudiosrc.c:
* gst/audiorate/gstaudiorate.c:
More G_OBJECT macro fixing.
* gst/audiotestsrc/gstaudiotestsrc.h:
Fix wrong info in header due to copy & paste
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_init),
(gst_ogg_demux_finalize), (gst_ogg_demux_perform_seek),
(gst_ogg_demux_loop):
Send the GST_EVENT_NEW_SEGMENT from the streaming thread.
Original commit message from CVS:
* ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_base_init),
(gst_ogm_video_parse_base_init), (gst_ogm_text_parse_base_init),
(gst_ogm_parse_class_init), (gst_ogm_parse_dispose),
(gst_ogm_parse_init), (gst_ogm_audio_parse_init),
(gst_ogm_video_parse_init), (gst_ogm_text_parse_init),
(gst_ogm_parse_stream_header), (gst_ogm_parse_comment_packet),
(gst_ogm_text_parse_strip_trailing_zeroes),
(gst_ogm_parse_data_packet), (gst_ogm_parse_chain),
(gst_ogm_parse_sink_event), (gst_ogm_parse_change_state):
Refactor ogm parse, do better input checking, misc. clean-ups.
Cache incoming events and push them once the source pad has
been created. Don't pass unterminated strings to sscanf().
Strip trailing zeroes from subtitle text output, since they
are not valid UTF-8. Don't push vorbiscomment packets on
the subtitle text pad. Output perfect streams if possible.
Original commit message from CVS:
* ext/ogg/gstogmparse.c: (gst_ogm_parse_chain):
Fix crash due to broken bitstream parsing on x86-64: can't make
any assumptions about sizeof(struct) due to alignment/packing
differences on different architectures. Fixes#351790.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_submit_buffer),
(gst_ogg_demux_get_next_page), (gst_ogg_demux_perform_seek),
(gst_ogg_demux_read_chain), (gst_ogg_demux_loop):
Add some more debug info.
Don't crash when a seek failed.
Actually return the result of the seek instead of TRUE.
Ignore multiple BOS pages with the same serial so that we don't create
the same stream multiple times.
Post an error when we fail to do the initial seek.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_src_query):
Implement SEEKING query in its most basic form, so that we can
at least check if we're seekable or not (#350655).
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_internal_chain),
(gst_ogg_demux_do_seek), (gst_ogg_demux_read_chain):
Make seeking in ogg more accurate again by doing the more correct
granuletime to stream time conversion.