Original commit message from CVS:
Patch by: Peter Kjellerstedt <pkj at axis com>
* gst/rtsp/rtspurl.c: (rtsp_url_parse), (rtsp_url_free),
(rtsp_url_get_request_uri):
* gst/rtsp/rtspurl.h:
Add support for query parameters to RTSP URLs.
Original commit message from CVS:
Patch by: Peter Kjellerstedt <pkj at axis com>
* gst/rtsp/rtsptransport.c: (rtsp_transport_init), (parse_mode),
(parse_range), (range_as_text), (rtsp_transport_mode_as_text),
(rtsp_transport_profile_as_text), (rtsp_transport_ltrans_as_text),
(rtsp_transport_parse), (rtsp_transport_as_text):
* gst/rtsp/rtsptransport.h:
Add validation to rtsp_transport_parse().
Add rtsp_transport_as_text() to generate an RTSP header from an
RTSPTransport.
Change ssrc to guint (was a string) since that is what it is, even
though it is sent as a hex string.
Correctly identify PLAY|RECORD mode parameters (the syntax in the RFC is
incorrect, which can be seen when looking at the examples in the RFC).
Fixes#437670.
Original commit message from CVS:
Patch by: Eric Anholt
* sys/ximage/gstximagesrc.c (gst_ximage_src_open_display,
gst_ximage_src_ximage_get):
Use union of all damage between frames to make it faster.
Fixes bug #342463.
Also fix crasher when cursor is at bottom right of window.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
Skip LIST chunks before the fmt chunk (fixes#437499). Also fix
streaming mode regression for file from #343837 with 'bext' chunk
before the 'fmt' chunk.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_flush),
(gst_rtspsrc_do_seek), (gst_rtspsrc_perform_seek),
(gst_rtspsrc_handle_src_event),
(gst_rtspsrc_stream_configure_manager),
(gst_rtspsrc_stream_configure_tcp), (gst_rtspsrc_loop_interleaved),
(gst_rtspsrc_send_keep_alive), (gst_rtspsrc_open),
(gst_rtspsrc_parse_rtpinfo), (gst_rtspsrc_play):
* gst/rtsp/gstrtspsrc.h:
* gst/rtsp/rtspdefs.h:
Preliminary seek support.
Activate internal pads so that we can receive events on them.
Don't try to parse a range string when it's NULL.
Original commit message from CVS:
* gst/rtp/README:
Update README with new RTP variables that will be used for
synchronisation.
* gst/rtp/gstrtpvorbisdepay.c: (decode_base64),
(gst_rtp_vorbis_depay_parse_configuration),
(gst_rtp_vorbis_depay_process):
* gst/rtp/gstrtpvorbispay.c: (encode_base64),
(gst_rtp_vorbis_pay_finish_headers),
(gst_rtp_vorbis_pay_handle_buffer):
Update vorbis pay and depayloader to draft-04.
Original commit message from CVS:
* sys/ximage/gstximagesrc.c (gst_ximage_src_start,
gst_ximage_src_ximage_get):
* sys/ximage/gstximagesrc.h (last_ximage):
When using Damage actually keep the last frame, and not assume
that the buffer we get already has the last frame on it.
Copy the cursor over if we specify a non-zero start x and
start y.
Original commit message from CVS:
* gst/level/gstlevel.c: (gst_level_calculate_##TYPE),
(gst_level_transform_ip):
Use guint8 * instead of gpointer then vs6 know the size of data
pointed when moving the pointer.
* gst/rtp/gstrtph264pay.c: (gst_rtp_h264_pay_handle_buffer):
Move instructions after variables declaration.
* win32/vs6/autogen.dsp:
* win32/vs6/libgstrtp.dsp:
* win32/vs6/libgstrtsp.dsp:
Update vs6 project files.
Original commit message from CVS:
* gst/rtsp/Makefile.am:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_handle_src_query),
(gst_rtspsrc_send_keep_alive), (gst_rtspsrc_open):
* gst/rtsp/rtsprange.c: (parse_npt_time), (parse_npt_range),
(parse_clock_range), (parse_smpte_range), (rtsp_range_parse),
(rtsp_range_free):
* gst/rtsp/rtsprange.h:
Add code to parse time ranges.
Report DURATION on the stream when possible.
Original commit message from CVS:
* gst/videomixer/videomixer.c: (gst_videomixer_blend_ayuv_ayuv),
(gst_videomixer_fill_checker), (gst_videomixer_fill_color),
(gst_videomixer_collected):
Fix strides calculation for AYUV (it's just width*4) (#436910).
Original commit message from CVS:
* gst/audiofx/audioamplify.c: (gst_audio_amplify_transform_ip):
* gst/audiofx/audiodynamic.c: (gst_audio_dynamic_transform_ip):
* gst/audiofx/audioinvert.c: (gst_audio_invert_transform_ip):
Sync the GObject properties before each processing step to properly
work with the controller.
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:
* ext/wavpack/gstwavpack.c: (plugin_init):
Call bindtextdomain() to get localized strings.
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain):
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset),
(gst_wavpack_parse_handle_seek_event),
(gst_wavpack_parse_push_buffer), (gst_wavpack_parse_chain):
* ext/wavpack/gstwavpackparse.h:
Handle DISCONT buffers by correctly setting the DISCONT flag
on outgoing buffers when necessary.
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_handle_seek_event)
Send newsegment from the streaming thread.
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:
* ext/wavpack/gstwavpackparse.c:
(gst_wavpack_parse_handle_seek_event):
Remove old workaround that was needed when seeking after the last
sample. With the fixed error handling this works now as expected
without pushing the last sample although it wasn't requested.
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c:
(gst_wavpack_parse_handle_seek_event):
Handle segment seeks in the seek event handler, correctly work with
stop position == -1 and instead of stopping the task on seek just
pause it.
Original commit message from CVS:
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_pull_buffer),
(gst_wavpack_parse_create_src_pad),
(gst_wavpack_parse_resync_loop), (gst_wavpack_parse_loop),
(gst_wavpack_parse_chain):
Correctly handle errors, especially in the loop function. Before it
was easy to get the task paused but no error being posted on the bus.
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).