Check that we have a valid file descriptor before entering certain functions in
order to avoid undesirable situations.
Add some more debugging in the connect method.
It doesn't make sense to ask installers for the same codec or element twice, so filter out duplicate requests before calling the external helper script and make the unit test check this works right. Fixes#567636.
Add gst_rtsp_message_take_header() that takes ownership of the passed header
value. This allows us to avoid an allocations and memory copy in some
situations.
API: GstRTSPMessage::gst_rtsp_message_take_header()
Reduce the number of allocations from 2 to 1 for every FFT
context by allocating enough memory for the FFT context
and passing parts of it to the kissfft allocation functions.
Original commit message from CVS:
* gst-libs/gst/app/gstappsink.c:
Store the returned signal id in the right slot when
registering the pull-buffer signal.
Fixes#567168
Spotted by: Thomas Vander Stichele <thomas at apestaart dot org>
Original commit message from CVS:
* gst-libs/gst/interfaces/mixer.c:
Small docs addition to clarify that one really mustn't free
the constant GList returned (#566812).
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/rtsp/gstrtspurl.c: (register_rtsp_url_type),
(gst_rtsp_url_get_type), (gst_rtsp_url_copy):
* gst-libs/gst/rtsp/gstrtspurl.h:
* win32/common/libgstrtsp.def:
Add GType for GstRTSPUrl and expose a copy function because we can.
API: gst_rtsp_url_copy()
Fixes#567027.
Original commit message from CVS:
* gst-libs/gst/cdda/gstcddabasesrc.c:
* gst-libs/gst/cdda/gstcddabasesrc.h:
Make the GType of GstCDDABaseSrcMode public for bindings.
Fixes bug #566837.
Original commit message from CVS:
Patch by: José Alburquerque <jaalburqu svn gnome org>
* gst-libs/gst/audio/gstaudioclock.c: (gst_audio_clock_new):
* gst-libs/gst/audio/gstaudioclock.h:
Make gst_audio_clock_new use const gchar* to ease the wrapping of
C++ bindings. Fixes#566723.
Original commit message from CVS:
* gst-libs/gst/app/gstappsink.c:
* gst-libs/gst/app/gstappsink.h:
* gst-libs/gst/app/gstappsrc.c:
* gst-libs/gst/app/gstappsrc.h:
Make debug categories static. Use _element_class_set_details_simple().
Original commit message from CVS:
* gst-libs/gst/video/Makefile.am:
* gst-libs/gst/video/video.h:
Fix up build flags and include statement for the new generated
enumtypes files, to fix dist.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_change_state):
Avoid holding the OBJECT_LOCK when calling ringbuffer functions that
take the ringbuffer lock because rinbuffer lock > OBJECT_LOCK. We can do
this because the async_play method is deprecated and usually not called
anymore.
Original commit message from CVS:
* gst-libs/gst/tag/gsttagdemux.c: (gst_tag_demux_result_get_type):
* gst-libs/gst/tag/gsttagdemux.h:
Add GType for GstTagDemuxResult enum.
Original commit message from CVS:
* gst-libs/gst/video/Makefile.am:
* gst-libs/gst/video/video.h:
Add glib-mkenum for GstVideoFormat enum GTYPE auto-generation.
This will help bindings to use it.
Original commit message from CVS:
* gst-libs/gst/audio/Makefile.am:
* gst-libs/gst/audio/audio.c:
* gst-libs/gst/audio/multichannel.h:
* gst-libs/gst/audio/testchannels.c:
* win32/MANIFEST:
* win32/common/audio-enumtypes.c:
(gst_audio_channel_position_get_type),
(gst_ring_buffer_state_get_type),
(gst_ring_buffer_seg_state_get_type),
(gst_buffer_format_type_get_type), (gst_buffer_format_get_type):
* win32/common/audio-enumtypes.h:
* win32/common/multichannel-enumtypes.c:
* win32/common/multichannel-enumtypes.h:
* win32/vs6/grammar.dsp:
* win32/vs6/libgstaudio.dsp:
* win32/vs7/libgstaudio.vcproj:
* win32/vs8/libgstaudio.vcproj:
Switch glib-mkenum for gst-libs/gst/audio from multichannel- to
audio- in order to wrap all enums declarations of that library.
This modification should not matter since that header file is not a
public header (it will be included by public headers).
Modify win32 crap^Wfiles accordingly.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.h:
* gst-libs/gst/audio/gstbaseaudiosink.h:
Complete Sebastien's commit from the 13th by exporting the
_slave_method_get_type() methods.
Original commit message from CVS:
* gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
(gst_app_src_init), (gst_app_src_set_property),
(gst_app_src_get_property), (gst_app_src_query),
(gst_app_src_set_latencies), (gst_app_src_set_latency),
(gst_app_src_get_latency), (gst_app_src_push_buffer_full):
* gst-libs/gst/app/gstappsrc.h:
Add properties and methods to configure and retrieve the min and max
latencies.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_setcaps):
Pause the write thread before deactivating and releasing the ringbuffer
to avoid a deadlock when we do gapless playback with different sample
rates in playbin2. Fixes#564929.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
Make GstAudioSrcSlaveMethod get_type() function non-static
as it's public now.
* win32/common/libgstaudio.def:
* win32/common/libgstnetbuffer.def:
Add some missing functions to the list of exported symbols.
Original commit message from CVS:
Patch by: Andrew Feren <acferen at yahoo dot com>
* gst-libs/gst/netbuffer/gstnetbuffer.c:
(gst_netaddress_get_ip4_address), (gst_netaddress_get_ip6_address),
(gst_netaddress_get_address_bytes),
(gst_netaddress_set_address_bytes):
* gst-libs/gst/netbuffer/gstnetbuffer.h:
Make gst_netaddress_get_ip4_address fail for v6 addresses.
Make gst_netaddress_get_ip6_address either fail or return the v4
address as a transitional v6 address.
Add two convenience functions:
API: gst_netaddress_get_address_bytes()
API: gst_netaddress_set_address_bytes()
Fixes#564896.
Original commit message from CVS:
* examples/app/appsrc-ra.c: (feed_data):
* examples/app/appsrc-seekable.c: (feed_data):
* examples/app/appsrc-stream.c: (read_data):
* examples/app/appsrc-stream2.c: (feed_data):
Fix example to unref after emiting the push-buffer action.
* gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init),
(gst_app_src_push_buffer_full), (gst_app_src_push_buffer),
(gst_app_src_push_buffer_action):
Don't take the ref on the buffer in push-buffer action because it's too
awkward for bindings. Fixes#564482.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_slave_method_get_type),
(gst_base_audio_sink_class_init):
* gst-libs/gst/audio/gstbaseaudiosink.h:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_slave_method_get_type),
(gst_base_audio_src_class_init):
* gst-libs/gst/audio/gstbaseaudiosrc.h:
API: Add GST_TYPE_BASE_AUDIO_(SRC|SINK)_SLAVE_METHOD to the
public API. This is needed for the C++ bindings to be able
to use this base classes. Fixes bug #564200, #564206.
Original commit message from CVS:
* gst-libs/gst/cdda/gstcddabasesrc.c:
(gst_cdda_base_src_handle_event):
Remove erroneous gst_buffer_ref().
* tests/check/libs/rtp.c: (GST_START_TEST):
Don't forget to unref the buffer once you're done with it.
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
(gst_riff_create_video_template_caps):
Add mapping for VP6 in avi/riff.
Original commit message from CVS:
Patch by: Luis Menina <liberforce at freeside dot fr>
* gst-libs/gst/floatcast/floatcast.h:
* gst/typefind/gsttypefindfunctions.c:
Include glib.h instead of a specific GLib header. Including single
GLib headers is deprecated. Fixes bug #563904.
Original commit message from CVS:
2008-12-09 Julien Moutte <julien@fluendo.com>
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
Support higher max audio rates for some formats (WAV, Vorbis, LPCM).
Original commit message from CVS:
Patch by: Olivier Crete <tester at tester ca>
* gst-libs/gst/rtp/gstrtcpbuffer.c: (gst_rtcp_packet_remove):
* gst-libs/gst/rtp/gstrtcpbuffer.h:
Implement gst_rtcp_packet_remove(). Fixes#563174.
* tests/check/libs/rtp.c: (GST_START_TEST), (rtp_suite):
Add unit test for some RTCP functions.
Original commit message from CVS:
Patch by: 이문형 <iwings at gmail dot com>
* gst-libs/gst/app/gstappsrc.c: (gst_app_src_push_buffer):
Don't forget to release the lock again if we bail out because some
pad is flushing or we've reached EOS, otherwise things will lock up
next time _push_buffer() is called (#562802).
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_get_offset), (gst_base_audio_src_create):
Avoid nasty int overflows after about 12 hours and 25 minutes when these
code paths are triggered.
A free beer to Håvard Graff for finding this!
Original commit message from CVS:
Patch by: 이문형 <iwings at gmail dot com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_connect):
A successful gst_poll_wait() doesn't always mean successful connect() on
Windows. We should check errors by calling gst_poll_fd_has_error().
See #561924.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_drain), (gst_base_audio_sink_event),
(gst_base_audio_sink_sync_latency), (gst_base_audio_sink_render),
(gst_base_audio_sink_change_state):
Really fix audiosink drain handling by keeping track of the running_time
of the last sample.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
Time is already in running_time. Remove base_time handling. Fixes
audiosinks not draining and thus chopping some audio in the end.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
Add one log message to check for audio_drained. Sync one log message
with the condition. Send EOS after draining audio in pull mode.
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtpbuffer.c: (gst_rtp_buffer_validate_data),
(gst_rtp_buffer_set_packet_len), (gst_rtp_buffer_get_packet_len),
(gst_rtp_buffer_get_header_len), (gst_rtp_buffer_get_version),
(gst_rtp_buffer_set_version), (gst_rtp_buffer_get_padding),
(gst_rtp_buffer_set_padding), (gst_rtp_buffer_pad_to),
(gst_rtp_buffer_get_extension), (gst_rtp_buffer_set_extension),
(gst_rtp_buffer_get_extension_data),
(gst_rtp_buffer_set_extension_data), (gst_rtp_buffer_get_ssrc),
(gst_rtp_buffer_set_ssrc), (gst_rtp_buffer_get_csrc_count),
(gst_rtp_buffer_get_csrc), (gst_rtp_buffer_set_csrc),
(gst_rtp_buffer_get_marker), (gst_rtp_buffer_set_marker),
(gst_rtp_buffer_get_payload_type),
(gst_rtp_buffer_set_payload_type), (gst_rtp_buffer_get_seq),
(gst_rtp_buffer_set_seq), (gst_rtp_buffer_get_timestamp),
(gst_rtp_buffer_set_timestamp),
(gst_rtp_buffer_get_payload_subbuffer),
(gst_rtp_buffer_get_payload_len), (gst_rtp_buffer_get_payload):
Avoid expensive type checks we already did as part of the
_validate() function that should be called first.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c: (create_segment_event),
(gst_base_rtp_depayload_push_full),
(gst_base_rtp_depayload_set_gst_timestamp):
Fix some cases where a newsegment event was not sent.
Original commit message from CVS:
* gst-libs/gst/app/gstappsink.c:
* gst-libs/gst/app/gstappsrc.c:
* gst/h264parse/gsth264parse.c:
Wim, you're a bad boy. You don't want people to contact you or what?
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_sync_latency), (gst_base_audio_sink_render),
(gst_base_audio_sink_callback):
Use gst_base_sink_do_preroll() to wait for PLAYING and before waiting
for the latency to expire, fixes#559567.
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
Fix case where we don't have a range for the rates or channels as is the
case with truespeech.
Original commit message from CVS:
Patch by: Damien Lespiau <damien.lespiau gmail com>
* gst-libs/gst/rtsp/gstrtspconnection.c:
(gst_rtsp_connection_write):
Make the next call to poll not depend on previous calls to poll with or
without reading from the active descriptor. Fixes#544293.
Original commit message from CVS:
Patch by: Nick Haddad <nick at haddads dot net>
* gst-libs/gst/riff/riff-ids.h:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
Add support for other fourcc codes that are commonly used for
'uncompressed RGB', including 'RGB ', 'RAW ', and 0.
Fixes#558553.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/floatcast/floatcast.h:
Move float endianness conversion macros to core. Second part of
bug ##555196.
Original commit message from CVS:
* gst-libs/gst/tag/tags.c: (gst_tag_image_data_to_image_buffer):
Remove useless buffer size assignment. It already has this value.
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiosink.c:
(gst_audioringbuffer_class_init), (gst_audioringbuffer_acquire),
(gst_audioringbuffer_activate), (gst_audioringbuffer_release),
(gst_audioringbuffer_stop):
Implement a separate activate functions to start monitoring the segments
or, in pull mode, pulling in data.
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_init), (gst_base_audio_sink_dispose),
(gst_base_audio_sink_query_pad), (gst_base_audio_sink_query),
(gst_base_audio_sink_setcaps), (gst_base_audio_sink_callback),
(gst_base_audio_sink_activate_pull),
(gst_base_audio_sink_async_play),
(gst_base_audio_sink_change_state):
Implement pad and element convert query function.
Activate the ringbuffer.
Use the segment last_stop value as the offset to pull.
Use new basesink _do_preroll() method to preroll in the pulling thread.
Take appropriate locking in the pulling thread.
* gst-libs/gst/audio/gstringbuffer.h:
Update some docs.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_convert),
(gst_ring_buffer_activate), (gst_ring_buffer_is_active):
* gst-libs/gst/audio/gstringbuffer.h:
Add methods to more accuratly control the pulling thread of a
ringbuffer.
Add format conversion helper code to the ringbuffer.
API: GstRingBuffer:gst_ring_buffer_activate()
API: GstRingBuffer:gst_ring_buffer_is_active()
API: GstRingBuffer:gst_ring_buffer_convert()
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiosink.c: (audioringbuffer_thread_func),
(gst_audioringbuffer_acquire), (gst_audioringbuffer_release),
(gst_audioringbuffer_stop):
Signal thread startup earlier so that we can immediatly go into pull
mode when we have to and block on preroll.
Original commit message from CVS:
* gst-libs/gst/audio/gstringbuffer.c:
(gst_ring_buffer_prepare_read):
In pull mode we want the callback to prepull a buffer we can preroll on
even when we are not yet playing.
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
(gst_riff_create_video_template_caps):
Add mappping for the KMVC (Karl Morton's Video) Codec.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_setcaps), (gst_base_rtp_depayload_chain),
(gst_base_rtp_depayload_set_gst_timestamp),
(gst_base_rtp_depayload_change_state):
* gst-libs/gst/rtp/gstbasertpdepayload.h:
Add some more G_LIKELY
Fail when the setcaps function was not called.
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_set_outcaps):
Propagate return value of setcaps.
Original commit message from CVS:
* gst-libs/gst/tag/tags.c: (gst_tag_image_data_to_image_buffer):
Don't drop the last byte of image tags if they're not an URI list.
Fixes bug #556066.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
Fix debug statements (space between '%' and actual format).
Original commit message from CVS:
Patch by: Jan Gerber <j at oil21 dot org>
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps),
(gst_riff_create_video_template_caps):
Add FFV1 fourcc to support playback of FFMPEG lossless video
in AVI. Fixes bug #555319.
Original commit message from CVS:
Based on Patch by: Tero Saarni <tero dot saarni at gmail dot com>
* gst-libs/gst/sdp/gstsdpmessage.c: (gst_sdp_parse_line),
(print_media), (gst_sdp_message_dump):
Fix parsing of the c= field containing multicast addresses.
Fixes#552199.
Add the connection info to the session or streams.
Fix parsing of the bandwidth.
Add debugging for the connections and bandwidths for a media.
Add debugging for the bandwidth of the session.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertppayload.c:
(gst_basertppayload_change_state):
Configure the next seqnum and timestamp in the state change so that they
can be queried soon after.
Original commit message from CVS:
* gst-libs/gst/rtsp/gstrtspmessage.c:
(gst_rtsp_message_parse_request),
(gst_rtsp_message_parse_response):
Fix the g_return_val_if_fail() statements.
Original commit message from CVS:
* gst-libs/gst/tag/gsttagdemux.c:
Fail to activate if there's insufficient data in the file to be usable,
preventing an assertion fail later. Fixes#552960
Original commit message from CVS:
* gst-libs/gst/pbutils/descriptions.c:
* gst/typefind/gsttypefindfunctions.c:
Recognise Kate subtitle streams (#550582).
Original commit message from CVS:
* gst-libs/gst/audio/audio.h: (GST_AUDIO_FIELD_SIGNED):
Remove trailing comma from enum list, which causes problems
with -pendantic (#550729).
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiosrc.c: (gst_audioringbuffer_stop):
Disable a code path that is now called but causes a deadlock for some
reason and is unneeded.
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
Use a decent caps for TrueSpeech instead of a ffmpeg-specific one.
This will also be fixed for upcoming gst-ffmpeg release so that once
this release of -base is out, it will work with the latest gst-ffmpeg
release.
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiosink.c: (gst_audioringbuffer_stop):
Since we now call stop, we trigger this code path that causes a deadlock
is apparently not needed.
Original commit message from CVS:
* gst-libs/gst/audio/gstringbuffer.c: (gst_ring_buffer_start),
(gst_ring_buffer_stop):
Also allow the case where the ringbuffer was paused when we try to stop
it so that the basesrc stop function is still called.
Original commit message from CVS:
* gst-libs/gst/pbutils/missing-plugins.c: (copy_and_clean_caps):
When cleaning up the caps fields also remove "depth" for the same
reason we remove "width".
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c:
(gst_base_audio_src_create):
When not slaved to another clock also subtract the base_time from our
internal clock time to get the running time.