...
 
Commits (164)
This diff is collapsed.
This is GStreamer Base Plugins 1.0.2
This is GStreamer Base Plugins 1.0.10
Changes since 1.0.9:
* rtpbasedepayload: mark discontinuities after packet loss properly
* audioconvert: if we have to lose precision, try to lose as little precision as possible
* gio: fix very inefficient data cache handling
Bugs fixed since 1.0.9:
* 655727 : rtp: segfault in gst_rtcp_packet_get_rb()
* 705415 : gio: incredibly inefficient when playing mp3s from smb servers
* 706624 : audioconvert: Converts S32LE to S8 although S16LE would be possible too
Changes since 1.0.8:
* subparse: re-enable sami parser
* tagdemux: fix ACCURATE seeks in push mode
* multisocketsink, multifdsink: fix handling of partial writes and WOULD_BLOCK errors, and other fixes
* audiodecoder: fix input caps leak
Bugs fixed since 1.0.8:
* 693056 : subparse: re-enable sami support
* 704291 : riff: PNG AVI file does not play
* 704301 : tagdemux: Breaks seeking forward fails if ACCURATE seek and push sources
* 704926 : audiodecoder: leaks input caps
Changes since 1.0.7:
* tag: ignore malformed ID3v2 TDAT frames
Bugs fixed since 1.0.7:
* 636245 : riff: for ADPCM codecs the average bitrate should be calculated instead of trusting the format header
* 688803 : playbin: converters don't work? not-negotiated error with non-1/1 PAR and ximagesink
* 690420 : decodebin: Race between GstBin and decodebin trying to change states of child elements
* 698896 : liveadder: What is the unit for " latency " ?
* 699923 : typefind: fix detection of HLS playlists with alternative renditions
* 701976 : flvdemux: Forwards CAPS events from upstream
* 703128 : videotestsrc leaks memory
* 703283 : id3: gst_date_time_new: assertion `(month > 0 & & month < = 12) || month == -1' failed with malformed TDAT frames
* 699794 : uridecodebin: Leaking queue2 elements in playbin gapless mode
Changes since 1.0.6:
* streamsynchronizer is now a public element, useful in HLS pipelines for example
Bugs fixed since 1.0.6:
* 682171 : videoscale: assertion failed: (envelope ((x - (xi - 1)) * ex) == 0)
* 688240 : streamsynchronizer: make element public
* 696540 : Ring buffer released after parsing caps when setting caps
* 696899 : oggdemux: non flushing segment seek makes buffers late
* 697092 : rtspconnection: The " x-server-ip-address " header with wrong IP address is added to the GET response
* 697162 : SDP library is not parsing correctly
* 697277 : SDP library does not include timing line if there is not timing information
* 697820 : playbin: Enabling visualizations during playback stops the pipeline
* 697824 : videometa: gst_buffer_add_meta() can return NULL
Changes since 1.0.5:
* adder: fix setting caps via the "caps" property
* alsasink: don't use 100% CPU
* appsrc: fix locking order
* encodebin: sync muxer state with parent bin so encodebin can be added dynamically to pipeline
* libvisual: fix improper video frame clear operation
* pango: fix attribute list handling
* playbin: fix playsink caps handling so that converters get plugged when needed
* playbin: fix subtitleoverlay caps handling to avoid not-negotiated errors when plugins are missing
* videoscale: Correct DAR and border calculations
* ximagesink: fon't access structures of EMPTY caps
* typefinding: fix y4m caps
* build: fix build with automake 1.13
Bugs fixed since 1.0.5:
* 688476 : Seek in matroska file fails with not-negotiated error when using playsink
* 688803 : playbin: converters don't work? not-negotiated error with non-1/1 PAR and ximagesink
* 690937 : alsasink: playing video files with gst-launch causes CPU 100%
* 691687 : GstImageType documentation is misleading
* 693224 : appsrc deadlocks when setting pad caps before pushing buffer
* 693372 : 1.0 branch is still using AM_CONFIG_HEADER
* 693981 : subparse: fix bogus discontinuity detection if offset not set on buffers
* 696019 : videoscale does not preserve DAR with add-borders=TRUE
Changes since 1.0.4:
* alsasrc: don't output buffers without timestamps or with bogus timestamps
* discoverer, decodebin: fix state change re-sync race that might lead to deadlocks
* video: fix crashes with and frame sizes of A420 video format
Bugs fixed since 1.0.4:
* 691244 : unable to play flv file with VP6 alpha video
Changes since 1.0.3:
* playbin: fix occasional not-negotiated errors when switching visualisations
* ssaparse: ignore invalid UTF-8 in SSA/ASS subtitles init sections in matroska files
* streamsynchronizer: better timestamp and gap handling at EOS, fixing potential OOM in baseaudiosink
* bindings: fix annotation for gst_app_src_push_buffer(), fixing crash
* bindings: add several missing annotations for GstRtspMessage API
Bugs fixed since 1.0.3:
* 679976 : playbin: switching visualisations results in not-negotiated flow erros
* 689814 : Memory allocated by GstVideoDecoder base class is not freed
* 689873 : gstrtspmessage: Several functions are missing introspection annotations...
Changes since 1.0.2:
* typefind: detect isml ftyp as iso-fragmented video/quicktime
* typefinding improvements fixing playback of some wavpack files
* textoverlay rendering fixes
* gobject-introspection annotation fixes
Bugs fixed since 1.0.2:
* 686276 : rtsp: http tunneling does not work
* 687030 : ogg: crash checking header of empty ogg packet
* 687055 : exiftag: fix use after free and memory leak
* 687057 : vorbistag: fix memory leak
* 687421 : GstRTSPConnection: a number of methods not annotated correctly
* 687459 : textoverlay:forward allocation queries instead of discarding
* 687473 : rtspconnection: remove extra 'return'
* 687620 : GstRTSPMessage: fix GI annotations
* 687666 : textoverlay: aborts when shading is enabled but not supported for the current video format
* 687674 : typefinding: some WavPack files are mis-detected as AAC and fail to play
* 687991 : videodecoder: add getter for QoS proportion
* 687994 : rtsp: missing g-i annotation for gst_rtsp_message_set_body
* 688151 : pbutils missing description for Opus codec
* 686841 : pango: fix shadow text color
API additions since 1.0.2:
* gst_video_decoder_get_qos_proportion()
Changes since 1.0.1:
......
Release notes for GStreamer Base Plugins 1.0.2
Release notes for GStreamer Base Plugins 1.0.10
The GStreamer team is proud to announce a new bug-fix release
......@@ -60,33 +60,15 @@ contains a set of codecs plugins based on libav (formerly gst-ffmpeg)
Features of this release
* Parallel installability with 0.10.x series
* alsa: fix probing of supported formats, and advertise non-native-endianness formats as fallback
* audiobasesink: properly handle GAP events (fixing some isses with e.g. certain DVD menus)
* audioconvert: try harder to not convert or to preserve input format precision
* audiodecoder: leak fixes and refcounting fixes
* audioresample: re-enable the SSE/SSE2 code paths for better performance
* riff: fix paletted RGB formats and msvideo mapping
* rtsp: make formatting and parsing of range floating-point values locale-independent
* playbin: streamsynchronizer fixes, esp. for handling corner-cases near EOS
* tcpserver{sink,src}: add 'current-port' property and signal actually used port
* videoconvert: fix handling of paletted RGB formats
* videodecoder: don't leak message strings when error is not fatal
* videodecoder: finetune missing timestamp estimating
* videotestsrc: add palette for paletted RGB formats
* vorbistag: fix writing of image tags into vorbis comments
* rtpbasedepayload: mark discontinuities after packet loss properly
* audioconvert: if we have to lose precision, try to lose as little precision as possible
* gio: fix very inefficient data cache handling
Bugs fixed in this release
* 580093 : tcpserversink,src: add 'current-port' property and signal actually used port when port=0 was set
* 680904 : alsasink: no supported formats detected with using USB sound card on big-endian system
* 683098 : videodecoder: log failure message if acquire_buffer failed
* 684411 : rtsp: range in SDP formatted according to locale
* 685273 : Pre-rolling on GAP events doesn't work properly for audio sinks
* 685711 : audio, video: update docs for virtual functions that require chaining up
* 685938 : [decodebin] Issues with group switching algorithm
* 686081 : adder: all unit tests crash now after collectpads changes
* 686298 : Cannot decode some AVI files with Microsoft Video 1
* 655727 : [rtp] Segfault gst_rtcp_packet_get_rb
* 705415 : gio: incredibly inefficient when playing mp3s from smb servers
* 706624 : audioconvert: Converts S32LE to S8 although S16LE would be possible too
==== Download ====
......@@ -123,14 +105,8 @@ subscribe to the gstreamer-devel list.
Contributors to this release
* Alexandre Relange
* Andoni Morales Alastruey
* Carlos Rafael Giani
* David Corvoysier
* Josep Torra
* Mark Nauwelaerts
* Jonathan Matthew
* Sebastian Dröge
* Thiago Santos
* Tim-Philipp Müller
* Wim Taymans
 
\ No newline at end of file
......@@ -5,7 +5,7 @@ dnl please read gstreamer/docs/random/autotools before changing this file
dnl initialize autoconf
dnl releases only do -Wall, git and prerelease does -Werror too
dnl use a three digit version number for releases, and four for git/prerelease
AC_INIT(GStreamer Base Plug-ins, 1.0.2,
AC_INIT(GStreamer Base Plug-ins, 1.0.10,
http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer,
gst-plugins-base)
......@@ -24,7 +24,7 @@ dnl can autoconf find the source ?
AC_CONFIG_SRCDIR([gst/audiotestsrc/gstaudiotestsrc.c])
dnl define the output header for config
AM_CONFIG_HEADER([config.h])
AC_CONFIG_HEADERS([config.h])
dnl AM_MAINTAINER_MODE only provides the option to configure to enable it
AM_MAINTAINER_MODE([enable])
......@@ -50,10 +50,10 @@ dnl - interfaces added/removed/changed -> increment CURRENT, REVISION = 0
dnl - interfaces added -> increment AGE
dnl - interfaces removed -> AGE = 0
dnl sets GST_LT_LDFLAGS
AS_LIBTOOL(GST, 2, 0, 2)
AS_LIBTOOL(GST, 9, 0, 9)
dnl *** required versions of GStreamer stuff ***
GST_REQ=1.0.0
GST_REQ=1.0.5
dnl *** autotools stuff ****
......@@ -171,23 +171,6 @@ dnl check for GCC specific SSE headers
dnl these are used by the speex resampler code
AC_CHECK_HEADERS([xmmintrin.h emmintrin.h])
ac_cppflags_save="$CPPFLAGS"
CPPFLAGS="`$PKG_CONFIG --cflags libxml-2.0`"
AC_COMPILE_IFELSE([
AC_LANG_PROGRAM([[
#include <libxml/HTMLparser.h>
]],[[
#ifndef LIBXML_HTML_ENABLED
#error libxml2 has no HTML support
#endif /* LIBXML_HTML_ENABLED */
]])], [
HAVE_LIBXML_HTML="yes"
], [
HAVE_LIBXML_HTML="no"
])
CPPFLAGS="$ac_cppflags_save"
AM_CONDITIONAL(HAVE_LIBXML_HTML, test "x$HAVE_LIBXML_HTML" = "xyes")
dnl used in gst/tcp
AC_CHECK_HEADERS([sys/socket.h],
[HAVE_SYS_SOCKET_H="yes"], [HAVE_SYS_SOCKET_H="no"], [AC_INCLUDES_DEFAULT])
......@@ -333,6 +316,28 @@ AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO],
["${srcdir}/gst-plugins-base.doap"],
[$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO])
dnl build static plugins or not
AC_MSG_CHECKING([whether to build static plugins or not])
AC_ARG_ENABLE(
static-plugins,
AC_HELP_STRING(
[--enable-static-plugins],
[build static plugins @<:@default=no@:>@]),
[AS_CASE(
[$enableval], [no], [], [yes], [],
[AC_MSG_ERROR([bad value "$enableval" for --enable-static-plugins])])],
[enable_static_plugins=no])
AC_MSG_RESULT([$enable_static_plugins])
if test "x$enable_static_plugins" = xyes; then
AC_DEFINE(GST_PLUGIN_BUILD_STATIC, 1,
[Define if static plugins should be built])
GST_PLUGIN_LIBTOOLFLAGS=""
else
GST_PLUGIN_LIBTOOLFLAGS="--tag=disable-static"
fi
AC_SUBST(GST_PLUGIN_LIBTOOLFLAGS)
AM_CONDITIONAL(GST_PLUGIN_BUILD_STATIC, test "x$enable_static_plugins" = "xyes")
# set by AG_GST_PARSE_SUBSYSTEM_DISABLES above
dnl make sure it doesn't complain about unused variables if debugging is disabled
NO_WARNINGS=""
......@@ -405,15 +410,6 @@ AG_GST_CHECK_PLUGIN(videorate)
AG_GST_CHECK_PLUGIN(videoscale)
AG_GST_CHECK_PLUGIN(volume)
dnl FIXME 0.11: check for libxml, split subparse and move libxml parts to ext/
AM_CONDITIONAL(USE_XML, false)
AC_DEFINE([GST_DISABLE_XML], [1], [set to disable libxml2-dependent code in subparse])
dnl disable plug-ins that require libxml2's HTML support if it is not available
if test "x$HAVE_LIBXML_HTML" != "xyes"; then
AG_GST_DISABLE_PLUGIN(subparse)
fi
dnl iso-codes is optional, used by libgsttag
AC_ARG_ENABLE(iso-codes,
AC_HELP_STRING([--enable-iso-codes],[use iso-codes if installed]),
......@@ -805,7 +801,7 @@ AC_SUBST(GST_LIB_LDFLAGS)
dnl this really should only contain flags, not libs - they get added before
dnl whatevertarget_LIBS and -L flags here affect the rest of the linking
GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc.*' $GST_ALL_LDFLAGS"
GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_.*' $GST_ALL_LDFLAGS"
AC_SUBST(GST_PLUGIN_LDFLAGS)
dnl *** output files ***
......@@ -924,7 +920,6 @@ sed \
-e 's/.* HAVE_FGETPOS$/#define HAVE_FGETPOS 1/' \
-e 's/.* HAVE_FSETPOS$/#define HAVE_FSETPOS 1/' \
-e 's/.* HAVE_ISO_CODES$/#undef HAVE_ISO_CODES/' \
-e 's/.* HAVE_LIBXML2$/#define HAVE_LIBXML2 1/' \
-e 's/.* HAVE_PROCESS_H$/#define HAVE_PROCESS_H 1/' \
-e 's/.* HAVE_STDLIB_H$/#define HAVE_STDLIB_H 1/' \
-e 's/.* HAVE_STRING_H$/#define HAVE_STRING_H 1/' \
......
......@@ -101,6 +101,7 @@
<xi:include href="xml/gstrtpbuffer.xml" />
<xi:include href="xml/gstrtcpbuffer.xml" />
<xi:include href="xml/gstrtppayloads.xml" />
<xi:include href="xml/gstrtphdrext.xml" />
</chapter>
<chapter id="gstreamer-rtsp">
......@@ -174,6 +175,7 @@
<filename>-lgstvideo-&GST_API_VERSION;</filename> to the library flags.
</para>
<xi:include href="xml/gstvideo.xml" />
<xi:include href="xml/gstvideometa.xml" />
<xi:include href="xml/gstvideooverlaycomposition.xml" />
<xi:include href="xml/gstvideofilter.xml" />
<xi:include href="xml/gstvideosink.xml" />
......
......@@ -86,11 +86,27 @@ GstAudioFormat
GstAudioFormatFlags
GstAudioFormatInfo
GstAudioInfo
GstAudioLayout
GstAudioPackFlags
GstAudioFormatPack
GstAudioFormatUnpack
gst_audio_info_init
gst_audio_info_from_caps
gst_audio_info_to_caps
gst_audio_info_convert
gst_audio_format_get_info
gst_audio_info_copy
gst_audio_info_free
gst_audio_info_new
gst_audio_info_set_format
gst_audio_format_build_integer
gst_audio_format_fill_silence
gst_audio_format_from_string
gst_audio_format_to_string
GST_AUDIO_FORMAT_INFO_DEPTH
GST_AUDIO_FORMAT_INFO_ENDIANNESS
GST_AUDIO_FORMAT_INFO_FLAGS
......@@ -113,6 +129,15 @@ GST_AUDIO_INFO_NAME
GST_AUDIO_INFO_POSITION
GST_AUDIO_INFO_RATE
GST_AUDIO_INFO_WIDTH
GST_AUDIO_INFO_ENDIANNESS
GST_AUDIO_INFO_IS_BIG_ENDIAN
GST_AUDIO_INFO_IS_FLOAT
GST_AUDIO_INFO_IS_INTEGER
GST_AUDIO_INFO_IS_LITTLE_ENDIAN
GST_AUDIO_INFO_IS_SIGNED
GST_AUDIO_INFO_IS_UNPOSITIONED
GST_AUDIO_INFO_IS_VALID
GST_AUDIO_INFO_LAYOUT
GST_FRAMES_TO_CLOCK_TIME
GST_CLOCK_TIME_TO_FRAMES
......@@ -121,8 +146,20 @@ gst_audio_buffer_clip
<SUBSECTION Standard>
GST_TYPE_BUFFER_FORMAT
GST_TYPE_BUFFER_FORMAT_TYPE
GST_TYPE_AUDIO_FORMAT
GST_TYPE_AUDIO_FORMAT_FLAGS
GST_TYPE_AUDIO_FLAGS
GST_TYPE_AUDIO_LAYOUT
GST_TYPE_AUDIO_PACK_FLAGS
gst_buffer_format_get_type
gst_buffer_format_type_get_type
gst_audio_info_get_type
gst_audio_flags_get_type
gst_audio_format_flags_get_type
gst_audio_format_get_type
gst_audio_format_info_get_type
gst_audio_layout_get_type
gst_audio_pack_flags_get_type
<SUBSECTION Private>
_GST_AUDIO_FORMAT_NE
</SECTION>
......@@ -214,6 +251,7 @@ GST_AUDIO_DECODER_CLASS
GST_IS_AUDIO_DECODER_CLASS
GST_AUDIO_DECODER_GET_CLASS
GstAudioDecoderPrivate
GST_AUDIO_DECODER_CAST
</SECTION>
<SECTION>
......@@ -284,6 +322,14 @@ GST_AUDIO_FILTER_CLASS
GST_IS_AUDIO_FILTER_CLASS
GST_AUDIO_FILTER_CAST
GST_AUDIO_FILTER_CLASS_CAST
GST_AUDIO_FILTER_GET_CLASS
<SUBSECTION Private>
GST_AUDIO_FILTER_BPF
GST_AUDIO_FILTER_BPS
GST_AUDIO_FILTER_CHANNELS
GST_AUDIO_FILTER_FORMAT
GST_AUDIO_FILTER_INFO
GST_AUDIO_FILTER_RATE
</SECTION>
<SECTION>
......@@ -337,8 +383,12 @@ gst_audio_base_sink_set_provide_clock
gst_audio_base_sink_get_provide_clock
gst_audio_base_sink_set_slave_method
gst_audio_base_sink_get_slave_method
gst_audio_base_sink_get_drift_tolerance
gst_audio_base_sink_set_drift_tolerance
gst_audio_base_sink_get_drift_tolerance
gst_audio_base_sink_set_alignment_threshold
gst_audio_base_sink_get_alignment_threshold
gst_audio_base_sink_set_discont_wait
gst_audio_base_sink_get_discont_wait
<SUBSECTION Standard>
GST_AUDIO_BASE_SINK
GST_IS_AUDIO_BASE_SINK
......@@ -442,6 +492,10 @@ gst_audio_ring_buffer_may_start
gst_audio_ring_buffer_parse_caps
gst_audio_ring_buffer_set_flushing
gst_audio_ring_buffer_is_flushing
gst_audio_ring_buffer_set_channel_positions
gst_audio_ring_buffer_set_timestamp
<SUBSECTION Standard>
GST_TYPE_AUDIO_RING_BUFFER
GST_AUDIO_RING_BUFFER
......@@ -455,6 +509,8 @@ GST_TYPE_AUDIO_RING_BUFFER_SEG_STATE
gst_audio_ring_buffer_seg_state_get_type
GST_TYPE_AUDIO_RING_BUFFER_STATE
gst_audio_ring_buffer_state_get_type
GST_TYPE_AUDIO_RING_BUFFER_FORMAT_TYPE
gst_audio_ring_buffer_format_type_get_type
<SUBSECTION Private>
gst_audio_ring_buffer_debug_spec_buff
gst_audio_ring_buffer_debug_spec_caps
......@@ -732,6 +788,7 @@ gst_video_overlay_prepare_window_handle
gst_video_overlay_expose
gst_video_overlay_handle_events
gst_video_overlay_set_render_rectangle
gst_is_video_overlay_prepare_window_handle_message
<SUBSECTION Standard>
GST_TYPE_VIDEO_OVERLAY
GST_VIDEO_OVERLAY
......@@ -1065,6 +1122,8 @@ gst_rtcp_buffer_new_copy_data
gst_rtcp_buffer_validate_data
gst_rtcp_buffer_validate
GstRTCPBuffer
GST_RTCP_BUFFER_INIT
gst_rtcp_buffer_new
gst_rtcp_buffer_map
gst_rtcp_buffer_unmap
......@@ -1196,6 +1255,11 @@ gst_rtp_buffer_new_copy_data
gst_rtp_buffer_new_allocate
gst_rtp_buffer_new_allocate_len
GstRTPBuffer
GST_RTP_BUFFER_INIT
gst_rtp_buffer_map
gst_rtp_buffer_unmap
gst_rtp_buffer_calc_header_len
gst_rtp_buffer_calc_packet_len
gst_rtp_buffer_calc_payload_len
......@@ -1251,6 +1315,15 @@ gst_rtp_buffer_add_extension_onebyte_header
gst_rtp_buffer_add_extension_twobytes_header
</SECTION>
<SECTION>
<FILE>gstrtphdrext</FILE>
<INCLUDE>gst/rtp/gstrtphdrext.h</INCLUDE>
gst_rtp_hdrext_get_ntp_56
gst_rtp_hdrext_get_ntp_64
gst_rtp_hdrext_set_ntp_56
gst_rtp_hdrext_set_ntp_64
</SECTION>
# rtsp
<SECTION>
<FILE>gstrtspdefs</FILE>
......@@ -1323,6 +1396,7 @@ gst_rtsp_lower_trans_get_type
GstRTSPConnection
gst_rtsp_connection_create
gst_rtsp_connection_create_from_fd
gst_rtsp_connection_create_from_socket
gst_rtsp_connection_accept
gst_rtsp_connection_connect
gst_rtsp_connection_close
......@@ -1362,6 +1436,9 @@ gst_rtsp_connection_get_writefd
gst_rtsp_connection_set_http_mode
gst_rtsp_connection_set_proxy
gst_rtsp_connection_get_read_socket
gst_rtsp_connection_get_write_socket
GstRTSPWatch
GstRTSPWatchFuncs
gst_rtsp_watch_new
......@@ -1370,6 +1447,8 @@ gst_rtsp_watch_attach
gst_rtsp_watch_reset
gst_rtsp_watch_send_message
gst_rtsp_watch_write_data
gst_rtsp_watch_get_send_backlog
gst_rtsp_watch_set_send_backlog
</SECTION>
<SECTION>
......@@ -1450,6 +1529,7 @@ GstRTSPTimeRange
GstRTSPTime
GstRTSPTimeType
gst_rtsp_range_parse
gst_rtsp_range_get_times
gst_rtsp_range_to_string
gst_rtsp_range_free
</SECTION>
......@@ -1616,6 +1696,7 @@ gst_tag_from_vorbis_tag
gst_tag_to_vorbis_tag
gst_vorbis_tag_add
gst_tag_to_vorbis_comments
gst_tag_list_from_vorbiscomment
<SUBSECTION>
gst_tag_list_from_vorbiscomment_buffer
gst_tag_list_to_vorbiscomment_buffer
......@@ -1850,6 +1931,7 @@ gst_encoding_profile_get_format
gst_encoding_profile_get_preset
gst_encoding_profile_get_presence
gst_encoding_profile_get_restriction
gst_encoding_profile_get_file_extension
gst_encoding_profile_set_name
gst_encoding_profile_set_description
gst_encoding_profile_set_format
......@@ -1939,6 +2021,9 @@ GstVideoConvertSampleCallback
gst_video_convert_sample
gst_video_convert_sample_async
GstVideoAlignment
gst_video_alignment_reset
#video-event.h
<SUBSECTION>
gst_video_event_new_still_frame
......@@ -2073,6 +2158,7 @@ gst_video_info_from_caps
gst_video_info_to_caps
gst_video_info_convert
gst_video_info_is_equal
gst_video_info_align
<SUBSECTION Standard>
gst_video_interlace_mode_get_type
GST_TYPE_VIDEO_INTERLACE_MODE
......@@ -2129,6 +2215,49 @@ GST_TYPE_NAVIGATION_EVENT_TYPE
</SECTION>
<SECTION>
<FILE>gstvideopool</FILE>
<INCLUDE>gst/video/gstvideopool.h</INCLUDE>
GstVideoBufferPool
GstVideoBufferPoolClass
gst_video_buffer_pool_new
gst_buffer_pool_config_get_video_alignment
gst_buffer_pool_config_set_video_alignment
<SUBSECTION Standard>
GST_TYPE_VIDEO_BUFFER_POOL
GST_VIDEO_BUFFER_POOL
GST_VIDEO_BUFFER_POOL_CAST
GST_IS_VIDEO_BUFFER_POOL
GstVideoBufferPoolPrivate
gst_video_buffer_pool_get_type
</SECTION>
<SECTION>
<FILE>gstvideometa</FILE>
<INCLUDE>>gst/video/gstvideometa.h</INCLUDE>
GstVideoMeta
gst_video_meta_map
gst_video_meta_unmap
gst_video_meta_get_info
gst_buffer_add_video_meta
gst_buffer_add_video_meta_full
gst_buffer_get_video_meta
gst_buffer_get_video_meta_id
GstVideoCropMeta
gst_buffer_add_video_crop_meta
gst_buffer_get_video_crop_meta
<SUBSECTION Standard>
gst_video_crop_meta_api_get_type
gst_video_meta_api_get_type
GST_VIDEO_CROP_META_API_TYPE
GST_VIDEO_CROP_META_INFO
GST_VIDEO_META_API_TYPE
GST_VIDEO_META_INFO
GST_VIDEO_META_TRANSFORM_IS_SCALE
gst_video_meta_transform_scale_get_quark
gst_video_crop_meta_get_info
</SECTION>
<SECTION>
<FILE>gstvideooverlaycomposition</FILE>
......@@ -2146,9 +2275,14 @@ gst_video_overlay_composition_get_seqnum
gst_video_overlay_composition_copy
gst_video_overlay_composition_make_writable
gst_video_overlay_composition_blend
<SUBSECTION composition-set-get>
gst_video_buffer_get_overlay_composition
gst_video_buffer_set_overlay_composition
GstVideoOverlayCompositionMeta:
gst_video_overlay_composition_meta_get_info
gst_buffer_add_video_overlay_composition_meta
gst_buffer_get_video_overlay_composition_meta
gst_buffer_remove_video_overlay_composition_meta
<SUBSECTION rectangle>
GstVideoOverlayFormatFlags
GstVideoOverlayRectangle
......@@ -2167,6 +2301,8 @@ gst_video_overlay_rectangle_get_seqnum
gst_video_overlay_rectangle_set_render_rectangle
gst_video_overlay_rectangle_copy
gst_video_overlay_rectangle_get_flags
gst_video_overlay_rectangle_get_global_alpha
gst_video_overlay_rectangle_set_global_alpha
<SUBSECTION Standard>
GST_TYPE_VIDEO_OVERLAY_COMPOSITION
GST_VIDEO_OVERLAY_COMPOSITION
......@@ -2174,7 +2310,9 @@ GST_VIDEO_OVERLAY_COMPOSITION_CLASS
GST_VIDEO_OVERLAY_COMPOSITION_GET_CLASS
GST_IS_VIDEO_OVERLAY_COMPOSITION
GST_IS_VIDEO_VIDEO_OVERLAY_COMPOSITION_CLASS
GST_VIDEO_OVERLAY_COMPOSITION_CAST
gst_video_overlay_composition_get_type
gst_video_overlay_composition_meta_api_get_type
GST_TYPE_VIDEO_OVERLAY_RECTANGLE
GST_VIDEO_OVERLAY_RECTANGLE
......@@ -2198,6 +2336,7 @@ GST_VIDEO_FILTER_GET_CLASS
GST_IS_VIDEO_FILTER
GST_IS_VIDEO_FILTER_CLASS
gst_video_filter_get_type
GST_VIDEO_FILTER_CAST
</SECTION>
<SECTION>
......@@ -2253,6 +2392,7 @@ gst_video_decoder_get_max_decode_time
gst_video_decoder_get_max_errors
gst_video_decoder_get_oldest_frame
gst_video_decoder_get_packetized
gst_video_decoder_get_qos_proportion
gst_video_decoder_have_frame
gst_video_decoder_get_latency
gst_video_decoder_set_latency
......@@ -2476,4 +2616,16 @@ ngettext
textdomain
_
N_
inline
orc_int16
orc_int32
orc_int64
orc_int8
orc_uint16
orc_uint32
orc_uint64
orc_uint8
ORC_UINT64_C
gst_audio_marshal_VOID__OBJECT_INT
gst_audio_marshal_VOID__OBJECT_ULONG
</SECTION>
......@@ -1991,7 +1991,7 @@
<ARG>
<NAME>GstVideoScale::envelope</NAME>
<TYPE>gdouble</TYPE>
<RANGE>[0,5]</RANGE>
<RANGE>[1,5]</RANGE>
<FLAGS>rwx</FLAGS>
<NICK>Envelope</NICK>
<BLURB>Size of filter envelope.</BLURB>
......@@ -2011,7 +2011,7 @@
<ARG>
<NAME>GstVideoScale::sharpness</NAME>
<TYPE>gdouble</TYPE>
<RANGE>[0,2]</RANGE>
<RANGE>[0.5,1.5]</RANGE>
<FLAGS>rwx</FLAGS>
<NICK>Sharpness</NICK>
<BLURB>Sharpness of filter.</BLURB>
......
......@@ -3,7 +3,7 @@
<description>Adds multiple streams</description>
<filename>../../gst/adder/.libs/libgstadder.so</filename>
<basename>libgstadder.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>ALSA plugin library</description>
<filename>../../ext/alsa/.libs/libgstalsa.so</filename>
<basename>libgstalsa.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Elements used to communicate with applications</description>
<filename>../../gst/app/.libs/libgstapp.so</filename>
<basename>libgstapp.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Convert audio to different formats</description>
<filename>../../gst/audioconvert/.libs/libgstaudioconvert.so</filename>
<basename>libgstaudioconvert.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Adjusts audio frames</description>
<filename>../../gst/audiorate/.libs/libgstaudiorate.so</filename>
<basename>libgstaudiorate.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Resamples audio</description>
<filename>../../gst/audioresample/.libs/libgstaudioresample.so</filename>
<basename>libgstaudioresample.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Creates audio test signals of given frequency and volume</description>
<filename>../../gst/audiotestsrc/.libs/libgstaudiotestsrc.so</filename>
<basename>libgstaudiotestsrc.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Read audio from CD in paranoid mode</description>
<filename>../../ext/cdparanoia/.libs/libgstcdparanoia.so</filename>
<basename>libgstcdparanoia.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>various encoding-related elements</description>
<filename>../../gst/encoding/.libs/libgstencodebin.so</filename>
<basename>libgstencodebin.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>GIO elements</description>
<filename>../../gst/gio/.libs/libgstgio.so</filename>
<basename>libgstgio.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Vorbis Tremor decoder</description>
<filename>../../ext/vorbis/.libs/libgstivorbisdec.so</filename>
<basename>libgstivorbisdec.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>libvisual visualization plugins</description>
<filename>../../ext/libvisual/.libs/libgstlibvisual.so</filename>
<basename>libgstlibvisual.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
This diff is collapsed.
......@@ -3,7 +3,7 @@
<description>Pango-based text rendering and overlay</description>
<filename>../../ext/pango/.libs/libgstpango.so</filename>
<basename>libgstpango.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......@@ -20,13 +20,13 @@
<name>video_sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16, NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
<details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16, NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
<details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
</pads>
</element>
......@@ -47,13 +47,13 @@
<name>video_sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16, NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
<details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16, NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
<details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
</pads>
</element>
......@@ -89,13 +89,13 @@
<name>video_sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16, NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
<details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
<caps>
<name>src</name>
<direction>source</direction>
<presence>always</presence>
<details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, v210, v216, Y41B, Y42B, Y444, Y800, Y16, NV12, NV21, UYVP, A420, YUV9, IYU1 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
<details>video/x-raw, format=(string){ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]</details>
</caps>
</pads>
</element>
......
......@@ -3,7 +3,7 @@
<description>various playback elements</description>
<filename>../../gst/playback/.libs/libgstplayback.so</filename>
<basename>libgstplayback.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......@@ -78,6 +78,27 @@
</caps>
</pads>
</element>
<element>
<name>streamsynchronizer</name>
<longname>Stream Synchronizer</longname>
<class>Generic</class>
<description>Synchronizes a group of streams to have equal durations and starting points</description>
<author>Sebastian Dröge &lt;sebastian.droege@collabora.co.uk&gt;</author>
<pads>
<caps>
<name>sink_%u</name>
<direction>sink</direction>
<presence>request</presence>
<details>ANY</details>
</caps>
<caps>
<name>src_%u</name>
<direction>source</direction>
<presence>sometimes</presence>
<details>ANY</details>
</caps>
</pads>
</element>
<element>
<name>subtitleoverlay</name>
<longname>Subtitle Overlay</longname>
......
......@@ -3,7 +3,7 @@
<description>Subtitle parsing</description>
<filename>../../gst/subparse/.libs/libgstsubparse.so</filename>
<basename>libgstsubparse.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......@@ -41,7 +41,7 @@
<name>sink</name>
<direction>sink</direction>
<presence>always</presence>
<details>application/x-subtitle; application/x-subtitle-dks; application/x-subtitle-tmplayer; application/x-subtitle-mpl2; application/x-subtitle-qttext</details>
<details>application/x-subtitle; application/x-subtitle-sami; application/x-subtitle-tmplayer; application/x-subtitle-mpl2; application/x-subtitle-dks; application/x-subtitle-qttext</details>
</caps>
<caps>
<name>src</name>
......
......@@ -3,7 +3,7 @@
<description>transfer data over the network via TCP</description>
<filename>../../gst/tcp/.libs/libgsttcp.so</filename>
<basename>libgsttcp.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Theora plugin library</description>
<filename>../../ext/theora/.libs/libgsttheora.so</filename>
<basename>libgsttheora.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>default typefind functions</description>
<filename>../../gst/typefind/.libs/libgsttypefindfunctions.so</filename>
<basename>libgsttypefindfunctions.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Colorspace conversion</description>
<filename>../../gst/videoconvert/.libs/libgstvideoconvert.so</filename>
<basename>libgstvideoconvert.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Adjusts video frames</description>
<filename>../../gst/videorate/.libs/libgstvideorate.so</filename>
<basename>libgstvideorate.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Resizes video</description>
<filename>../../gst/videoscale/.libs/libgstvideoscale.so</filename>
<basename>libgstvideoscale.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Creates a test video stream</description>
<filename>../../gst/videotestsrc/.libs/libgstvideotestsrc.so</filename>
<basename>libgstvideotestsrc.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>plugin for controlling audio volume</description>
<filename>../../gst/volume/.libs/libgstvolume.so</filename>
<basename>libgstvolume.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>Vorbis plugin library</description>
<filename>../../ext/vorbis/.libs/libgstvorbis.so</filename>
<basename>libgstvorbis.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>X11 video output element based on standard Xlib calls</description>
<filename>../../sys/ximage/.libs/libgstximagesink.so</filename>
<basename>libgstximagesink.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -3,7 +3,7 @@
<description>XFree86 video output plugin using Xv extension</description>
<filename>../../sys/xvimage/.libs/libgstxvimagesink.so</filename>
<basename>libgstxvimagesink.so</basename>
<version>1.0.2</version>
<version>1.0.10</version>
<license>LGPL</license>
<source>gst-plugins-base</source>
<package>GStreamer Base Plug-ins source release</package>
......
......@@ -18,7 +18,7 @@ libgstalsa_la_LIBADD = \
$(ALSA_LIBS)
libgstalsa_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstalsa_la_LIBTOOLFLAGS = --tag=disable-static
libgstalsa_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
noinst_HEADERS = \
gstalsa.h \
......
......@@ -118,6 +118,7 @@ gst_alsasink_finalise (GObject * object)
g_free (sink->device);
g_mutex_clear (&sink->alsa_lock);
g_mutex_clear (&sink->delay_lock);
g_mutex_lock (&output_mutex);
--output_ref;
......@@ -255,6 +256,7 @@ gst_alsasink_init (GstAlsaSink * alsasink)
alsasink->handle = NULL;
alsasink->cached_caps = NULL;
g_mutex_init (&alsasink->alsa_lock);
g_mutex_init (&alsasink->delay_lock);
g_mutex_lock (&output_mutex);
if (output_ref == 0) {
......@@ -489,6 +491,7 @@ retry:
goto retry;
}
GST_DEBUG_OBJECT (alsa, "buffer time %u", buffer_time);
alsa->buffer_time = buffer_time;
}
if (period_time != -1 && !alsa->iec958) {
/* set the period time */
......@@ -502,6 +505,7 @@ retry:
goto retry;
}
GST_DEBUG_OBJECT (alsa, "period time %u", period_time);
alsa->period_time = period_time;
}
/* Set buffer size and period size manually for SPDIF */
......@@ -955,7 +959,7 @@ gst_alsasink_close (GstAudioSink * asink)
static gint
xrun_recovery (GstAlsaSink * alsa, snd_pcm_t * handle, gint err)
{
GST_DEBUG_OBJECT (alsa, "xrun recovery %d", err);
GST_DEBUG_OBJECT (alsa, "xrun recovery %d: %s", err, g_strerror (err));
if (err == -EPIPE) { /* under-run */
err = snd_pcm_prepare (handle);
......@@ -1011,7 +1015,9 @@ gst_alsasink_write (GstAudioSink * asink, gpointer data, guint length)
if (err < 0) {
GST_DEBUG_OBJECT (asink, "wait error, %d", err);
} else {
GST_DELAY_SINK_LOCK (asink);
err = snd_pcm_writei (alsa->handle, ptr, cptr);
GST_DELAY_SINK_UNLOCK (asink);
}
GST_DEBUG_OBJECT (asink, "written %d frames out of %d", err, cptr);
......@@ -1019,6 +1025,8 @@ gst_alsasink_write (GstAudioSink * asink, gpointer data, guint length)
GST_DEBUG_OBJECT (asink, "Write error: %s", snd_strerror (err));
if (err == -EAGAIN) {
continue;
} else if (err == -ENODEV) {
goto device_disappeared;
} else if (xrun_recovery (alsa, alsa->handle, err) < 0) {
goto write_error;
}
......@@ -1037,6 +1045,13 @@ write_error:
GST_ALSA_SINK_UNLOCK (asink);
return length; /* skip one period */
}
device_disappeared:
{
GST_ELEMENT_ERROR (asink, RESOURCE, WRITE,
(_("Error outputting to audio device. "
"The device has been disconnected.")), (NULL));
goto write_error;
}
}
static guint
......@@ -1048,7 +1063,9 @@ gst_alsasink_delay (GstAudioSink * asink)
alsa = GST_ALSA_SINK (asink);
GST_DELAY_SINK_LOCK (asink);
res = snd_pcm_delay (alsa->handle, &delay);
GST_DELAY_SINK_UNLOCK (asink);
if (G_UNLIKELY (res < 0)) {
/* on errors, report 0 delay */
GST_DEBUG_OBJECT (alsa, "snd_pcm_delay returned %d", res);
......
......@@ -43,6 +43,10 @@ typedef struct _GstAlsaSinkClass GstAlsaSinkClass;
#define GST_ALSA_SINK_LOCK(obj) (g_mutex_lock (GST_ALSA_SINK_GET_LOCK (obj)))
#define GST_ALSA_SINK_UNLOCK(obj) (g_mutex_unlock (GST_ALSA_SINK_GET_LOCK (obj)))
#define GST_DELAY_SINK_GET_LOCK(obj) (&GST_ALSA_SINK_CAST (obj)->delay_lock)
#define GST_DELAY_SINK_LOCK(obj) (g_mutex_lock (GST_DELAY_SINK_GET_LOCK (obj)))
#define GST_DELAY_SINK_UNLOCK(obj) (g_mutex_unlock (GST_DELAY_SINK_GET_LOCK (obj)))
/**
* GstAlsaSink:
*
......@@ -73,6 +77,7 @@ struct _GstAlsaSink {
GstCaps *cached_caps;
GMutex alsa_lock;
GMutex delay_lock;
};
struct _GstAlsaSinkClass {
......
......@@ -805,7 +805,7 @@ gst_alsasrc_close (GstAudioSrc * asrc)
static gint
xrun_recovery (GstAlsaSrc * alsa, snd_pcm_t * handle, gint err)
{
GST_DEBUG_OBJECT (alsa, "xrun recovery %d", err);
GST_DEBUG_OBJECT (alsa, "xrun recovery %d: %s", err, g_strerror (err));
if (err == -EPIPE) { /* under-run */
err = snd_pcm_prepare (handle);
......@@ -907,6 +907,8 @@ gst_alsasrc_read (GstAudioSrc * asrc, gpointer data, guint length,
if (err == -EAGAIN) {
GST_DEBUG_OBJECT (asrc, "Read error: %s", snd_strerror (err));
continue;
} else if (err == -ENODEV) {
goto device_disappeared;
} else if (xrun_recovery (alsa, alsa->handle, err) < 0) {
goto read_error;
}
......@@ -929,6 +931,13 @@ read_error:
GST_ALSA_SRC_UNLOCK (asrc);
return length; /* skip one period */
}
device_disappeared:
{
GST_ELEMENT_ERROR (asrc, RESOURCE, READ,
(_("Error recording from audio device. "
"The device has been disconnected.")), (NULL));
goto read_error;
}
}
static guint
......
......@@ -12,6 +12,6 @@ libgstcdparanoia_la_LIBADD = \
$(GST_LIBS) \
$(CDPARANOIA_LIBS)
libgstcdparanoia_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstcdparanoia_la_LIBTOOLFLAGS = --tag=disable-static
libgstcdparanoia_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
noinst_HEADERS = gstcdparanoiasrc.h
......@@ -7,6 +7,6 @@ libgstlibvisual_la_LIBADD = \
$(top_builddir)/gst-libs/gst/video/libgstvideo-$(GST_API_VERSION).la \
$(GST_BASE_LIBS) $(LIBVISUAL_LIBS)
libgstlibvisual_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstlibvisual_la_LIBTOOLFLAGS = --tag=disable-static
libgstlibvisual_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
noinst_HEADERS = visual.h gstaudiovisualizer.h
......@@ -961,7 +961,11 @@ gst_audio_visualizer_chain (GstPad * pad, GstObject * parent,
gst_video_frame_copy (&outframe, &scope->tempframe);
} else {
/* gst_video_frame_clear() or is output frame already cleared */
memset (outframe.data, 0, scope->vinfo.size);
gint i;
for (i = 0; i < scope->vinfo.finfo->n_planes; i++) {
memset (outframe.data[i], 0, outframe.map[i].size);
}
}
gst_buffer_replace_all_memory (inbuf,
......
......@@ -27,7 +27,7 @@ libgstogg_la_LIBADD = \
$(GST_LIBS) \
$(OGG_LIBS)
libgstogg_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstogg_la_LIBTOOLFLAGS = --tag=disable-static
libgstogg_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
Android.mk: Makefile.am $(BUILT_SOURCES)
......
......@@ -705,9 +705,8 @@ gst_ogg_demux_chain_peer (GstOggPad * pad, ogg_packet * packet,
/* check stream eos */
if ((ogg->segment.rate > 0.0 && ogg->segment.stop != GST_CLOCK_TIME_NONE &&
current_time > ogg->segment.stop) ||
(ogg->segment.rate < 0.0 && ogg->segment.start != GST_CLOCK_TIME_NONE &&
current_time < ogg->segment.start)) {
current_time >= ogg->segment.stop) ||
(ogg->segment.rate < 0.0 && current_time <= ogg->segment.start)) {
GST_DEBUG_OBJECT (ogg, "marking pad %p EOS", pad);
pad->is_eos = TRUE;
}
......
......@@ -790,7 +790,7 @@ setup_vorbis_mapper (GstOggStream * pad, ogg_packet * packet)
static gboolean
is_header_vorbis (GstOggStream * pad, ogg_packet * packet)
{
if (packet->bytes > 0 && (packet->packet[0] & 0x01) == 0)
if (packet->bytes == 0 || (packet->packet[0] & 0x01) == 0)
return FALSE;
if (packet->packet[0] == 5) {
......
......@@ -25,5 +25,5 @@ libgstpango_la_LIBADD = \
$(GST_LIBS) \
$(PANGO_LIBS)
libgstpango_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstpango_la_LIBTOOLFLAGS = --tag=disable-static
libgstpango_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
This diff is collapsed.
......@@ -391,6 +391,7 @@ gst_text_render_fixate_caps (GstTextRender * render, GstCaps * caps)
DEFAULT_RENDER_WIDTH));
gst_structure_fixate_field_nearest_int (s, "height",
MAX (render->image_height + render->ypad, DEFAULT_RENDER_HEIGHT));
caps = gst_caps_fixate (caps);
GST_DEBUG ("Fixated to %" GST_PTR_FORMAT, caps);
return caps;
......
......@@ -17,5 +17,5 @@ libgsttheora_la_LIBADD = \
$(GST_LIBS) \
$(THEORA_LIBS)
libgsttheora_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgsttheora_la_LIBTOOLFLAGS = --tag=disable-static
libgsttheora_la_LIBTOOLFLAGS = $(GST_PLUGIN_LIBTOOLFLAGS)
......@@ -633,7 +633,8 @@ theora_push_packet (GstTheoraEnc * enc, ogg_packet * packet)
goto done;
}
gst_buffer_fill (frame->output_buffer, 0, packet->packet, packet->bytes);
if (packet->bytes > 0)
gst_buffer_fill (frame->output_buffer, 0, packet->packet, packet->bytes);
/* the second most significant bit of the first data byte is cleared
* for keyframes */
......@@ -786,22 +787,11 @@ theora_enc_write_multipass_cache (GstTheoraEnc * enc, gboolean begin,
gsize bytes_written = 0;
gchar *buf;
if (begin)
if (begin) {
stat = g_io_channel_seek_position (enc->multipass_cache_fd, 0, G_SEEK_SET,
&err);
if (stat != G_IO_STATUS_ERROR) {
do {
bytes_read =
th_encode_ctl (enc->encoder, TH_ENCCTL_2PASS_OUT, &buf, sizeof (buf));
if (bytes_read > 0)
g_io_channel_write_chars (enc->multipass_cache_fd, buf, bytes_read,
&bytes_written, NULL);
} while (bytes_read > 0 && bytes_written > 0);
}
if (stat == G_IO_STATUS_ERROR || bytes_read < 0) {
if (begin) {
if (stat == G_IO_STATUS_ERROR) {
if (eos)
GST_ELEMENT_WARNING (enc, RESOURCE, WRITE, (NULL),
("Failed to seek to beginning of multipass cache file: %s",
......@@ -810,15 +800,34 @@ theora_enc_write_multipass_cache (GstTheoraEnc * enc, gboolean begin,
GST_ELEMENT_ERROR (enc, RESOURCE, WRITE, (NULL),
("Failed to seek to beginning of multipass cache file: %s",
err->message));
g_error_free (err);
return FALSE;
}
}
do {
bytes_read =
th_encode_ctl (enc->encoder, TH_ENCCTL_2PASS_OUT, &buf, sizeof (buf));
if (bytes_read > 0)
g_io_channel_write_chars (enc->multipass_cache_fd, buf, bytes_read,
&bytes_written, &err);
} while (bytes_read > 0 && bytes_written > 0 && !err);
if (bytes_read < 0 || err) {
if (bytes_read < 0) {
GST_ELEMENT_ERROR (enc, RESOURCE, WRITE, (NULL),
("Failed to read multipass cache data: %d", bytes_read));
} else {
GST_ELEMENT_ERROR (enc, RESOURCE, WRITE, (NULL),
("Failed to write multipass cache file"));
("Failed to write multipass cache file: %s", err->message));
}
if (err)