Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new):
When XShm is not available, we might get row strides that are not
rounded up to multiples of four; this is bad, because virtually
every RGB-processing element in GStreamer assumes rowstrides are
rounded up to multiples of four, so let's allocate at least enough
memory to avoid crashes in this case. The image will still be
displayed distorted though if this happens, so that still needs
fixing (maybe by allocating a bigger image with an 'even' width
and then clipping it appropriately when rendering - something for
Xlib aficionados in any case).
Original commit message from CVS:
* gst/audiorate/gstaudiorate.c: (gst_audio_rate_chain):
If a buffer doesn't have a timestamp, assume it's contiguous with
the previous buffer, and synthesise timestamps appropriately.
Original commit message from CVS:
* tests/check/elements/videorate.c: (GST_START_TEST):
Set buffer timestamp to a valid value in order to test the buffer
really does stay in videorate.
Original commit message from CVS:
* gst/videorate/gstvideorate.c: (gst_video_rate_chain):
There is no sensible way to handle incoming buffers which don't have a
valid timestamp. We therefore discard them and wait for the next one.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (type_found), (plugin_init):
* gst/playback/gstdecodebin2.c: (plugin_init):
Better error message for text files.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosrc.c: (_do_init),
(gst_base_audio_src_create):
* po/POTFILES.in:
When posting a warning message because samples were dropped, post
something more intelligible than he default error message for clock
errors which is just confusing in this context (#432984).
Original commit message from CVS:
Patch by: Christian Kirbach <Christian dot Kirbach at googlemail com>
* sys/ximage/ximagesink.c:
Fix build if XShm is not available (#432362).
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_init):
Initalize the AudioConvertCtx with zeroes, otherwise it will contain
pointers to random memory which are passed to g_free() when
audio_convert_prepare_context() is called the first time.
Original commit message from CVS:
Patch by: Dan Williams <dcbw redhat com>
* gst/videorate/gstvideorate.c: (gst_video_rate_chain):
Don't leak incoming buffer if gst_pad_push() returns a
non-OK flow. Fixes#432755.
* tests/check/elements/videorate.c: (GST_START_TEST),
(videorate_suite):
Unit test for the above by Yours Truly.
Original commit message from CVS:
* gst/adder/gstadder.c: (gst_adder_setcaps), (gst_adder_src_event),
(gst_adder_sink_event), (gst_adder_collected):
Fix non-flushing segmented seeks, Fixes#340060 for me
Original commit message from CVS:
Patch by: Olivier Crete <tester at tester ca>
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_class_init),
(gst_base_rtp_audio_payload_init),
(gst_base_rtp_audio_payload_dispose):
Chain up to parent class in dispose function; get rid of
unnecessary 'diposed' flag in private structure (#415001).
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs.types:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_class_init):
* gst-libs/gst/rtp/gstbasertpdepayload.c:
* gst-libs/gst/rtp/gstbasertppayload.c:
Some minor docs fixes and additions; also add missing 'Since' bits.
Original commit message from CVS:
Patch by: Zeeshan Ali <zeenix gmail com>
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
(gst_base_rtp_audio_payload_handle_frame_based_buffer),
(gst_base_rtp_audio_payload_handle_sample_based_buffer),
(gst_base_rtp_audio_payload_push):
* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
The recently-added gst_base_rtp_audio_payload_push() should take an
object of type GstBaseRTPAudioPayload as first argument (#431672).
Original commit message from CVS:
* gst/subparse/gstsubparse.c:
* gst/subparse/samiparse.c:
Use GST_DISABLE_XML here
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put),
(gst_xvimagesink_xwindow_new), (gst_xvimagesink_get_xv_support),
(gst_xvimagesink_buffer_alloc),
(gst_xvimagesink_navigation_send_event):
* sys/xvimage/xvimagesink.h:
Include stdlib.h when using atoi.
* tests/check/elements/playbin.c: (playbin_suite):
Use GST_DISABLE_REGISTRY here
Original commit message from CVS:
* ext/theora/gsttheoraenc.h:
* ext/theora/theoraenc.c: (theora_enc_sink_setcaps),
(theora_enc_sink_event), (theora_enc_change_state):
Track initialisation state; don't try to use encoder state if we're
not initialised (it'll segfault).
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
Allow random depths between 1 and 32 instead of only multiplies of 8.
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
Set the maximum number of channels for PCM and float in the correct
place to have it also used when creating the template caps.
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
Correctly support 4, 6 and 8 channels with normal PCM and float
wav files.
Fix the depth and signedness calculation in extensible wav files and
also handle 1, 2, 4, 6, 8 channels here when a file without channel
mask is found.
Add support for float, alaw and mulaw in extensible wav files.
This allows correct playback of all but 5 files from
http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples.html
(gst_riff_create_audio_template_caps):
Add voxware and float formats to the template caps.
Original commit message from CVS:
Patch by: Vincent Torri <vtorri at univ-evry dot fr>
* ext/pango/gstclockoverlay.c: (gst_clock_overlay_render_time):
Fix unused variable warning if HAVE_LOCALTIME_R is undefinied
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
* gst/audioresample/gstaudioresample.c: (audioresample_do_output):
Use the correct format strings for integer formats.
Original commit message from CVS:
* ext/theora/theoraenc.c (theora_buffer_from_packet, theora_enc_chain):
Don't use pad_alloc_buffer_and_set_caps to create a small header
packet, or, worse, to create a big temporary video buffer using the
src pad.
Original commit message from CVS:
* gst/gdp/gstgdppay.c (gst_gdp_pay_chain):
* tests/check/pipelines/streamheader.c (tag_event_probe_cb,
GST_START_TEST, buffer_probe_cb, GST_START_TEST):
Fix a bug where serialized IN_CAPS buffers needed to be set IN_CAPS.
Original commit message from CVS:
* tests/check/pipelines/streamheader.c (tag_event_probe_cb,
GST_START_TEST, n_in_caps, buffer_probe_cb, GST_START_TEST,
streamheader_suite):
Add another test set up for failure
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/pipelines/streamheader.c (n_tags, tag_event_probe_cb,
GST_START_TEST, streamheader_suite, main):
Add a test for the streamheader bug Wim fixed.
Original commit message from CVS:
* gst-libs/gst/tag/tags.c: (gst_tag_freeform_string_to_utf8):
Try encodings from all environment variables, not just those in the
first environment variable that is set.
Original commit message from CVS:
* gst/videorate/gstvideorate.c: (gst_video_rate_setcaps),
(gst_video_rate_chain):
Add some debug.
* tests/check/elements/videorate.c: (GST_START_TEST),
(videorate_suite):
Added check for videorate changing caps handling. Closes#421834.
Original commit message from CVS:
* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
Use scale functions to avoid overflow when calculating duration of
vorbis buffers.
Original commit message from CVS:
* gst/gdp/gstgdppay.c: (gst_gdp_pay_chain),
(gst_gdp_pay_sink_event):
Make sure we set the IN_CAPS flag correctly.
* gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_render):
Get the IN_CAPS flag before we call functions that mess with the flags.
Original commit message from CVS:
* gst/gdp/gstgdppay.c (gst_gdp_pay_reset_streamheader,
gst_gdp_pay_chain, gst_gdp_pay_sink_event):
Only stamp buffers with offset/offset_end right before they get
pushed. This ensures offset continuity, which was not the case
before as shown by
gst-launch -v -m audiotestsrc num-buffers=10 ! audioconvert ! vorbisenc ! gdppay ! identity check-imperfect-offset=TRUE ! fakesink silent=TRUE
Original commit message from CVS:
* gst/playback/gstplaybin.c: (add_sink),
(gst_play_bin_change_state):
Activate sync in playbin, we are ready to handle it for live streams.
Original commit message from CVS:
* tests/check/elements/playbin.c:
(test_sink_usage_video_only_stream), (playbin_suite):
Add small test for stream-info-value-array code paths.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_skew_slaving):
Don't try to create invalid calibration parameters by making the
internal time go backwards, instead make external time go forward.
Original commit message from CVS:
Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
* gst/playback/gstplaybasebin.c: (add_stream):
Fix leak in add_stream(), when g_value_set_object() increases the
refcount of streaminfo object. Fixes#426250.
Original commit message from CVS:
* gst/videotestsrc/gstvideotestsrc.c:
* gst/videotestsrc/gstvideotestsrc.h:
* gst/videotestsrc/videotestsrc.c:
* gst/videotestsrc/videotestsrc.h:
Add a test pattern called "circular", which has concentric
rings with varying radial frequency. The main purpose of this
pattern is to test fidelity loss in a filter or scaler element.
Notably, this pattern is scale invariant, and is optimally viewed
with a width (and height) of 400.
Original commit message from CVS:
Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
* gst/playback/gstdecodebin2.c: (connect_pad), (expose_pad),
(deactivate_free_recursive):
Decodebin2 doesn't unref pads it obtains in some occasions:
- multiqueue src pads, when either connecting further or exposing
- sink pads of new autoplugged elements
- peer pads when recursively freeing elements
Fixes#425455.
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
Add audio/x-raw-float support, now that audioconvert support
non-native endianness floats.
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler dot de>
with some minor changes
* gst-libs/gst/floatcast/floatcast.h:
Use more efficient float endianness conversion functions that don't
involve 2 function calls per value.
* gst/audioconvert/audioconvert.c: (audio_convert_get_func_index),
(check_default), (audio_convert_prepare_context):
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_parse_caps), (make_lossless_changes):
Support non-native endianness floats as input and output.
Fixes#339838.
* tests/check/elements/audioconvert.c: (verify_convert),
(GST_START_TEST):
Add unit tests for the non-native endianness float conversions.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpdepayload.c:
(gst_base_rtp_depayload_base_init),
(gst_base_rtp_depayload_class_init), (gst_base_rtp_depayload_init),
(gst_base_rtp_depayload_setcaps), (gst_base_rtp_depayload_chain),
(gst_base_rtp_depayload_set_gst_timestamp),
(gst_base_rtp_depayload_change_state),
(gst_base_rtp_depayload_set_property),
(gst_base_rtp_depayload_get_property):
* gst-libs/gst/rtp/gstbasertpdepayload.h:
Add Private structure.
Bring element code to 2007.
Parse clock-base caps param and use it when generating the
newsegment.
Reset variables before going to PAUSED.
Fix some docs.
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps):
PCM samples with width=8 must be always unsigned, no matter what
depth they have.
Original commit message from CVS:
2007-03-29 Andy Wingo <wingo@pobox.com>
* gst/videorate/gstvideorate.c (gst_video_rate_flush_prev): Make
perfect offsets also, not just timestamps.
* tests/check/elements/videorate.c (test_more): Test that given
any incoming offsets, that videorate produces perfect offsets.
Original commit message from CVS:
* gst-libs/gst/rtp/gstrtpbuffer.c:
(gst_rtp_buffer_default_clock_rate):
* gst-libs/gst/rtp/gstrtpbuffer.h:
Fix fixed payload names and docs.
Added method to get the default clock rates of fixed payload types.
API: GstRTPBuffer::gst_rtp_buffer_default_clock_rate()
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c: (slave_method_get_type),
(gst_base_audio_sink_class_init), (gst_base_audio_sink_init),
(gst_base_audio_sink_query), (gst_base_audio_sink_get_time),
(gst_base_audio_sink_set_property),
(gst_base_audio_sink_get_property), (gst_base_audio_sink_event),
(clock_convert_external), (gst_base_audio_sink_resample_slaving),
(gst_base_audio_sink_skew_slaving),
(gst_base_audio_sink_handle_slaving), (gst_base_audio_sink_render),
(gst_base_audio_sink_async_play):
* gst-libs/gst/audio/gstbaseaudiosink.h:
Store private stuff in GstBaseAudioSinkPrivate.
Add configurable clock slaving modes property.
API:: GstBaseAudioSink::slave-method property
Some more latency reporting tweaks.
Added skew based clock slaving correction and make it the default until
the resampling method is more robust.
Original commit message from CVS:
* gst/audioconvert/audioconvert.c:
Add docs to the integer pack functions and implement proper
rounding. Before we had rounding towards negative infinity, i.e.
always the smaller number was taken. Now we use natural rounding,
i.e. rounding to the nearest integer and to the one with the largest
absolute value for X.5. The old rounding introduced some minor
distortions. Fixes#420079
* tests/check/elements/audioconvert.c: (GST_START_TEST):
Fix one unit test that assumed the old rounding and added unit tests
for checking signed/unsigned int16 <-> signed/unsigned int16 with
depth 8, one for signed int16 <-> unsigned int16 and one for the new
rounding from signed int32 to signed/unsigned int16.
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c: (strip_width_64),
(gst_audio_convert_transform_caps):
Fix typo in debug line introduced recently, as pointed out on irc.
Original commit message from CVS:
* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add):
* tests/check/libs/tag.c: (GST_START_TEST):
Make sure we parse floating-point numbers in vorbis comments
correctly with either '.' or ',' as separator, no matter what
the current locale is. Add unit test for this too.
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler de>
* gst-libs/gst/tag/gstvorbistag.c: (gst_tag_to_vorbis_comments):
When writing out floating-point numbers to vorbis comment tags, always
use the same character as separator no matter what the current locale is
(fixes#423051).
* tests/check/libs/tag.c: (GST_START_TEST):
Add unit tests for replaygain tags in vorbis comments (closes#423055).
Original commit message from CVS:
* ext/vorbis/vorbisdec.c (vorbis_dec_push_forward,
vorbis_handle_data_packet):
Correctly set DURATION to generate a timestamp-continuous stream.
One bug left at the end; see
ihttp://bugzilla.gnome.org/show_bug.cgi?id=423086
* tests/check/Makefile.am:
* tests/check/pipelines/vorbisenc.c (GST_START_TEST):
Add a test to check this. Without the above patch this test fails.
Original commit message from CVS:
* gst/videorate/gstvideorate.c: (gst_video_rate_setcaps),
(gst_video_rate_reset), (gst_video_rate_chain):
If videorate changes caps, we can no longer use the old buffer
(which may have a different size, incompatible with our caps).
So don't do that; just duplicate the new frame more times.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gst_play_bin_class_init):
Remove playbin's override of the set_clock vmethod. It's irrelevant
after Wim's commit on the 19th.
Original commit message from CVS:
Patch by: Young-Ho Cha <ganadist at chollian net>
* gst/subparse/samiparse.c: (handle_start_font):
Special-case some more colour names that pango doesn't handle by
default. Fixes#420578.
Original commit message from CVS:
* ext/vorbis/vorbisenc.c: (gst_vorbis_enc_chain):
If we get a zero-sized input buffer, don't pass it to libvorbis, as
that marks EOS internally. After that, libvorbis will buffer all
input data, and encode none of it, eventually leading to memory
exhaustion.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (remove_fakesink):
Don't post STATE_DIRTY anymore.
* gst/playback/gstplaybin.c: (add_sink), (gst_play_bin_send_event),
(gst_play_bin_change_state):
Remove stream_time reset in seek handling, core does that now.
Disable clocking for live pipelines by forcing a NULL clock to the
complete pipeline, core is too smart now for our previous hack.
We can always autoplug in PAUSED now.
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c: (make_lossless_changes),
(strip_width_64), (append_with_other_format):
Previous fix was too simplistic, and broke the tests. Use a better
approach; only strip 64 from widths for integer audio.
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c: (make_lossless_changes),
(gst_audio_convert_transform_caps):
We don't support 64 bit integer audio, so don't try to claim we can.
Stops us producing caps don't match our template caps.
Update comments.
Original commit message from CVS:
* gst/audioresample/gstaudioresample.c:
(audioresample_check_discont), (audioresample_transform):
Don't trigger discontinuities for very small imperfections; a filter
flush will sound bad, and many plugins have rounding errors leading
to these.
Original commit message from CVS:
* gst-libs/gst/rtp/gstbasertpaudiopayload.c:
* gst-libs/gst/rtp/gstbasertpaudiopayload.h:
Add min-ptime property to RTP base audio payloader. Patch by
olivier.crete@collabora.co.uk.
Fixes#415001
Indentation/whitespace/documentation fixes.
Original commit message from CVS:
* gst/audioresample/debug.h:
* gst/audioresample/resample.c: (resample_init):
Since I really am not interested in a debug line for each sample
being processed, move the library's debugging to its own category,
libaudioresample
Original commit message from CVS:
* ext/theora/theoradec.c: (theora_handle_type_packet):
Since the plugin doesn't support anything other than 4:2:0 right
now, post an error and fail if we get something else. Won't matter
until libtheora supports the other pixel formats, but hopefully
that'll be soon...
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:(gst_base_audio_sink_render):
Use gst_guint64_to_gdouble for conversion.
* win32/MANIFEST:
Add new files to the win32 MANIFEST.
* win32/common/libgstaudio.def:
* win32/common/libgstpbutils.def:
Add new exported functions.
* win32/vs6/gst_plugins_base.dsw:
* win32/vs6/libgstdecodebin.dsp:
* win32/vs6/libgstplaybin.dsp:
Change the link to libgstpbutils.lib.
* win32/vs6/libgstdecodebin2.dsp:
Add a new project for decodebin2.
* win32/vs6/libgstpbutils.dsp:
Add a new project for pbutils.
Original commit message from CVS:
* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add):
Also accept partial dates with only year and month,
like 1999-12-00 (fixes#410396 even more).
* tests/check/libs/tag.c: (GST_START_TEST):
Add unit test for the above.
Original commit message from CVS:
* tests/check/elements/subparse.c: (GST_START_TEST),
(subparse_suite):
Add unit test for MPL2 subtitle format (#413799).
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_text_event),
(gst_text_overlay_video_event):
Some more logging. Only accept newsegment events in TIME format and
send a WARNING message if they are not in TIME format.
* gst/subparse/gstsubparse.c: (gst_sub_parse_dispose),
(gst_sub_parse_init), (gst_sub_parse_src_event), (handle_buffer),
(gst_sub_parse_chain), (gst_sub_parse_sink_event):
* gst/subparse/gstsubparse.h:
No need to allocate GstSegment structure dynamically, just put it
into the instance structure; ignore newsegment events in BYTE
format and in particular don't let it overwrite our saved TIME
segment from the last seek.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (ac3_type_find):
Replace AC3 typefinder with one that isn't terrible, and actually
works usefully.
Original commit message from CVS:
* pkgconfig/gstreamer-plugins-base-uninstalled.pc.in:
* pkgconfig/gstreamer-plugins-base.pc.in:
Fix up utils => pbutils here too.
Original commit message from CVS:
* gst/subparse/gstsubparse.c: (handle_buffer):
Break out of loop in chain function as soon as possible if we get
a non-OK flow return.
Original commit message from CVS:
* tests/check/elements/alsa.c: (GST_START_TEST):
Unref the mixer if the state change fails too (if the
alsa devices are inaccessible, for example)
Original commit message from CVS:
* tests/check/Makefile.am:
Don't test libvisual elements in the states check, because libvisual
seems to leak internally.
Re-enable the alsa and states tests now that there's new suppressions
in gst.supp.
* tests/check/elements/alsa.c: (GST_START_TEST):
Don't leak the alsamixer we instantiated.
Original commit message from CVS:
* sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_clear),
(gst_ximagesink_change_state), (gst_ximagesink_reset),
(gst_ximagesink_finalize):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state),
(gst_xvimagesink_reset), (gst_xvimagesink_finalize):
Move some cleanup stuff from the state change handler into a _reset()
function that can be called from _finalize(). This ensures that things
get freed even if (for some reason) the NULL->READY state transition
fails in the parent class.
Even if a parent state change fails, process our downward state change
logic instead of bailing out early.
Free the correct xcontext pointer in ximagesink's xcontext_clear.
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (gst_alsasink_open):
Extra log line.
* ext/pango/gstclockoverlay.c: (gst_clock_overlay_init):
* ext/pango/gsttimeoverlay.c: (gst_time_overlay_init):
Use pango_font_description_set_family_static instead of
pango_font_description_set_family to save a string copy (it was
leaking due to the strdup anyway)
* gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_finalize):
* gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_finalize):
* gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_finalize):
* gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_finalize):
Chain up in finalize.
Original commit message from CVS:
* gst-libs/gst/interfaces/mixertrack.c:
(gst_mixer_track_class_init), (gst_mixer_track_get_property),
(gst_mixer_track_set_property):
API: add "untranslated-label" property which should be set by
implementations at construct time (#414645).
* ext/alsa/gstalsamixeroptions.c: (gst_alsa_mixer_options_new):
* ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new):
Set "untranslated-label" when constructing mixer track objects.
* tests/check/elements/alsa.c: (GST_START_TEST), (alsa_suite):
Unit test to check the above.
Original commit message from CVS:
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_async_play):
Fix regression that made GStreamer skip the first samples of audio.
Fixes#414684.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-base-plugins-docs.sgml:
* docs/plugins/gst-plugins-base-plugins-sections.txt:
* docs/plugins/inspect/plugin-decodebin2.xml:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init):
Add documentation for decodebin2 that indicates that the API
is still unstable.
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiosink.c: (audioringbuffer_thread_func):
* gst-libs/gst/audio/gstaudiosrc.c: (audioringbuffer_thread_func):
Improve debugging.
* gst-libs/gst/audio/gstbaseaudiosink.c:
(gst_base_audio_sink_query), (gst_base_audio_sink_event),
(gst_base_audio_sink_render), (gst_base_audio_sink_async_play):
Improve latency and clock slaving calculations.
Improve slave clock calibration.
* gst-libs/gst/audio/gstringbuffer.c:
(gst_ring_buffer_commit_full):
When we are asked to render N sample to 0 bytes, return N.
Original commit message from CVS:
Patch by: Ed Catmur <ed at catmur dot co dot uk>
* gst/playback/gstplaybin.c: (gst_play_bin_vis_unblocked),
(gst_play_bin_vis_blocked), (gst_play_bin_set_property):
Fix race condition when rapidly switching visualisations in playbin.
Fixes#401029.
Original commit message from CVS:
* tests/check/generic/states.c: (GST_START_TEST):
Copy the states.c test from core again
* tests/check/Makefile.am:
ignore cdio and cdparanoiasrc
Original commit message from CVS:
* gst/audioconvert/audioconvert.c: (float), (double), (float_hq),
(double_hq), (audio_convert_get_func_index), (check_default),
(audio_convert_prepare_context), (audio_convert_convert):
Also make valgrind happy and avoid copying data in some cases.
Original commit message from CVS:
* gst/audioconvert/audioconvert.c: (float), (double), (float_hq),
(double_hq), (audio_convert_get_func_index),
(audio_convert_prepare_context), (audio_convert_convert):
* gst/audioconvert/gstaudioconvert.c:
(gst_audio_convert_class_init), (gst_audio_convert_get_unit_size),
(gst_audio_convert_transform_caps):
* tests/check/elements/audioconvert.c: (GST_START_TEST),
(audioconvert_suite):
Don't run inplace if that overwrites source data as we go. Add more
tests. Fixes#339837 even more.
Original commit message from CVS:
2007-02-27 Julien MOUTTE <julien@moutte.net>
* tests/examples/seek/seek.c: (do_seek), (set_update_scale),
(msg_segment_done): Fix various seeking bugs (Slider was not
updating when doing a non flushing seek, Reverse playback
on segment seek was wrong).
Original commit message from CVS:
* tests/examples/seek/seek.c: (stop_seek):
When we stop scrubbing, don't leave the pipeline PLAYING when we
requested a PAUSED state.
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler de>
* gst-libs/gst/tag/gstvorbistag.c: (gst_vorbis_tag_add):
Parse date strings in vorbis comments that have an invalid (zero)
month or day (#410396).
* tests/check/libs/tag.c: (GST_START_TEST):
Test case for the above.
Original commit message from CVS:
Patch by: Loïc Minier <lool+gnome at via ecp fr>
* configure.ac:
* ext/alsa/Makefile.am:
* gst/audiotestsrc/Makefile.am:
Fix compilation with LDFLAGS='-Wl,-z,defs' (#410963).
Original commit message from CVS:
* gst-libs/gst/utils/install-plugins.c:
* gst-libs/gst/utils/missing-plugins.c:
* tests/check/libs/utils.c: (missing_msg_check_getters):
Change GStreamer marker prefix in detail string from 'gstreamer.net'
to just 'gstreamer'. Document the caps string component of the
decoder/encoder detail a bit better, since not everyone will be
familiar with the GStreamer media type/caps system (but they better
enjoy nested itemized lists).
Original commit message from CVS:
* gst-libs/gst/netbuffer/gstnetbuffer.c:
(notgst_buffer_copy_fields_in_place), (gst_netbuffer_copy):
Fix copying of GstNetBuffer (would crash before, or at least lead to
invalid memory access, #410772), for now by copying the GstBuffer copy
code from the core over here so we can copy the GstBuffer fields on a
provided buffer instance (of type GstNetBuffer in this case). Would be
better to fix this with some support by the core though (and in the long
run change the broken GstBuffer/GstMiniObject copy semantics, #393099).
* tests/check/Makefile.am:
Enable unit test for GstNetBuffer.
Original commit message from CVS:
2007-02-22 Andy Wingo <wingo@pobox.com>
* gst-libs/gst/audio/gstbaseaudiosink.c
(gst_base_audio_sink_init): Disable pull-mode activation until we
figure out how to make audio sinks go to PLAYING.
Original commit message from CVS:
* gst/audioconvert/audioconvert.c: (float), (double), (float_hq),
(double_hq), (audio_convert_get_func_index),
(audio_convert_prepare_context), (audio_convert_convert):
* gst/audioconvert/audioconvert.h:
* gst/audioconvert/gstchannelmix.c: (gst_channel_mix_setup_matrix),
(gst_channel_mix_mix_int), (gst_channel_mix_mix_float):
* gst/audioconvert/gstchannelmix.h:
* tests/check/elements/audioconvert.c: (GST_START_TEST):
Add float as an intermediate format, as well as float mixing. Enable
test that was failing before. Fixes#339837
Original commit message from CVS:
* tests/examples/seek/seek.c: (do_seek):
Undo the previous commit: -1 as a stop time implies that the stop
time is the end of file, clearing any previously configured segment.
Original commit message from CVS:
* gst/volume/gstvolume.c: (volume_process_int16),
(volume_process_int16_clamp), (volume_set_caps):
Unbreak volume, value remains gint.
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_dispose),
(multi_queue_underrun_cb), (gst_decode_group_check_if_drained),
(sort_end_pads), (gst_decode_group_expose),
(gst_decode_group_hide):
Don't free groups from the streaming threads. Just put them aside and
free them in dispose.
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (connect_element),
(pad_added_group_cb), (gst_decode_group_check_if_blocked),
(sort_end_pads), (gst_decode_group_expose):
Handle dynamic pads within groups.
Sort pads before exposing them in order to make playbin happy.
There still is a race with the multiqueue filling up. This should be
solved separately.
Fixes#398721
Original commit message from CVS:
* gst-libs/gst/utils/base-utils.c:
* gst-libs/gst/utils/descriptions.c:
* gst-libs/gst/utils/install-plugins.c:
* gst-libs/gst/utils/missing-plugins.c:
Some more docs (and descriptions for two subtitle formats).
Original commit message from CVS:
* sys/ximage/ximagesink.c:
(gst_ximagesink_calculate_pixel_aspect_ratio):
* sys/xvimage/xvimagesink.c:
(gst_xvimagesink_calculate_pixel_aspect_ratio):
Small constifications.
Original commit message from CVS:
* ext/alsa/gstalsasink.c: (gst_alsasink_reset):
Ignore errors in reset, these are not fatal. They also grab the element
lock which is already taking when this function is called. Fixes
#405451.
Original commit message from CVS:
Patch by: René Stadler <mail at renestadler de>
* gst-libs/gst/tag/gstvorbistag.c:
Add vorbis/FLAC-tag mapping for new GST_TAG_REFERENCE_LEVEL
(#403597).
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_source):
When we have external subtitles and wait for the subtitle decodebin
to get up and running, we set up a (sync) bus handler for the
subtitle decodebin, so we can stop waiting when it posts an error
message. However, we should do that before we set the subtitle
decodebin's state to playing, otherwise things are racy and we might
miss error messages posted before we had a chance to set up the bus.
This should finally fix totem hanging on .txt pseudo-subtitle files.
Original commit message from CVS:
* gst/subparse/gstsubparse.c: (subrip_remove_unhandled_tag),
(subrip_remove_unhandled_tags), (parse_subrip):
For SubRip (.srt) subtitles, ignore all markup tags we don't
handle (like font tags, for example).
* tests/check/elements/subparse.c:
Add test for this.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (add_fakesink),
(gst_decode_bin_change_state):
* gst/playback/gstdecodebin2.c: (add_fakesink),
(gst_decode_bin_change_state):
Don't error out if there is no fakesink in the READY to NULL state
change, since when decodebin is re-used, we're only adding the
fakesink element in READY to PAUSED.
* tests/check/elements/decodebin.c:
(new_decoded_pad_plug_fakesink_cb), (GST_START_TEST),
(decodebin_suite):
Minimal unit test to make sure we can use the same decodebin
instance twice (at least with audiotestsrc input).
Original commit message from CVS:
* ext/alsa/gstalsa.c: (gst_alsa_find_device_name):
Try to get devic-name from device string first, and from handle only
as fallback (seems to yield better results and is more robust
against buggy probing code on the application side).
Original commit message from CVS:
Based on patch by: Julien Puydt <julien.puydt at laposte net>
* ext/alsa/gstalsa.c: (gst_alsa_find_device_name_no_handle),
(gst_alsa_find_device_name):
* ext/alsa/gstalsa.h:
* ext/alsa/gstalsasink.c: (gst_alsasink_get_property):
* ext/alsa/gstalsasrc.c: (gst_alsasrc_get_property):
Improve device-name detection a bit, especially in the case where
the device is not actually open (#405020, #405024). Move common code
into gstalsa.c instead of duplicating it.
Original commit message from CVS:
2007-02-06 Julien MOUTTE <julien@moutte.net>
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents),
(gst_xvimagesink_get_xv_support),
(gst_xvimagesink_xcontext_clear),
(gst_xvimagesink_interface_supported),
(gst_xvimagesink_probe_get_properties),
(gst_xvimagesink_probe_probe_property),
(gst_xvimagesink_probe_needs_probe),
(gst_xvimagesink_probe_get_values),
(gst_xvimagesink_property_probe_interface_init),
(gst_xvimagesink_set_property), (gst_xvimagesink_get_property),
(gst_xvimagesink_init), (gst_xvimagesink_class_init),
(gst_xvimagesink_get_type):
* sys/xvimage/xvimagesink.h: Implement PropertyProbe Interface
for XVAdaptors so that one can choose the adaptor to use with
gstreamer-properties.
Original commit message from CVS:
* gst-libs/gst/audio/gstaudiofilter.c:
(gst_audio_filter_class_init), (gst_audio_filter_change_state):
Clear our formats structure and free the caps contained in it when
shutting down.
Original commit message from CVS:
2007-02-05 Andy Wingo <wingo@pobox.com>
* gst-libs/gst/audio/gstbaseaudiosink.c
(gst_base_audio_sink_callback): Update basesink->offset so that we
pull monotonically increasing offsets instead of, um, seeking back
to 0 each time. Fixes alsasrc ! alsasink!
Original commit message from CVS:
* gst/videoscale/gstvideoscale.c:
A width and height of 1 makes us crash, so increase minimum size to
2x2 pixels until someone feels like fixing this (#404512).
Original commit message from CVS:
* tests/check/pipelines/oggmux.c: (GST_START_TEST), (oggmux_suite):
Add small test to make sure request pads are cleaned up properly
even if oggmux never changes state out of NULL.
Original commit message from CVS:
* tests/check/libs/utils.c: (GST_START_TEST):
Fix unit test. Turns out things work much better when you
NULL-terminate string arrays. Should make p5 build bot happy again.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
* gst-libs/gst/audio/gstaudiofilter.c: (gst_audio_filter_get_type),
(gst_audio_filter_class_init), (gst_audio_filter_init),
(gst_audio_filter_set_caps),
(gst_audio_filter_class_add_pad_templates):
* gst-libs/gst/audio/gstaudiofilter.h:
Port GstAudioFilter to 0.10. This change technically breaks
API and ABI (and thus also every library developer's heart),
but seems justifiable on the grounds that the base class was
completely unusable before (ie. would crash immediately when
actually used). Fixes#403963 (and eventually also #403572).
Also document all of this a bit.
Original commit message from CVS:
* gst-libs/gst/utils/install-plugins.c:
(gst_install_plugins_spawn_child):
* tests/check/libs/utils.c:
(test_base_utils_install_plugins_do_callout):
Lowering log level to see why things fail on the p5 build bot;
fix some typos in unit test messages.
Original commit message from CVS:
* tests/check/libs/utils.c:
(test_base_utils_install_plugins_do_callout):
Don't hard-code temp directory for test helper; use GLib functions
to write out file and do error checking etc.
Original commit message from CVS:
* gst-libs/gst/utils/Makefile.am:
* gst-libs/gst/utils/base-utils.h:
* gst-libs/gst/utils/install-plugins.c:
(gst_install_plugins_context_set_xid),
(gst_install_plugins_context_new),
(gst_install_plugins_context_free),
(gst_install_plugins_get_helper),
(gst_install_plugins_spawn_child),
(gst_install_plugins_return_from_status),
(gst_install_plugins_installer_exited),
(gst_install_plugins_async), (gst_install_plugins_sync),
(gst_install_plugins_return_get_name),
(gst_install_plugins_installation_in_progress):
* gst-libs/gst/utils/install-plugins.h:
API: add API for applications to initiate installation of missing
plugins, ie. gst_install_plugins_async() primarily.
Based on libgimme-codec by Ryan Lortie.
* configure.ac:
Add --with-install-plugins-helper configure option so distros can specify
the path of the helper script or program to call when plugin installation
is requested (distros: please do any argument munging in this helper
script instead of patching GStreamer to pass arguments differently
to another program directly).
* docs/libs/gst-plugins-base-libs-docs.sgml:
* docs/libs/gst-plugins-base-libs-sections.txt:
Build and document new API.
* tests/check/libs/utils.c: (result_cb),
(test_base_utils_install_plugins_do_callout), (GST_START_TEST),
(libgstbaseutils_suite):
Some simple checks for the new API.
Original commit message from CVS:
* tests/check/elements/audioconvert.c: (test_float_conversion):
Add small test for 32bit float <=> 64bit float conversion (works
only one way so far, 32=>64 produces structured noise).
Original commit message from CVS:
* gst/audioconvert/gstaudioconvert.c:
(set_structure_widths_32_and_64), (make_lossless_changes):
We don't support floats with a width of 40, 48 or 56 bits.
Original commit message from CVS:
* gst/audioconvert/audioconvert.c: (float), (double),
(audio_convert_get_func_index):
* gst/audioconvert/gstaudioconvert.c: (set_structure_widths),
(make_lossless_changes):
Support for 64-bit float audio in audioconvert (#339837)
Original commit message from CVS:
reviewed by: Wim Taymans <wim@fluendo.com>
* ext/ogg/gstoggmux.c: (gst_ogg_mux_ogg_pad_destroy_notify),
(gst_ogg_mux_request_new_pad), (gst_ogg_mux_release_pad):
Use newly added GstCollectPads API to free the allocated resources in
the GstOggPad structures (#402393).
Original commit message from CVS:
* gst/playback/gstplaybin.c: (gen_vis_element):
Add audioresample+audioconvert in front of the visualisation
element, so that elements like libvisual 0.4 that don't support all
samplerates can work.
Fixes: #402505
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_property),
(gst_play_base_bin_get_streaminfo_value_array):
Take some locks and make a copy of the streaminfo value array we
maintain while holding the lock, so that the application can
retrieve the stream-info as a value array in a thread-safe way.
Original commit message from CVS:
* ext/theora/theoraenc.c: (theora_enc_chain):
Check return value of theora_encode_header(), or we might try to
allocate a random number of bytes. theora_encode_header() can fail
if libtheora has been compiled with encoding support disabled.
Fixes#398110.
Original commit message from CVS:
* ext/libvisual/visual.c: (gst_visual_src_setcaps):
Fix strides in libvisual. Gst uses X strides.
Inspired by: <ed at catmur dot co dot uk> and
<tim at centricular dot net>
Fixes#401118.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_submit_buffer),
(gst_ogg_demux_get_data), (gst_ogg_demux_get_next_page),
(gst_ogg_demux_get_prev_page), (gst_ogg_demux_do_seek),
(gst_ogg_demux_perform_seek),
(gst_ogg_demux_bisect_forward_serialno),
(gst_ogg_demux_read_chain), (gst_ogg_demux_read_end_chain),
(gst_ogg_demux_find_chains), (gst_ogg_demux_handle_page),
(gst_ogg_demux_chain), (gst_ogg_demux_combine_flows),
(gst_ogg_demux_loop_reverse), (gst_ogg_demux_loop):
* ext/ogg/gstoggdemux.h:
Properly propagate streaming errors when we are scanning the file for
chains so that we don't crash when shut down. Might fix some crashers
when quickly switching oggs in RB such as #332503 and #378436.
Original commit message from CVS:
* ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_start):
Map a gnome-vfs HOST_NOT_FOUND error into a GStreamer NOT_FOUND
error code as well.
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_dispose):
Cast lock macro parameters to make sure we're actually accessing the
lock member at the right class level. Free list itself in _dispose()
as well and NULL it in case dispose gets called multiple times.
Original commit message from CVS:
* gst/playback/gstdecodebin2.c:
(gst_decode_bin_dispose),(gst_decode_bin_finalize):
Free GstDecodeGroups no longer used.
(gst_decode_group_expose):
Don't unlock too many times !
(deactivate_free_recursive):
Free iterator once we're done with it.
Fix for recursively deactivating elements (stop at ghostpads).
Original commit message from CVS:
* gst/playback/gstplaybin.c: (handoff):
Fix up caps on the frame buffer before we save it and potentially
make it accessible to other threads via g_object_get; also use
gst_buffer_replace() instead of gst_mini_object_replace().
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_finalize),
(gst_decode_group_new), (gst_decode_group_free):
Set queues to bigger sizes to cope with HD contents.
Fix some mutex freeing and add comment about MT safe methods.
Original commit message from CVS:
* ext/pango/gsttextoverlay.c: (gst_text_overlay_src_event),
(gst_text_overlay_text_event):
Don't unnecessarily ref (and then leak) upstream events if the text
pad is not linked. Fixes#399948.
* tests/check/gst-plugins-base.supp:
Add suppression for pango on edgy/x86 for textoverlay test.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_demux_read_chain):
Error out properly if we get an error from libogg while reading the
BOS page(s). Fixes crash parsing 'fuzzed' ogg file (#399340).
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_bin_finalize):
Don't leak mutex.
* tests/check/elements/playbin.c:
(test_sink_usage_video_only_stream),
(test_suburi_error_unknowntype), (test_suburi_error_invalidfile),
(test_suburi_error_wrongproto), (test_missing_urisource_handler),
(test_missing_suburisource_handler),
(test_missing_primary_decoder), (playbin_suite):
Run all tests once with decodebin and once with decodebin2.
One test does not pass yet with decodebin2.
Original commit message from CVS:
* ext/ogg/gstoggmux.c: (all_pads_eos), (gst_ogg_mux_collected):
Fix the cases where oggmux doesn't properly figure out that all
sinkpads have gone EOS, and therefore doesn't push out the remaining
buffers and the final EOS event.
Fixes#363379
Original commit message from CVS:
2007-01-23 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents):
Don't lock on navigation event push, just on keysym to string.
Fixes#397673 again.
Original commit message from CVS:
* gst/playback/gstdecodebin2.c: (gst_decode_group_new),
(get_current_group), (group_demuxer_event_probe),
(gst_decode_group_expose), (deactivate_free_recursive),
(gst_decode_group_free):
Cleanups.
Don't forget to emit 'no-more-pads' once a group is exposed.
Cleanup elements from a DecodeGroup once we remove it.
Protect call to gst_decode_group_expose() with the decodebin lock.
Original commit message from CVS:
2007-01-22 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents):
Looking at Xorg code i can't figure out if that XKeysymToString
function is thread sensible or not. Lock it just in case as
recommended by Radek Doulik <rodo at ximian dot com>.
Original commit message from CVS:
2007-01-22 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents):
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents):
Lock that X Call as well. Fixes#397673.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mpeg4_video_type_find):
Don't go into an endless loop if the file starts with 00 00 01 2X,
like quicktime redirect files might. Fixes#396042.
* tests/check/Makefile.am:
* tests/check/gst/.cvsignore:
* tests/check/gst/typefindfunctions.c: (GST_START_TEST),
(typefindfunctions_suite):
Add unit test for the above.
Original commit message from CVS:
* gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps):
On second thought, use "depth" field rather than "bpp" field.
Original commit message from CVS:
* gst/playback/gstplaybasebin.c: (setup_subtitle),
(gen_source_element), (gst_play_base_bin_change_state):
Attempt at a better error message in case we don't have the required
URI handler installed; post missing-plugin message also when we're
missing an URI handler for the subtitle URI; clean up properly also
when an error occurs and we never made it to PAUSED state.
* tests/check/elements/playbin.c: (GST_START_TEST),
(playbin_suite):
Check that we're also getting a missing-plugin messsage for a
missing subtitle URI handler (and clean up properly).
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find):
Lower probability a bit if the marker isn't right at the start,
to decrease the chance of false positives.
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find):
Small mpeg2 system stream typefinding improvement: make typefinder
probe a bit into the stream instead of just looking for a marker
at the beginning. Fixes#397810.
Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/gstdecodebin.c: (close_pad_link):
* gst/playback/gstdecodebin2.c: (analyze_new_pad):
* gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init),
(gst_play_base_bin_handle_message_func), (unknown_type):
Let decodebin be the element to post missing-plugin messages for
missing decoders (rather than playbin); make playbin implement
GstBin::handle_message so we can suppress missing-plugin messages
for types we're not handling on purpose (don't want to bring up an
installer in those cases).
Original commit message from CVS:
* tests/examples/seek/seek.c: (set_scale), (update_scale),
(do_seek), (stop_seek), (pause_cb), (stop_cb), (loop_toggle_cb),
(rate_spinbutton_changed_cb), (msg_eos), (msg_segment_done),
(main):
Allow to toggle looping while it plays. Fix callback prototype. Clean
up code a bit more. Add copyright header.
Original commit message from CVS:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support):
Red and blue mask was swapped (spotted by Dan Williams).
Original commit message from CVS:
2007-01-12 Andy Wingo <wingo@pobox.com>
* gst-libs/gst/audio/gstbaseaudiosink.c
(gst_base_audio_sink_fixate): Implement, stolen from baseaudiosrc.
(gst_base_audio_sink_activate_pull): Remove the handwavey nego
stuff, as the base class handles this now. Actually tell the ring
buffer to start.
(gst_base_audio_sink_callback): Cast the ring buffer correctly.
How did this work before? Maybe I'm not as awesome a programmer as
I think.
* gst-libs/gst/audio/gstbaseaudiosrc.c
(gst_base_audio_src_fixate): Rework as a basesrc vmethod instead
of a pad function.
Original commit message from CVS:
* gst-libs/gst/utils/missing-plugins.c: (copy_and_clean_caps):
Remove more fields so that the application can better blacklist
formats that have been tried before.
Original commit message from CVS:
* gst-libs/gst/audio/mixerutils.h:
Add G_BEGIN_DECLS and G_END_DECLS guards so these helpers can be
used when compiling with c++ compilers as well.
Original commit message from CVS:
* gst/playback/gstplaybin.c: (post_missing_element_message),
(gen_video_element), (gen_text_element), (gen_audio_element),
(gen_vis_element):
Post missing-plugin messages also when we error out because
converters, textoverlay or auto*sinks are missing (#161922).
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (dynamic_add), (close_pad_link),
(is_demuxer_element), (new_caps):
* gst/playback/gstplaybasebin.c: (source_new_pad):
Fix the case where we try to ref a NULL element when we delay a link
because of unfixed caps.
Set the state of autoplugged decodebins to PAUSED.
RTSP now works in playbin, we can remove it from the blacklist.
Original commit message from CVS:
* gst/playback/Makefile.am:
* gst/playback/gstplaybasebin.c: (string_arr_has_str),
(unknown_type), (setup_subtitle), (gen_source_element):
* gst/playback/gstplaybin.c: (plugin_init):
Post missing-plugin messages on the bus for missing sources and
missing decoders/demuxers/depayloaders; fix error code used when
we're missing an URI handler source; for media types that we are not
handling on purpose at the moment, don't print "don't know how to
handle xyz" messages to the terminal or post missing-plugin
messages on the bus.
* tests/check/elements/playbin.c: (create_playbin),
(GST_START_TEST), (gst_codec_src_uri_get_type),
(gst_codec_src_uri_get_protocols), (gst_codec_src_uri_get_uri),
(gst_codec_src_uri_set_uri), (gst_codec_src_uri_handler_init),
(gst_codec_src_init_type), (gst_codec_src_base_init),
(gst_codec_src_create), (gst_codec_src_class_init),
(gst_codec_src_init), (plugin_init), (playbin_suite):
Add some tests for the missing-plugin stuff.
Original commit message from CVS:
* ext/ogg/Makefile.am:
Dist gstoggdemux.h to fix 'make distcheck'.
* sys/v4l/Makefile.am:
Fix 'make distcheck' even more.
Original commit message from CVS:
Patch by: Günter Thelen <daedalus dot inc at gmx net>
* gst/typefind/gsttypefindfunctions.c: (flac_type_find),
(plugin_init):
Add typefinder for flac-in-ogg in conformance with the ogg-mapping
on flac.sf.net (there appear to be other versions of the first
ogg page in the wild) (#391365).
Original commit message from CVS:
* configure.ac:
Check if localtime_r() is available.
* ext/pango/gstclockoverlay.c: (gst_clock_overlay_render_time):
If localtime_r() is not available, fall back to localtime(). Should
fix build on MingW (#393310).
Original commit message from CVS:
* gst/subparse/gstsubparse.c: (parse_mdvdsub):
* gst/subparse/gstsubparse.h:
Remove spurious 1000 subtrahend when calculating the timestamp from
the frame number and the frame rate . Also, use the frames/second
value specified in the first line of the file, if one is specified
there. Should fix#357503.
* tests/check/elements/subparse.c: (do_test),
(test_tmplayer_do_test), (test_microdvd_do_test), (GST_START_TEST),
(subparse_suite):
Add some basic unit tests for the microdvd subtitle format.
Original commit message from CVS:
2007-01-07 Julien MOUTTE <julien@moutte.net>
* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
(gst_xvimage_buffer_finalize), (gst_xvimagesink_xvimage_new),
(gst_xvimagesink_xvimage_put),
(gst_lookup_xv_port_from_adaptor),
(gst_xvimagesink_get_xv_support), (gst_xvimagesink_setcaps),
(gst_xvimagesink_set_xwindow_id),
(gst_xvimagesink_set_event_handling),
(gst_xvimagesink_set_property), (gst_xvimagesink_get_property),
(gst_xvimagesink_init), (gst_xvimagesink_class_init):
Patch by : Young-Ho Cha <ganadist at chollian dot net>
Fixes : #390076.
Add an adaptor property to select a specific XV adaptor.
* sys/xvimage/xvimagesink.h:
Original commit message from CVS:
2007-01-07 Julien MOUTTE <julien@moutte.net>
* sys/ximage/ximagesink.c: (gst_ximage_buffer_finalize),
(gst_ximagesink_handle_xerror), (gst_ximagesink_ximage_new),
(gst_ximagesink_ximage_destroy), (gst_ximagesink_ximage_put),
(gst_ximagesink_handle_xevents), (gst_ximagesink_setcaps),
(gst_ximagesink_change_state), (gst_ximagesink_set_xwindow_id),
(gst_ximagesink_expose), (gst_ximagesink_set_event_handling):
* sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy),
(gst_xvimage_buffer_finalize), (gst_xvimagesink_handle_xerror),
(gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_put),
(gst_xvimagesink_handle_xevents), (gst_xvimagesink_setcaps),
(gst_xvimagesink_change_state),
(gst_xvimagesink_set_xwindow_id),
(gst_xvimagesink_expose), (gst_xvimagesink_set_event_handling):
Use flow_lock much more to protect every access to xwindow.
Try to catch erros while creating images in case some drivers
are
just generating an XError when the requested image is too big.
Should fix : #354698, #384008, #384060.
* tests/icles/stress-xoverlay.c: (cycle_window),
(create_window):
Implement some stress testing of setting window xid.
Original commit message from CVS:
* win32/common/libgsaudio.def:
Add new exported function.
* win32/common/libgstogg.dsp:
Add gstoggaviparse.c to the build.
* win32/common/libgstvideoscale.dsp:
Add vs_4tap.c to the build.
* win32/common/libgstvorbis.dsp:
Add vorbistag.c to the build.
Original commit message from CVS:
2007-01-06 Andy Wingo <wingo@pobox.com>
* gst-libs/gst/audio/gstbaseaudiosink.c
(gst_base_audio_sink_class_init)
(gst_base_audio_sink_init):
(gst_base_audio_sink_activate_pull): Add an activate_pull function
to baseaudiosink, and tell basesink that we can work in pull mode.
This way the ring buffer thread drives the pipeline directly, if
pull mode is possible. There is some lingering nastiness regarding
capsnego, however.
(gst_base_audio_sink_callback): Implement the callback to pull
data. This interface is a bit light, though -- it should get a
GstFlowReturn return value at least.
Original commit message from CVS:
* ext/ogg/gstoggdemux.c: (gst_ogg_pad_stream_out):
* ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet):
* gst/playback/gstdecodebin2.c:
(gst_decode_group_check_if_blocked):
Printf format and missing argument fixes.
Original commit message from CVS:
* ext/ogg/gstogmparse.c: (gst_ogm_parse_stream_header),
(gst_ogm_parse_change_state):
Activate pads before adding them to the element.
Original commit message from CVS:
* tests/examples/seek/scrubby.c: (main):
* tests/examples/seek/seek.c: (main):
Call g_thread_init() first thing in main() (see #391278).
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/libs/.cvsignore:
* tests/check/libs/netbuffer.c: (GST_START_TEST),
(netbuffer_suite):
Add test for GstNetBuffer + gst_buffer_copy(). Disabled
for the time being, since it's broken, see #393099.
Original commit message from CVS:
2007-01-04 Julien MOUTTE <julien@moutte.net>
* gst-libs/gst/interfaces/xoverlay.c:
(gst_x_overlay_handle_events):
* gst-libs/gst/interfaces/xoverlay.h:
* sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_new),
(gst_ximagesink_set_xwindow_id),
(gst_ximagesink_set_event_handling),
(gst_ximagesink_xoverlay_init), (gst_ximagesink_set_property),
(gst_ximagesink_get_property), (gst_ximagesink_init),
(gst_ximagesink_class_init):
* sys/ximage/ximagesink.h:
* sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_new),
(gst_xvimagesink_set_xwindow_id),
(gst_xvimagesink_set_event_handling),
(gst_xvimagesink_xoverlay_init), (gst_xvimagesink_set_property),
(gst_xvimagesink_get_property), (gst_xvimagesink_init),
(gst_xvimagesink_class_init):
* sys/xvimage/xvimagesink.h:
* tests/icles/stress-xoverlay.c: (toggle_events),
(create_window):
Add a method to the XOverlay interface to allow disabling of
event handling in x[v]imagesink elements. This will let X events
propagate to parent windows which can be usefull in some cases.
Be carefull that the application is then responsible of pushing
navigation events and expose events to the video sink.
Fixes: #387138.
Original commit message from CVS:
* gst-libs/gst/tag/gstvorbistag.c:
* tests/check/libs/tag.c: (GST_START_TEST):
Add vorbistag <=> GStreamer tag mapping for GST_TAG_LOCATION
(fixes#392070).
Original commit message from CVS:
* tests/check/elements/gdpdepay.c: (cleanup_gdpdepay),
(setup_gdpdepay_streamheader):
* tests/check/elements/gdppay.c: (cleanup_gdppay),
(setup_gdppay_streamheader):
Fix the dp tests, but activating the pads for the streamheader tests
too and cleaning up conditionaly
Original commit message from CVS:
* gst/ffmpegcolorspace/avcodec.h:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
(gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt),
(gst_ffmpegcsp_avpicture_fill):
* gst/ffmpegcolorspace/imgconvert.c: (img_convert),
(img_get_alpha_info):
Add 2 new caps arrangements, for 24-bit RGB and BGR in 32-bits, but at the
other end of the word. Fixes: #387073.
Add some inconsequential branch hints in a couple of places.
Original commit message from CVS:
* gst/ffmpegcolorspace/gstffmpegcodecmap.c:
(gst_ffmpeg_caps_to_smpfmt):
The "signed" field in raw audio caps is of boolean type, trying to
extract the value with _get_int() will fail (fix to keep in sync with
the copy in gst-ffmpeg)
Original commit message from CVS:
* gst/typefind/gsttypefindfunctions.c: (vivo_type_find),
(plugin_init):
Add typefinder for VIVO files (my christmas present to the 90s).
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (type_found):
Special-case the text/plain media type: we only want to recognise it
as a 'raw' decoded media type if it comes from a demuxer or subtitle
parser, but not if the entire stream is of text/plain type. If the
entire stream is text/plain, we should just error out.
This fixes playback of audio files with lyrics in totem. Totem can't
distinguish between text files and subtitle files and passes any
.txt file with the same basename as the main file to playbin as
suburi, and playbin will then throw a 'subtitle found, but no video
stream' error, which isn't entirely helpful. See #380342.
Also, with this change we'll show a slightly more correct error
message in case totem passes a playlist file to us (although a
custom error message wording instead of the default text would
probably not be a bad idea either).
Same problem also needs to be fixed for playbin+decodebin2.
* tests/check/Makefile.am:
* tests/check/elements/decodebin.c: (src_handoff_cb),
(decodebin_new_decoded_pad_cb), (GST_START_TEST),
(decodebin_suite):
Add simple unit test for decodebin for the above.
Original commit message from CVS:
* gst/playback/gstdecodebin.c: (gst_decode_bin_change_state):
* gst/playback/gstdecodebin2.c: (gst_decode_bin_change_state):
Refuse to change state to READY when we failed to create any of the
required elements in our instance init function.
Original commit message from CVS:
* docs/libs/gst-plugins-base-libs-sections.txt:
Small docs fixes/updates.
* gst-libs/gst/video/gstvideosink.h:
Remove nonfunctional GST_VIDEO_SINK_CLOCK macro which is a leftover
from the 0.9 days (GST_BASE_SINK_CLOCK, which it points to, was
removed from the base sink API between 0.9.6 and 0.9.7).
API: add GST_VIDEO_SINK_CAST and use it for the height/width
accessor macros, so we don't do a runtime GObject type check every
time we use them.