Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send_keep_alive),
(gst_rtspsrc_loop_udp), (gst_rtspsrc_try_send), (gst_rtspsrc_send),
(gst_rtspsrc_setup_streams), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause),
(gst_rtspsrc_change_state):
Let more error state trickle down so that we can catch more error
cases.
Handle keep-alive a little smarter by selecting a method the server
actually supports.
Fix a race in UDP streaming shutdown.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_handle_src_event),
(gst_rtspsrc_handle_src_query), (gst_rtspsrc_sink_chain),
(gst_rtspsrc_stream_configure_manager),
(gst_rtspsrc_stream_free_udp), (gst_rtspsrc_stream_configure_tcp),
(gst_rtspsrc_stream_configure_mcast),
(gst_rtspsrc_stream_configure_udp),
(gst_rtspsrc_stream_configure_udp_sink),
(gst_rtspsrc_stream_configure_transport):
Send RTCP messages back to the server over the TCP connection.
* gst/rtsp/rtspconnection.c: (rtsp_connection_write),
(rtsp_connection_send), (rtsp_connection_read), (read_body),
(rtsp_connection_receive):
* gst/rtsp/rtspconnection.h:
Factor out and expose lowlevel _write and _read methods.
Implement sending data messages to the server.
Original commit message from CVS:
* gst/multipart/multipartmux.c: (gst_multipart_mux_queue_pads),
(gst_multipart_mux_collected):
Fix timestamps on outgoing buffers.
Original commit message from CVS:
* gst/multipart/multipartmux.c:
(gst_multipart_mux_request_new_pad), (gst_multipart_mux_collected),
(gst_multipart_mux_change_state):
Emit NEWSEGMENT events before pushing the first buffer.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_finalize),
(gst_rtspsrc_alloc_udp_ports), (gst_rtspsrc_handle_src_event),
(gst_rtspsrc_handle_src_query),
(gst_rtspsrc_stream_configure_manager),
(gst_rtspsrc_stream_free_udp), (gst_rtspsrc_stream_configure_tcp),
(gst_rtspsrc_stream_configure_mcast),
(gst_rtspsrc_stream_configure_udp),
(gst_rtspsrc_stream_configure_udp_sink),
(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_push_event),
(gst_rtspsrc_loop_udp), (gst_rtspsrc_open),
(gst_rtspsrc_parse_rtpinfo), (gst_rtspsrc_play),
(gst_rtspsrc_pause):
Refactor transport configuration code.
Create internal pads for TCP transport so that we can implement events
and queries.
Handle events and queries.
Parse range from the SDP.
Fix race in pause handler where the connection could still be flushing.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
(gst_rtspsrc_finalize), (new_session_pad), (request_pt_map),
(gst_rtspsrc_loop_send_cmd), (gst_rtspsrc_try_send),
(gst_rtspsrc_send), (gst_rtspsrc_async_open), (gst_rtspsrc_close),
(gst_rtspsrc_play), (gst_rtspsrc_handle_message),
(gst_rtspsrc_change_state):
* gst/rtsp/gstrtspsrc.h:
Fix race when multiple udp sources post timeouts, just act on the first
received timeout.
Protect stream list with a recursive lock to fix some races.
Flush connection when we need to do a reconnect or stop.
Make state lock recursive.
* gst/rtsp/rtspconnection.c: (rtsp_connection_connect),
(rtsp_connection_close):
Some small cleanups.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek),
(gst_wavparse_stream_headers), (gst_wavparse_stream_data):
Only set DISCONT when there actually is a discont or when we just
started.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek),
(gst_wavparse_stream_headers), (gst_wavparse_add_src_pad),
(gst_wavparse_stream_data):
* gst/wavparse/gstwavparse.h:
Be a bit more clever when dealing with VBR files with FACT tags, we
don't want to timestamp buffers in that case but the estimated BPS can
be used for seeking.
Only send close segment in the streaming thread.
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_dec_loop):
Correctly post an error on the bus if something went wrong in the loop
function. This fixes a few cases where the task was paused and nothing
happened anymore.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_init),
(gst_rtspsrc_finalize), (gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_handle_request), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_send_keep_alive), (gst_rtspsrc_loop_udp),
(gst_rtspsrc_loop_send_cmd), (gst_rtspsrc_try_send),
(gst_rtspsrc_open), (gst_rtspsrc_handle_message):
* gst/rtsp/gstrtspsrc.h:
Fix sending RTCP to the right place.
Fix bug in reffing the wrong UDP element.
Use new pad names for the session manager.
Implement handling server requests in interleaved and UDP modes.
Handle session keep-alive in UDP modes.
Remove GCond for handling UDP timeouts.
* gst/rtsp/rtspconnection.c: (rtsp_connection_connect),
(rtsp_connection_send), (rtsp_connection_read), (read_body),
(rtsp_connection_receive), (rtsp_connection_close):
* gst/rtsp/rtspconnection.h:
Store connection IP address for later.
Add timeout args to all operations that might block forever.
Parse session timeout.
Only close sockets when not already closed.
* gst/rtsp/rtspdefs.c:
* gst/rtsp/rtspdefs.h:
Add timeout return value and error string.
* gst/rtsp/rtspmessage.c: (rtsp_message_init_response):
Add small comment.
Original commit message from CVS:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
Remove v4l2src from docs, since it breaks the docs build, and the
plugin is only built if --enable-experimental is used anyway.
* docs/plugins/Makefile.am:
Spaces => tab.
Original commit message from CVS:
* gst/udp/gstmultiudpsink.c: (leave_multicast),
(gst_multiudpsink_add), (gst_multiudpsink_remove):
Add code to drop membership of a multicast group.
* gst/udp/gstudpsink.c: (gst_udpsink_update_uri),
(gst_udpsink_set_uri):
Implement URI handler.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_parse_rtpinfo):
Use URI handler to make udpsink instace.
Improve code to configure port and destination.
Original commit message from CVS:
* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_add):
Fix multicast detection.
Don't try to join a multicast group if the address is not multicast.
* gst/udp/gstudpsrc.c: (gst_udpsrc_update_uri):
Small debug improvement.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_parse_rtpinfo), (gst_rtspsrc_play),
(gst_rtspsrc_handle_message):
Ignore ASYNC state messages from the udpsink, it's irrelevant for the
parent.
Original commit message from CVS:
* gst/udp/gstudpsrc.c: (gst_udpsrc_create):
Handle the case where there are exactly 0 bytes to read and the ioctl
did not report an error. Fixes#433530.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek),
(gst_wavparse_stream_headers), (gst_wavparse_stream_data):
* gst/wavparse/gstwavparse.h:
Apply DISCONT to buffers.
Only apply timestamp to the first sample after a DISCONT, too many VBR
files cause random jitter in the timestamps. Fixes#433119.
Original commit message from CVS:
* gst/rtsp/gstrtpdec.c: (gst_rtp_dec_class_init),
(gst_rtp_dec_init), (gst_rtp_dec_set_property),
(gst_rtp_dec_get_property):
* gst/rtsp/gstrtpdec.h:
Add dummy latency property to be backwards compat with rtpbin.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_class_init),
(gst_rtspsrc_set_property), (gst_rtspsrc_get_property),
(gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_parse_rtpinfo):
* gst/rtsp/gstrtspsrc.h:
Add latency property and configure in the session manager.
Don't set invalid clock-base and seqnum-base on caps, some servers
sometimes don't send them.
Original commit message from CVS:
* gst/alpha/gstalphacolor.c: (gst_alpha_color_base_init),
(gst_alpha_color_transform_caps), (gst_alpha_color_set_caps):
Double-check that RGB input caps are really RGBA caps (apparently
the core doesn't always catch it if those caps aren't a subset of
our template caps, also see #421543). Fixes#429319 in a way.
Also, don't leak the pad template in the transform_caps function.
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/alphacolor.c: (setup_alphacolor),
(cleanup_alphacolor), (create_caps_rgb24), (create_caps_rgba32),
(create_buffer_rgb24_3x4), (create_buffer_rgba32_3x4),
(GST_START_TEST), (alphacolor_suite):
Add some basic unit tests for alphacolor.
Original commit message from CVS:
* ext/libpng/gstpngdec.c: (gst_pngdec_task):
If we get a fatal flow return in the loop function, first post the
error message and only then send the EOS event downstream, otherwise
applications might get an eos message before the error message and
think everything was ok (related to #429319).
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_finalize),
(gst_rtspsrc_stream_free), (request_pt_map),
(gst_rtspsrc_stream_configure_transport), (gst_rtspsrc_open):
* gst/rtsp/gstrtspsrc.h:
Parse server address from SDP.
Hook up a udpsink to send RTCP back to the server.
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* gst/rtsp/rtsptransport.h:
Add some docs.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* docs/plugins/inspect/plugin-alphacolor.xml:
* gst/alpha/Makefile.am:
* gst/alpha/gstalphacolor.c:
* gst/alpha/gstalphacolor.h:
Add minimal docs blurb to alphacolor; split out headers into
separate header file for gtk-doc.
Original commit message from CVS:
* gst/debug/progressreport.c: (gst_progress_report_report):
Don't try to post NULL message (in case we can't query upstream
position or duration).
Original commit message from CVS:
* gst/cutter/gstcutter.c: (gst_cutter_init), (gst_cutter_chain),
(gst_cutter_get_caps):
* gst/cutter/gstcutter.h:
Fix some of the most obvious bugs in cutter. Now doesn't leak
everything if input is silent.
Original commit message from CVS:
* gst/wavenc/gstwavenc.c: (gst_wavenc_create_header_buf),
(gst_wavenc_sink_setcaps), (gst_wavenc_change_state):
* gst/wavenc/gstwavenc.h:
Wav apparently only supports width==GST_ROUND_UP(depth), everything
else results in a invalid block align and invalid files.
Original commit message from CVS:
Patch by: Vincent Torri <vtorri at univ-evry dot fr>
* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
Use correct format strings for integer types.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_base_init),
(gst_wavparse_create_sourcepad):
Use gst_riff_create_audio_template_caps () instead of the local caps.
This makes updates of the local caps unecessary whenever libgstriff
gets support for new formats.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (uint64_ceiling_scale_int),
(gst_wavparse_perform_seek), (gst_wavparse_stream_headers),
(gst_wavparse_stream_data):
Relax the audio/mpeg caps again and add FIXME: comment.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (uint64_ceiling_scale_int),
(gst_wavparse_perform_seek), (gst_wavparse_stream_headers),
(gst_wavparse_stream_data):
* gst/wavparse/gstwavparse.h:
More sanity check for the header fields. Fix type for 'rate' header
field.
Original commit message from CVS:
* gst/icydemux/gsticydemux.c: (notgst_tag_freeform_string_to_utf8),
(gst_icydemux_unicodify):
If the metadata strings we get in the stream are not UTF-8, try to
interpret them according to the character encodings specified in the
GST_ICY_TAG_ENCODING and GST_TAG_ENCODING environment variables, and
only fall back to locale/ISO-8859-1 if those aren't set or don't
work. Should fix#428901.
Original commit message from CVS:
* gst/rtp/Makefile.am:
* gst/rtp/fnv1hash.c (MASK_24, FNV1_HASH_32_INIT, FNV1_HASH_32_PRIME,
fnv1_hash_32_new, fnv1_hash_32_update, fnv1_hash_32_to_24):
* gst/rtp/fnv1hash.h (__GST_FNV1_HASH_H__):
Add a simple hashing implementation that we can use to generate
a 24-bit ident value based on the codebooks for vorbis and theora.
* gst/rtp/gstrtptheorapay.c (gst_rtp_theora_pay_finish_headers,
gst_rtp_theora_pay_handle_buffer):
* gst/rtp/gstrtpvorbisdepay.c
(gst_rtp_vorbis_depay_parse_configuration,
gst_rtp_vorbis_depay_switch_codebook, gst_rtp_vorbis_depay_process):
* gst/rtp/gstrtpvorbispay.c (gst_rtp_vorbis_pay_reset_packet,
gst_rtp_vorbis_pay_init_packet, gst_rtp_vorbis_pay_flush_packet,
gst_rtp_vorbis_pay_finish_headers, gst_rtp_vorbis_pay_handle_buffer):
Use the hashing function, ensuring that the same codebooks result
in the same ident and thus the same SDP description.
Various log fixes/changes.
Original commit message from CVS:
Patch by: jerry tan <jerry dot tan at sun dot com>
* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_open):
remove the call of ioctl (fd, AUDIO_MIXER_MULTIPLE_OPEN), it is the
application's responsibility to make sure it open the device once.
Remove a careless error if AUDIODEV is set. Fixes#392620.
Original commit message from CVS:
* gst/rtsp/gstrtpdec.c: (gst_rtp_dec_marshal_BOXED__UINT_UINT),
(gst_rtp_dec_class_init), (gst_rtp_dec_chain_rtp):
* gst/rtsp/gstrtpdec.h:
Make backward compat with rtpbin by adding the request-pt-map signals.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_create_stream),
(new_session_pad), (request_pt_map),
(gst_rtspsrc_stream_configure_transport),
(gst_rtspsrc_stream_configure_caps),
(gst_rtspsrc_activate_streams):
* gst/rtsp/gstrtspsrc.h:
Implement request-pt-map signals instead of setting caps on the buffers
for the session manager.
Original commit message from CVS:
* gst/udp/gstudp.c: (plugin_init):
Register GstNetBuffer in plugin_init so that the type can be used from
multiple threads without races.
Original commit message from CVS:
* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_setcaps),
(gst_rtp_amr_depay_process):
Fix depayloader clock_rate and some cleanups.
* gst/rtp/gstrtph264depay.c: (gst_rtp_h264_depay_finalize),
(gst_rtp_h264_depay_setcaps), (gst_rtp_h264_depay_process):
* gst/rtp/gstrtph264depay.h:
Don't push codec_data in the adapter because it might get flushed when
we get a discont.
* gst/rtp/gstrtpmp4gdepay.c: (gst_rtp_mp4g_depay_process):
Handle multiple AU per packet.
* gst/rtp/gstrtpsv3vdepay.c: (gst_rtp_sv3v_depay_process),
(gst_rtp_sv3v_depay_plugin_init):
Disable rank, this one does not work.
Remove timestamping, base class does that.
Original commit message from CVS:
* gst/auparse/gstauparse.c: (gst_au_parse_parse_header):
limit caps to the formats we announce in the template
* gst/wavparse/gstwavparse.c: (uint64_ceiling_scale_int),
(gst_wavparse_perform_seek), (gst_wavparse_stream_headers),
(gst_wavparse_add_src_pad), (gst_wavparse_stream_data):
fix some crashers/asserts when dealing with broken files