Original commit message from CVS:
* gst/rtpmanager/gstrtpjitterbuffer.c:
(gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_flush_stop),
(gst_rtp_jitter_buffer_src_event), (gst_rtp_jitter_buffer_chain),
(gst_rtp_jitter_buffer_loop):
Remove private version of a function that is in -base now.
Add src event handler.
Rework the jitterbuffer pushing loop so that it can quickly react to
lost packets and instruct the depayloader of them. This can then be used
to implement error concealment data.
Original commit message from CVS:
* gst/rtpmanager/gstrtpsession.c:
(gst_rtp_session_query_send_rtcp_src), (create_recv_rtcp_sink),
(create_send_rtcp_src):
Set up some internal links functions for the RTCP and sync pads because
the defaults are really not correct.
Implement a query handler for the RTCP src pad, mostly to correctly
report about the latency.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate),
(gst_rtp_bin_sync_chain):
* gst/rtpmanager/rtpsession.c: (update_arrival_stats),
(rtp_session_process_sr), (rtp_session_on_timeout):
* gst/rtpmanager/rtpsource.c: (rtp_source_init),
(calculate_jitter):
* gst/rtpmanager/rtpsource.h:
* gst/rtpmanager/rtpstats.h:
Also keep track of the first buffer timestamp together with the first
RTP timestamp as they both are needed to construct the timing of
outgoing packets in the jitterbuffer and are therefore also needed to
manage lip-sync. This fixes lip-sync if the first RTP packets arrive
with a wildly different gap.
Original commit message from CVS:
* gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item),
(gst_flv_parse_tag_script):
Handle NULL returns from FLV_GET_STRING() more gracefully. Fixes
crash caused by a strlen on a NULL string (#527622).
Original commit message from CVS:
* configure.ac:
Bump core/base requirements to released versions to avoid
confusion.
* gst/deinterlace/gstdeinterlace.c: (deinterlace_debug),
(GST_CAT_DEFAULT), (gst_deinterlace_base_init),
(gst_deinterlace_set_caps), (plugin_init):
Add debug category, use _set_element_details_simple and
remove special code path for Y42B to calculate offsets and
strides; libgstvideo knows how to handle this format now.
Original commit message from CVS:
* gst/cdxaparse/Makefile.am:
* gst/cdxaparse/gstcdxaparse.c:
* gst/cdxaparse/gstcdxastrip.c:
* gst/cdxaparse/gstcdxastrip.h:
* gst/cdxaparse/gstvcdparse.c:
* gst/cdxaparse/gstvcdparse.h:
Port VCD parser (formerly cdxastrip) from 0.8 to 0.10. Doesn't do
anything the 0.8 version didn't do though.
Original commit message from CVS:
* gst/rtpmanager/gstrtpbin.c: (free_session):
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_finalize):
Avoid leaking pads in the RTP manager.
Original commit message from CVS:
* gst/mpegtsparse/mpegtspacketizer.c:
Cable delivery subsystem descriptors' frequency's bcd
is measured in 100Hz units so adjust multiplier accordingly.
Original commit message from CVS:
* gst/nsf/Makefile.am:
* gst/nsf/fds_snd.c:
* gst/nsf/mmc5_snd.c:
* gst/nsf/nsf.c:
* gst/nsf/types.h:
* gst/nsf/vrc7_snd.c:
* gst/nsf/vrcvisnd.c:
* gst/nsf/memguard.c:
* gst/nsf/memguard.h:
Remove memguard again and apply hopefully all previously dropped
local patches. Should be really better than the old version now.
Original commit message from CVS:
* gst/nsf/memguard.c: (_my_free):
* gst/nsf/types.h:
Unbreak compilation by disabling memguard and doing some dirty hack
fixes to make it compile on 64bits.
Original commit message from CVS:
* gst/selector/gstinputselector.c:
(gst_input_selector_set_active_pad), (gst_input_selector_switch):
Do g_object_notify() only when not holding the lock to get the property
because otherwise we run into a deadlock with the deep-notify handlers
that are possibly installed.
Original commit message from CVS:
* gst/selector/gstinputselector.c: (gst_selector_pad_class_init),
(gst_selector_pad_event), (gst_selector_pad_bufferalloc),
(gst_selector_pad_chain), (gst_input_selector_set_active_pad):
Release the selector lock when pad alloc happens on a non selected pad.
Original commit message from CVS:
* gst/selector/gstinputselector.c: (gst_selector_pad_class_init),
(gst_selector_pad_init), (gst_selector_pad_set_property),
(gst_selector_pad_get_property), (gst_selector_pad_event),
(gst_selector_pad_bufferalloc), (gst_selector_pad_chain),
(gst_input_selector_set_active_pad):
Add pad property to configure behaviour of the unselected pad, it can
return OK or NOT_LINKED, based on the use case.
Original commit message from CVS:
* gst/selector/gstinputselector.c:
(gst_selector_pad_get_running_time), (gst_selector_pad_reset),
(gst_selector_pad_event), (gst_selector_pad_bufferalloc),
(gst_input_selector_wait), (gst_selector_pad_chain),
(gst_input_selector_class_init), (gst_input_selector_init),
(gst_input_selector_dispose), (gst_segment_set_start),
(gst_input_selector_set_active_pad),
(gst_input_selector_set_property),
(gst_input_selector_get_property),
(gst_input_selector_get_linked_pad),
(gst_input_selector_is_active_sinkpad),
(gst_input_selector_activate_sinkpad),
(gst_input_selector_request_new_pad),
(gst_input_selector_release_pad),
(gst_input_selector_change_state), (gst_input_selector_block),
(gst_input_selector_switch):
* gst/selector/gstinputselector.h:
Figure out the locking a bit more.
Mark buffers with discont after switching.
Fix initial segment forwarding, make sure to only forward one segment
regardless of what the sequence of buffers/segments is. See #522203.
Improve flushing when blocked.
Return NOT_LINKED when a stream is not selected.
Not API change for the switch signal in the docs.
Fix start/time/accum values of the new segment.
Correctly unlock and flush a blocking selector when going to READY.
Original commit message from CVS:
* gst/freeze/FAQ:
* gst/freeze/Makefile.am:
* gst/freeze/gstfreeze.c:
Add example to source code documentation blob and remove the 3 line
FAQ.
* gst/interleave/interleave.c:
Add a source code documentation blob.
Original commit message from CVS:
* gst/selector/gstinputselector.c: (gst_selector_pad_event),
(gst_selector_pad_bufferalloc), (gst_selector_pad_chain),
(gst_input_selector_class_init),
(gst_input_selector_set_active_pad),
(gst_input_selector_set_property),
(gst_input_selector_push_pending_stop):
Add lots of debugging.
Fix time member in the newsegment event.
Original commit message from CVS:
* gst/selector/gstinputselector.c: (gst_selector_pad_class_init),
(gst_selector_pad_finalize), (gst_selector_pad_get_property),
(gst_selector_pad_event), (gst_input_selector_class_init),
(gst_input_selector_init), (gst_input_selector_set_active_pad),
(gst_input_selector_set_property),
(gst_input_selector_get_property),
(gst_input_selector_request_new_pad),
(gst_input_selector_release_pad),
(gst_input_selector_push_pending_stop),
(gst_input_selector_switch):
* gst/selector/gstinputselector.h:
Various cleanups.
Added tags to the pads.
Select active pad based on the pad object instead of its name.
Fix refcount in set_active_pad.
Add property to get the number of pads.
* gst/selector/gstoutputselector.c:
(gst_output_selector_class_init),
(gst_output_selector_set_property),
(gst_output_selector_get_property):
Various cleanups.
Select the active pad based on the pad object instead of its name.
Fix locking when setting the active pad.
* gst/selector/gstselector-marshal.list:
* tests/check/elements/selector.c: (cleanup_pad),
(selector_set_active_pad), (run_input_selector_buffer_count):
Fixes for pad instead of padname for pad selection.
Original commit message from CVS:
Based on patch by: Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>
* gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_init),
(rtcp_thread), (start_rtcp_thread), (stop_rtcp_thread),
(join_rtcp_thread), (gst_rtp_session_change_state):
Avoid a deadlock when joining the RTCP thread in PAUSED because it might
be blocked downstream. Also avoid spawning multiple rtcp threads.
Fixes#520894.
Original commit message from CVS:
Patch by: Stefan Kost <ensonic@users.sf.net>
* gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew):
Don't try to reset the clock skew when we have no timestamps.
Fixes#519005.
Original commit message from CVS:
* gst/mpegtsparse/gstmpegdesc.h:
* gst/mpegtsparse/mpegtspacketizer.c:
Add parsing of cable delivery system descriptor.
Original commit message from CVS:
Patch by: Jens Granseuer <jensgr at gmx dot net>
* gst/mve/gstmvedemux.c: (gst_mve_audio_data),
(gst_mve_demux_get_type):
Fix audio discontinuity that happens when silent chunks are
followed by real data again. Fixes bug #519905.
Original commit message from CVS:
* gst/mpegtsparse/mpegtsparse.c:
Only send PMTs to program pads that the PMT is for even if
on same pid.
As a by-product, we now no longer hardcode any psi pid numbers.
Also remove pcr stream from old pmt when we apply a new pmt.
Original commit message from CVS:
* gst/selector/gstinputselector.c:
* gst/selector/gstinputselector.h:
Added "select-all" property to make it work like aggregator in 0.8.
* gst/selector/gstoutputselector.c:
Fix resend-latest behavoiur.
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/selector.c:
Add unit tests for selector.
Original commit message from CVS:
* configure.ac:
* ext/mpeg2enc/Makefile.am:
* ext/soundtouch/Makefile.am:
* gst/modplug/Makefile.am:
Check for and define ERROR_CXXFLAGS and GST_CXXFLAGS and use them
when building C++ code.
Original commit message from CVS:
Patch by: Olivier Crete <tester@tester.ca>
* gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate):
Ignore streams that did not receive an SR packet when doing
synchronisation. Fixes#516160.
Original commit message from CVS:
* gst/dvdspu/gstdvdspu.c: (gst_dvd_spu_handle_new_spu_buf):
Set n_line_ctrl_i to 0 whenever we free line_ctrl_i. Patch based
on an idea by Jan Schmidt, fixes bug #516436.
Original commit message from CVS:
* gst/mpegtsparse/gstmpegdesc.c:
* gst/mpegtsparse/gstmpegdesc.h:
* gst/mpegtsparse/mpegtsparse.c:
Make sure the gstmpegdesc debug lines do not critical
when GST_DEBUG is enabled and also actually output.
Thanks to Alessandro Decina for spotting.
Fixes#516448