Original commit message from CVS:
Based on a patch by: Sonicadvance1 at GMAIL dot COM
* ext/timidity/gstwildmidi.c: (gst_wildmidi_init),
(gst_wildmidi_change_state), (plugin_init):
* ext/timidity/gstwildmidi.h:
Initialize wildmidi only once in the plugin init function instead
of once for every instance. The second and following calls to the
wildmidi initialization function will fail. Fixes bug #525613.
Also don't register the element at all if wildmidi initialization
fails.
Original commit message from CVS:
* examples/app/Makefile.am:
* examples/app/appsrc-ra.c: (feed_data), (seek_data),
(found_source), (bus_message), (main):
* examples/app/appsrc-seekable.c: (feed_data), (seek_data),
(found_source), (bus_message), (main):
* examples/app/appsrc-stream2.c: (feed_data), (found_source),
(bus_message), (main):
Added 3 more example application for using appsrc in random-access mode,
pull-mode streaming and pull mode seekable.
* gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
(gst_app_src_start), (gst_app_src_do_get_size),
(gst_app_src_create):
* gst-libs/gst/app/gstappsrc.h:
Make stream-type property writable.
Unset flushing when starting so that we reuse appsrc.
Inform basesrc about the configured size.
Emit seek-data signal when we are going to a different offset in
random-access mode.
Original commit message from CVS:
* examples/app/appsrc-stream.c: (found_source), (main):
Use deep-notify until we can depend on a playbin2 with support for the
source property.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_init),
(gst_rtp_bin_finalize), (gst_rtp_bin_change_state):
Fix deadlock when shutting down, use a new lock instead to properly
shutdown.
Original commit message from CVS:
* examples/app/.cvsignore:
* examples/app/Makefile.am:
* examples/app/appsrc-stream.c: (read_data), (start_feed),
(stop_feed), (found_source), (bus_message), (main):
Added an example on how to use appsrc in playbin in streaming mode from
an mmapped file.
* examples/app/appsrc_ex.c: (main):
Set pipeline to NULL to free queued buffers.
* gst-libs/gst/app/gstapp-marshal.list:
* gst-libs/gst/app/gstappsrc.c: (stream_type_get_type), (_do_init),
(gst_app_src_class_init), (gst_app_src_init),
(gst_app_src_flush_queued), (gst_app_src_dispose),
(gst_app_src_set_property), (gst_app_src_get_property),
(gst_app_src_unlock), (gst_app_src_unlock_stop),
(gst_app_src_start), (gst_app_src_stop), (gst_app_src_is_seekable),
(gst_app_src_check_get_range), (gst_app_src_do_seek),
(gst_app_src_create), (gst_app_src_set_stream_type),
(gst_app_src_get_stream_type), (gst_app_src_set_max_bytes),
(gst_app_src_get_max_bytes), (gst_app_src_push_buffer),
(gst_app_src_end_of_stream), (gst_app_src_uri_get_type),
(gst_app_src_uri_get_protocols), (gst_app_src_uri_get_uri),
(gst_app_src_uri_set_uri), (gst_app_src_uri_handler_init):
* gst-libs/gst/app/gstappsrc.h:
Measure max queue size in bytes instead.
Add support for 3 modes of operation, streaming, seekable and
random-access, making basesrc handle the scheduling modes for each.
Add appsrc:// uri handler so that automatic plugging can be done from
playbin2 or uridecodebin, for example.
Added support for custom segment formats.
Add support for push and pull based operations from the application.
Expand the methods so that errors can be detected.
Flush the queued buffers on seeks and when shutting down.
Add signals to inform the app that a seek must happen.
Original commit message from CVS:
* gst/interleave/deinterleave.c: (gst_deinterleave_add_new_pads),
(gst_deinterleave_src_query):
* gst/interleave/interleave.c: (gst_interleave_src_query_duration),
(gst_interleave_src_query):
Properly implement duration and position queries in bytes format. We
have to take the upstream reply and divide/multiply it by the number
of channels to get the correct result.
Original commit message from CVS:
* sys/dshowvideosink/dshowvideofakesrc.cpp:
* sys/dshowvideosink/dshowvideofakesrc.h:
* sys/dshowvideosink/dshowvideosink.cpp:
* sys/dshowvideosink/dshowvideosink.h:
Fix up copyright notice on new plugin.
Original commit message from CVS:
* ext/x264/gstx264enc.c: (gst_x264_enc_header_buf),
(gst_x264_enc_sink_event), (gst_x264_enc_chain),
(gst_x264_enc_encode_frame):
Try harder not to crash when we get an EOS event but haven't set
up the encoder yet (as may happen when upstream errors out with
not-negotiated, for example). Also, always push the EOS event
downstream.
Original commit message from CVS:
* gst/interleave/interleave.c: (gst_interleave_pad_get_type),
(gst_interleave_pad_get_property), (gst_interleave_pad_class_init),
(gst_interleave_request_new_pad), (gst_interleave_release_pad):
* gst/interleave/interleave.h:
Use an always increasing integer for the number in the name of the
requested sink pads to guarantuee a unique name. Add a "channel"
property to GstInterleavePad to make it possible for applications
to retrieve the channel number in the output for every pad.
Use g_type_register_static_simple() instead of
g_type_register_static() to save some relocations.
Original commit message from CVS:
* gst/interleave/interleave.c: (gst_interleave_pad_get_type),
(gst_interleave_change_state):
Stop GstCollectPads before calling the parent's state change function
when going from PAUSED to READY as we otherwise deadlock.
Fixes bug #536258.
Original commit message from CVS:
* gst/h264parse/gsth264parse.c: (gst_nal_bs_init),
(gst_h264_parse_sink_setcaps), (gst_h264_parse_chain_forward),
(gst_h264_parse_queue_buffer), (gst_h264_parse_chain_reverse),
(gst_h264_parse_chain):
* gst/h264parse/gsth264parse.h:
Parse codec_data and use the nalu_size_length field to get the NALU
length in packetized h264.
When queueing a packetized buffer in reverse mode, don't unref the
buffer twice.
Avoid accessing the buffer TIMESTAMP field after we pushed it on
the adaptor.
Original commit message from CVS:
* gst/interleave/interleave.c:
(gst_interleave_check_channel_positions),
(gst_interleave_set_channel_positions),
(gst_interleave_class_init):
Use new gst_audio_check_channel_positions() function and register
the GstInterleavePad type from a threadsafe context.
Original commit message from CVS:
* configure.ac:
* sys/Makefile.am:
* sys/dshowvideosink/Makefile.am:
* sys/dshowvideosink/README:
* sys/dshowvideosink/dshowvideofakesrc.cpp:
* sys/dshowvideosink/dshowvideofakesrc.h:
* sys/dshowvideosink/dshowvideosink.cpp:
* sys/dshowvideosink/dshowvideosink.h:
Add a new win32 videosink. Uses the DirectShow renderers for
high-performance video rendering on win32.
Currently only supports some YUV formats.
Rank PRIMARY, since it's much more useful for the common cases that the
directdraw sink (which only does RGB).
Original commit message from CVS:
* gst/interleave/interleave.c: (gst_interleave_pad_get_type),
(gst_interleave_finalize), (gst_audio_check_channel_positions),
(gst_interleave_set_channel_positions),
(gst_interleave_class_init), (gst_interleave_init),
(gst_interleave_set_property), (gst_interleave_get_property),
(gst_interleave_request_new_pad), (gst_interleave_release_pad),
(gst_interleave_sink_setcaps), (gst_interleave_src_query_duration),
(gst_interleave_src_query_latency), (gst_interleave_collected):
* gst/interleave/interleave.h:
Allow setting channel positions via a property and allow using the
channel positions on the input as the channel positions of the output.
Fix some broken logic and memory leaks.
* tests/check/Makefile.am:
* tests/check/elements/interleave.c: (src_handoff_float32),
(sink_handoff_float32), (GST_START_TEST), (interleave_suite):
Add unit tests for checking correct handling of channel positions.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_dispose), (clear_queued),
(flush_queued), (gst_faad_drain), (gst_faad_do_raw_seek),
(gst_faad_src_event), (gst_faad_sink_event), (gst_faad_chain),
(gst_faad_change_state):
* ext/faad/gstfaad.h:
Add basic reverse playback support.
Clear decoder state after disconts.
Remove some unused code.
Mark output buffers with a discont after a decoding error.
Original commit message from CVS:
Based on patch by: <onkarshinde at gmail dot com>
* sys/vcd/vcdsrc.c: (gst_vcdsrc_uri_get_uri),
(gst_vcdsrc_uri_set_uri):
Allow the track to be set by using the uri. Fixes#535043.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c:
(gst_rtp_bin_propagate_property_to_jitterbuffer),
(gst_rtp_bin_change_state), (new_payload_found),
(new_ssrc_pad_found):
Break out of callbacks when we are shutting down.
Make sure no state changes can happen when we reconfigure.
Original commit message from CVS:
* configure.ac:
Require CVS core and base for new audio clock reset method.
* ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_change_state):
Reset the audio clock. See #521761.
Original commit message from CVS:
* ext/jack/gstjackaudiosink.c:
(gst_jack_audio_sink_allocate_channels):
Include the element name in the port name to avoid duplicate port names.
Original commit message from CVS:
* gst/interleave/deinterleave.c:
Add another example launch line.
* gst/interleave/interleave.c: (interleave_24),
(gst_interleave_finalize), (gst_interleave_base_init),
(gst_interleave_class_init), (gst_interleave_init),
(gst_interleave_request_new_pad), (gst_interleave_release_pad),
(gst_interleave_change_state), (__remove_channels),
(__set_channels), (gst_interleave_sink_getcaps),
(gst_interleave_set_process_function),
(gst_interleave_sink_setcaps), (gst_interleave_sink_event),
(gst_interleave_src_query_duration), (gst_interleave_src_query),
(forward_event_func), (forward_event), (gst_interleave_src_event),
(gst_interleave_collected):
* gst/interleave/interleave.h:
Major rewrite of interleave using GstCollectpads. This new version
also supports almost all raw audio formats and has better caps
negotiation. Fixes bug #506594.
Also update docs and add some more examples.
* tests/check/elements/interleave.c: (interleave_chain_func),
(GST_START_TEST), (src_handoff_float32), (sink_handoff_float32),
(interleave_suite):
Add some more extensive unit tests for interleave.
Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop):
When checking the seqnum, reset the jitterbuffer if the gap is too big,
we need to do this so that we can better handle a restarted source.
Fix some comments.
* gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew),
(rtp_jitter_buffer_insert):
Tweak the skew resync diff.
Use our working seqnum compare function in -base.
Rework the jitterbuffer insert code to make it clearer and more
performant by only retrieving the seqnum of the input buffer once and by
adding some G_LIKELY compiler hints.
Improve debugging for duplicate packets.
* gst/rtpmanager/rtpsource.c: (rtp_source_process_rtp):
Fix a comment, we don't do skew correction here..
Original commit message from CVS:
Patch by: Håvard Graff <havard dot graff at tandberg dot com>
* gst/rtpmanager/gstrtpbin.c:
(gst_rtp_bin_propagate_property_to_jitterbuffer),
(gst_rtp_bin_set_property):
Propagate the do-lost and latency properties to the jitterbuffers when
they are changed on rtpbin.
Original commit message from CVS:
* gst/interleave/deinterleave.c: (gst_deinterleave_base_init),
(gst_deinterleave_class_init), (gst_deinterleave_init),
(gst_deinterleave_add_new_pads), (gst_deinterleave_sink_getcaps):
* gst/interleave/deinterleave.h:
Don't set a getcaps() function on the src pads as it's not required
and the default getcaps() function returns the correct results for
our src pads.
Complete documentation and add myself to the authors of the element.
Original commit message from CVS:
* tests/icles/.cvsignore:
* tests/icles/Makefile.am:
* tests/icles/test-oss4.c: (opt_show_mixer_messages), (WAIT_TIME),
(show_mixer_messages), (probe_mixer_tracks), (probe_pad),
(probe_details), (probe_element), (main):
Small oss4 test that probes for available devices and retrieves
their caps and mixer tracks and all that. Also allows testing of
mixer change messages on the bus.
Original commit message from CVS:
* sys/oss4/oss4-mixer.c: (gst_oss4_mixer_open):
* sys/oss4/oss4-property-probe.c:
(gst_oss4_property_probe_find_device_name),
(gst_oss4_property_probe_find_device_name_nofd):
* sys/oss4/oss4-property-probe.h:
* sys/oss4/oss4-sink.c: (gst_oss4_sink_get_property):
* sys/oss4/oss4-source.c: (gst_oss4_source_get_property):
Make device-name probing in NULL state work better (e.g. for the
gnome-control-center sound capplet).
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* gst/mpeg4videoparse/mpeg4videoparse.c: (gst_mpeg4vparse_push),
(gst_mpeg4vparse_drain), (gst_mpeg4vparse_chain),
(gst_mpeg4vparse_change_state):
Move some code around to integrate the startcode searching with the
other bits of parsing, avoid a whole bunch of peeks.
Get rid of invalid data that should not happen according to the specs.
Fixes#533559.
Original commit message from CVS:
Patch by: Bastien Nocera <hadess at hadess dot net>
* ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_class_init),
(gst_mythtv_src_init), (gst_mythtv_src_clear),
(do_read_request_response), (gst_mythtv_src_create),
(gst_mythtv_src_start):
Correctly set duration to get a more correct seek bar in totem.
Disable query and event functions as they don't work and do some
smaller cleanup.
Fixes bug #533736.
Original commit message from CVS:
* tests/check/elements/deinterleave.c: (GST_START_TEST):
Set keep-positions property to TRUE for the 8 channel test to ensure
that the original channel position is set on the output.
Original commit message from CVS:
* gst/interleave/deinterleave.c: (gst_deinterleave_class_init),
(gst_deinterleave_init), (gst_deinterleave_add_new_pads),
(gst_deinterleave_set_pads_caps), (gst_deinterleave_set_property),
(gst_deinterleave_get_property):
* gst/interleave/deinterleave.h:
Add a property to select whether channel positions should be kept on
the mono output buffers or should be dropped.
Original commit message from CVS:
* gst/interleave/deinterleave.c: (gst_deinterleave_finalize),
(gst_deinterleave_init), (gst_deinterleave_sink_event),
(gst_deinterleave_process), (gst_deinterleave_sink_activate_push):
* gst/interleave/deinterleave.h:
Queue events until src pads were added and they can be sent. Otherwise
downstream will never get the first newsegment event.
Original commit message from CVS:
* gst/interleave/deinterleave.c: (gst_deinterleave_sink_setcaps),
(gst_deinterleave_getcaps):
Always set the channel positions when gst_audio_get_channel_positions()
returns something, even if they're not set in the caps. This makes
sure that the output channels can be interleaved again correctly
in the mono/stereo cases too.
Don't ask for the peercaps of the current pad in getcaps() as this
might call getcaps() again and deadlock.
Original commit message from CVS:
* ext/timidity/gstwildmidi.c: (wildmidi_open_config):
Check some more common locations for a valid configuration file.
Fixes bug #533435. Packagers should still #define WILDMIDI_CFG
to the distributions default location.