Original commit message from CVS:
Based on patch by: Haakon Sporsheim <haakon.sporsheim at tandberg com>
* gst-libs/gst/rtp/gstrtpbuffer.c:
Fix up GstRTPHeader helper struct so that compilers will not under
any circumstances add padding in between our fields, as currently
happens with MSVC on win32, because that would lead to us sending
out RTP payloads with broken RTP headers (#471194).
Fix assertion guards for gst_rtp_buffer_get_csrc() and _set_csrc().
* tests/check/Makefile.am:
* tests/check/libs/.cvsignore:
* tests/check/libs/rtp.c:
Add some simple unit tests for GstRTPBuffer. Some are disabled
because the code tested still needs fixing (set_csrc() does not work).
Original commit message from CVS:
Patch by: Peter Kjellerstedt <pkj at axis com>
* gst-libs/gst/sdp/gstsdpmessage.c: (gst_sdp_time_init),
(gst_sdp_message_init), (gst_sdp_message_uninit),
(is_multicast_address), (gst_sdp_message_as_text),
(gst_sdp_message_get_origin), (gst_sdp_message_set_connection),
(gst_sdp_message_get_connection), (gst_sdp_message_add_bandwidth),
(gst_sdp_message_add_time), (gst_sdp_message_add_zone),
(gst_sdp_message_get_key), (gst_sdp_message_get_attribute_val_n),
(gst_sdp_message_get_attribute_val), (gst_sdp_message_add_media),
(gst_sdp_media_init), (gst_sdp_media_uninit),
(gst_sdp_media_as_text), (gst_sdp_media_set_port_info),
(gst_sdp_media_connections_len), (gst_sdp_media_add_connection),
(gst_sdp_media_bandwidths_len), (gst_sdp_media_get_bandwidth),
(gst_sdp_media_add_bandwidth), (gst_sdp_media_attributes_len),
(gst_sdp_parse_line), (print_media), (gst_sdp_message_dump):
* gst-libs/gst/sdp/gstsdpmessage.h:
Separate INIT_ARRAY() and related macros into two versions, one for
structures and one for pointers (e.g., INIT_ARRAY() and
INIT_PTR_ARRAY()). This fixes a segmentation error on freeing the
lists of emails and phone numbers.
Add missing const as appropriate.
Change all gint to guint since they all actually represent unsigned
values.
Do not use time as a variable name as it shadows the global time().
Add gst_sdp_message_as_text() and gst_sdp_media_as_text().
Actually implement gst_sdp_message_add_time().
Make gst_sdp_message_add_time() take repeat times as an argument.
Store repeat times in GstSDPTime as a GArray rather than as gchar**.
Corrected the definition of gst_sdp_media_get_bandwidth() (was
misspelled as badwidth).
gst-indented and a little clean up. Fixes#471067.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_payload_audio_handle_event):
Return FALSE from the event handler to let the parent class handle the
event.
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_chain), (gst_base_rtp_depayload_push_full):
Mark outgoing buffers as DISCONT if the incomming buffer was DISCONT.
* gst-libs/gst/rtp/gstbasertppayload.c:
Bump the MTU to 1400.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_class_init),
(gst_base_rtp_depayload_set_gst_timestamp):
Add some more docs for the queue-delay property and fix a typo in a
comment.
* gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_push):
Fix typo.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_skew_slaving), (gst_base_audio_sink_render),
(gst_base_audio_sink_change_state):
When skew slaving, try to hover around the middle of a segment so that
we at most drift by half a segment.
If we are aligning in the oposite direction of the clock skew, we don't
have to resync.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_setcaps),
(gst_base_rtp_depayload_set_gst_timestamp):
Be less silly with the segment start, just apply the clock-base to the
timestamp.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_class_init),
(gst_base_rtp_depayload_finalize),
(gst_base_rtp_depayload_setcaps), (gst_base_rtp_depayload_chain),
(gst_base_rtp_depayload_handle_sink_event),
(gst_base_rtp_depayload_set_gst_timestamp),
(gst_base_rtp_depayload_change_state):
* gst-libs/gst/rtp/gstbasertpdepayload.h:
Deprecate the queue handling thread thing and remove the code.
Use new method to calculate the extended timestamp.
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtcpbuffer.c:
(gst_rtcp_packet_sdes_copy_entry):
Use g_strndup which does exactly what we want.
* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_compare_seqnum),
(gst_rtp_buffer_ext_timestamp):
* gst-libs/gst/rtp/gstrtpbuffer.h:
Add helper function to compare seqnums.
Add helper function to calculate extended timestamps.
API: gst_rtp_buffer_compare_seqnum()
API: gst_rtp_buffer_ext_timestamp()
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtcpbuffer.c:
(gst_rtcp_packet_sdes_get_entry),
(gst_rtcp_packet_sdes_copy_entry):
* gst-libs/gst/rtp/gstrtcpbuffer.h:
Fix and document SDES item data function.
Add new function that makes a proper copy of SDES item data.
API: gst_rtcp_packet_sdes_copy_entry()
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/pbutils/install-plugins.c:
* gst-libs/gst/pbutils/install-plugins.h:
* tests/check/libs/pbutils.c:
API: also add gst_install_plugins_supported() while we're at it
(see #470456).
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/pbutils/missing-plugins.c:
* gst-libs/gst/pbutils/missing-plugins.h:
* tests/check/libs/pbutils.c:
API: add gst_missing_*_installer_detail_new() convenience API so
that applications that know exactly what they're missing can request
installer detail strings for those items directly instead of having
to first create a dummy missing-plugin message and then get the
installer detail string from that. Fixes#470456.
Original commit message from CVS:
* gst-libs/gst/pbutils/missing-plugins.c:
(gst_missing_plugin_message_get_installer_detail):
Add missing separator in PID fallback case.
Original commit message from CVS:
* gst-libs/gst/audio/audio.h:
Use gst_util_uint64_scale() instead of doing the math
with double for GST_FRAMES_TO_CLOCK_TIME() and
GST_CLOCK_TIME_TO_FRAMES(). For large timestamps this
prevents rounding errors. Fixes#467667.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_connect), (gst_rtsp_connection_write),
(gst_rtsp_connection_read), (gst_rtsp_connection_poll):
* gst-libs/gst/rtsp/gstrtspconnection.h:
Small cleanups.
On shutdown, don't read the control socket yet.
Set timeout value correctly in all cases.
Add function to check if the server accepts reads or writes.
API: gst_rtsp_connection_poll()
* gst-libs/gst/rtsp/gstrtspdefs.h:
Fix compilation with -pedantic.
Add enum for _poll.
Original commit message from CVS:
* gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init):
Override the preroll vmethod instead of overriding the render method
twice.
Original commit message from CVS:
* gst-libs/gst/app/gstappsink.c: (gst_app_sink_base_init),
(gst_app_sink_class_init), (gst_app_sink_dispose),
(gst_app_sink_flush_unlocked), (gst_app_sink_start),
(gst_app_sink_stop), (gst_app_sink_event), (gst_app_sink_preroll),
(gst_app_sink_render), (gst_app_sink_get_caps),
(gst_app_sink_set_caps), (gst_app_sink_end_of_stream),
(gst_app_sink_pull_preroll), (gst_app_sink_pull_buffer):
* gst-libs/gst/app/gstappsink.h:
Make love to appsink.
Make it support pulling of the preroll buffer.
Add docs and debug statements.
Fix some races wrt to EOS handling and stopping.
Implement getcaps.
Implement FLUSHING.
API: gst_app_sink_pull_preroll()
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_set_outcaps):
* gst-libs/gst/rtp/gstbasertppayload.h:
Improve caps negotiation so that downstream elements can confiure
certain RTP properties by fixing them on the caps. See #465146.
Add docs.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
* gst-libs/gst/rtp/gstbasertpdepayload.h:
Mark as deprecated some macros which were presumably meant to be
private API and accidentally exposed in the public header file.
Also actually _init() lock (only works at the moment because the
struct is zeroed out when created and the initial values in the
mutex struct are zeroes too). (#459585)
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtsptransport.c: (gst_rtsp_transport_parse):
Add rdt manager for rdt transport.
Fix parsing of RDT transport.
Original commit message from CVS:
* gst-libs/gst/audio/audio.c:
When clipping a buffer with no timestamp, assume it is
within the segment without warnings.
Fixes: #460978
Original commit message from CVS:
* gst-libs/gst/interfaces/Makefile.am:
* gst-libs/gst/interfaces/interfaces-marshal.list:
* gst-libs/gst/interfaces/rtspextension.c:
* gst-libs/gst/interfaces/rtspextension.h:
* gst-libs/gst/rtsp/Makefile.am:
* gst-libs/gst/rtsp/gstrtsp.h:
* gst-libs/gst/rtsp/gstrtspextension.c:
(gst_rtsp_extension_get_type), (gst_rtsp_extension_iface_init),
(gst_rtsp_extension_detect_server),
(gst_rtsp_extension_before_send), (gst_rtsp_extension_after_send),
(gst_rtsp_extension_parse_sdp), (gst_rtsp_extension_setup_media),
(gst_rtsp_extension_configure_stream),
(gst_rtsp_extension_get_transports),
(gst_rtsp_extension_stream_select), (gst_rtsp_extension_send):
* gst-libs/gst/rtsp/gstrtspextension.h:
* gst-libs/gst/rtsp/rtsp-marshal.list:
Move the rtspextension.h interface into gstrtspextension.h
as part of libgstrtsp instead of libgstinterfaces, because it's
only for use within plugins, not applications.
Add stuff to do the enum & marshal generation needed in libgstrtsp now.
Use the GST_TYPE_RTSP_RESULT enum type for the return value of the
signal that the GstRTSPExtension interface emits, since G_TYPE_ENUM
is abstract.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/rtsp/gstrtspbase64.c: (gst_rtsp_base64_decode_ip):
* gst-libs/gst/rtsp/gstrtspbase64.h:
API: gst_rtsp_base64_decode_ip()
Added function to decode Base64 in-place.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/audio/audio.c: (gst_audio_buffer_clip):
* gst-libs/gst/audio/audio.h:
* tests/check/libs/audio.c: (GST_START_TEST), (audio_suite):
API: Add buffer clipping function for raw audio buffers. Fixes#456656.
Also add deprecation guards for gst_audio_structure_set_int() to the
header.
Original commit message from CVS:
* gst-libs/gst/interfaces/mixer.h:
Add padding vars in place of the signal pointers
when building with DISABLE_DEPRECATED so that the
interface structure doesn't change size.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_class_init), (gst_basertppayload_init),
(gst_basertppayload_set_property),
(gst_basertppayload_get_property):
Don't break ABI, restore previous ranges. Keep the default random
selection of timestamp and seqnum offset but as soon as the app sets a
specific value, use that one.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_class_init), (gst_basertppayload_init),
(gst_basertppayload_event), (gst_basertppayload_push),
(gst_basertppayload_set_property),
(gst_basertppayload_get_property),
(gst_basertppayload_change_state):
* gst-libs/gst/rtp/gstbasertppayload.h:
Fix ranges of rtp payloader properties so that the full range can be
used in addition to -1 (random).
Fix wrong seqnum reporting in caps.
Fixes#420326.
Original commit message from CVS:
* gst-libs/gst/interfaces/propertyprobe.c:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst-libs/gst/tag/gstvorbistag.c:
Make gtk-doc happy.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_callback):
Quick hack to make audiosinks stop at EOS when operating in
pull-mode; needs to be fixed properly some day.