Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_send_event),
(gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps):
* gst/matroska/matroska-mux.c:
(gst_matroska_mux_video_pad_setcaps),
(gst_matroska_mux_audio_pad_setcaps), (gst_matroska_mux_finish):
Add Real[Audio|Video] support to Matroska containers.
It works fine for:
* decoding real audio/video streams contained in mkv
* 'transmuxing' real (.rm) files into .mkv files
It will not work though for encoding real[audio/video] streams that
don't contain the 'mdpr_data' extra data on the caps.
The reason why this will not work is because I never intended to
duplicate virtually all the 'mdpr' block creation into mkvmux.
Fixes#536067
Original commit message from CVS:
* gst/law/alaw-encode.c: (gst_alaw_enc_init), (gst_alaw_enc_chain):
* gst/law/mulaw-conversion.c:
* gst/law/mulaw-encode.c: (gst_mulawenc_init),
(gst_mulawenc_chain):
The encoder can't really renegotiate at the time they perform a
pad-alloc so make the srcpads use fixed caps.
Check the buffer size after a pad-alloc because the returned size might
not be right when the downstream element does not know the size of the
new buffer (capsfilter). Fixes#549073.
Original commit message from CVS:
Patch by: Filippo Argiolas <filippo dot argiolas at gmail dot com>
* sys/v4l2/gstv4l2tuner.c: (gst_v4l2_tuner_set_norm_and_notify):
v4l2src doesn't have a property named "norm" so don't try to notify
about changes to that property. The "norm" property and related
code are commented out currently. Fixes bug #549090.
Original commit message from CVS:
Patch by: Mike Ruprecht <cmaiku at gmail dot com>
* sys/v4l2/gstv4l2object.c: (gst_v4l2_class_probe_devices):
Reprobe devices again instead of taking a cached list as new
devices could've been plugged in. Fixes bug #549062.
Original commit message from CVS:
* gst/autodetect/Makefile.am:
Don't link the autodetect plugin with GConf as it doesn't
use GConf. Fixes bug #545463.
Original commit message from CVS:
* gst/matroska/ebml-read.c: (gst_ebml_read_element_id),
(gst_ebml_read_element_length), (gst_ebml_read_uint),
(gst_ebml_read_sint), (gst_ebml_read_float),
(gst_ebml_read_header):
Change some GST_ELEMENT_ERRORs to GST_ERROR_OBJECT to make it
possible to ignore errors and not post any ERROR messages on
the bus.
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_contents):
Ignore any errors and not just EOS when parsing the contents of
a SeekHead. Errors here are usually caused by truncated files
and playback of the file works fine. Fixes playback of the
audio_only_chapter_seekbroken.mka file from the MPlayer samples
archive.
Original commit message from CVS:
* gst/multipart/multipartdemux.c:
* gst/multipart/multipartmux.c:
Conform to RFC2046. audio/basic is mulaw 8000Hz mono.
Original commit message from CVS:
* sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_buffer_alloc,
gst_directdraw_sink_bufferpool_clear):
Fix two more buffer ref leaks.
Original commit message from CVS:
Patch by: Ole André Vadla Ravnås <ole.andre.ravnas at tandberg com>
* sys/directdraw/gstdirectdrawsink.c:
(gst_directdraw_sink_show_frame):
Fix buffer ref leak.
Original commit message from CVS:
* gst/wavenc/gstwavenc.c: (gst_wavenc_chain):
Revert the last commit. wavenc still supports width!=depth for 32 bit
width. Thanks Tim.
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_blockgroup_or_simpleblock):
If the duration of a block is unknown only use the timestamp for the
first lace and use GST_CLOCK_TIME_NONE as duration for the following
laces. Otherwise every lace has the same timestamp which leads to
various problems. Really fixes bug #548831.
Original commit message from CVS:
* gst/wavenc/gstwavenc.c: (gst_wavenc_chain):
If we're not allowing width!=depth in wavenc we should also disable
the code that was added to support width!=depth.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream):
Don't calculate the default duration of a frame from the audio sampling
rate. This only works for raw audio if every frame contains a single
sample and results in broken buffer durations for other formats
if no specified default duration is given or the blocks have no
duration. Fixes bug #548831.
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_blockgroup_or_simpleblock):
Allow zero sized blocks instead of returning GST_FLOW_OK. Such blocks
are used for text/plain subtitles as a gap-filler in some files.
Original commit message from CVS:
* sys/v4l2/gstv4l2src.c: (gst_v4l2src_v4l2fourcc_to_structure),
(gst_v4l2_get_caps_info):
Add S910 and PWC formats with a low priority.
* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_format_get_rank),
(gst_v4l2src_probe_caps_for_format):
Add more debugging.
Original commit message from CVS:
* gst/rtsp/gstrtspgoogle.c:
Things that can happen when your brain is in google mode trying to
deal with their google rtsp server extensions and trying to type your
google mail account.
Original commit message from CVS:
* gst/rtsp/Makefile.am:
* gst/rtsp/gstrtsp.c: (plugin_init):
* gst/rtsp/gstrtspgoogle.c: (gst_rtsp_google_before_send),
(gst_rtsp_google_after_send), (gst_rtsp_google_get_transports),
(_do_init), (gst_rtsp_google_base_init),
(gst_rtsp_google_class_init), (gst_rtsp_google_init),
(gst_rtsp_google_finalize), (gst_rtsp_google_change_state),
(gst_rtsp_google_extension_init):
* gst/rtsp/gstrtspgoogle.h:
Add google RTSP extension, it can only handle udp and responds with
unsupported if we do anything else. Fixes#546465.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_connection_send),
(gst_rtspsrc_connection_receive), (gst_rtspsrc_loop_send_cmd),
(gst_rtspsrc_create_transports_string),
(gst_rtspsrc_setup_streams), (gst_rtspsrc_open),
(gst_rtspsrc_close), (gst_rtspsrc_pause):
Make transport setup code a bit better using GString.
Add some more debug.
Check for closed connections before doing anything on them.
Original commit message from CVS:
* ext/pulse/pulsesrc.c: (gst_pulsesrc_class_init),
(gst_pulsesrc_create_stream), (gst_pulsesrc_negotiate),
(gst_pulsesrc_prepare):
* ext/pulse/pulseutil.c: (gst_pulse_gst_to_channel_map),
(gst_pulse_channel_map_to_gst):
* ext/pulse/pulseutil.h:
If downstream provides no channel layout and >2 channels should be
used use the default layout that pulseaudio chooses and also
add this layout to the caps. Fixes bug #547258.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_udp_sink):
Don't try to configure RTCP back to the server when the server did not
give us a valid port number.
Original commit message from CVS:
* gst/videobox/gstvideobox.c: (gst_video_box_set_property):
Use new basetransform method to renegotiate. Fixes#544956.
* tests/icles/Makefile.am:
* tests/icles/videobox-test.c: (make_pipeline), (main):
Add videobox renegotiation example.
Original commit message from CVS:
* ext/pulse/pulsesink.c: (gst_pulsesink_prepare):
* ext/pulse/pulsesrc.c: (gst_pulsesrc_prepare):
The bytes_per_sample and silence_sample fields of the GstRingBufferSpec
are already filled with the correct values by
gst_ring_buffer_parse_caps() so there's no need to set them again
with wrong values.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_read_subindexes_pull),
(gst_avi_demux_read_subindexes_push):
Some AVI 2.0 (ODML) files don't respect the 'specifications' completely
and instead of using the 'ix##' nomenclature, use '##ix'.
They're still valid though, this fixes the duration and indexes for
virtually all the ODML files I have.
Original commit message from CVS:
* ext/pulse/pulsesink.c: (gst_pulsesink_class_init),
(gst_pulsesink_init), (gst_pulsesink_finalize),
(gst_pulsesink_set_volume), (gst_pulsesink_get_volume),
(gst_pulsesink_set_property), (gst_pulsesink_get_property),
(gst_pulsesink_prepare), (gst_pulsesink_change_state):
* ext/pulse/pulsesink.h:
Add "device-name" property to pulsesink too and currently commented
out and not working support for a "volume" property.
Original commit message from CVS:
Patch by: Laszlo Pandy <laszlok2 at gmail dot com>
* ext/pulse/pulsesrc.c: (gst_pulsesrc_class_init),
(gst_pulsesrc_get_property):
Add "device-name" property, which provides a human readable string
for the audio device, to make it more consisten with other audio
sources. Fixes bug #547519.
Original commit message from CVS:
* ext/pulse/pulsemixer.c: (gst_pulsemixer_change_state):
* ext/pulse/pulsemixerctrl.c: (gst_pulsemixer_ctrl_subscribe_cb),
(gst_pulsemixer_ctrl_open), (gst_pulsemixer_ctrl_new),
(gst_pulsemixer_ctrl_free), (gst_pulsemixer_ctrl_timeout_event):
* ext/pulse/pulsemixerctrl.h:
* ext/pulse/pulseprobe.c: (gst_pulseprobe_open),
(gst_pulseprobe_enumerate), (gst_pulseprobe_new),
(gst_pulseprobe_free), (gst_pulseprobe_needs_probe),
(gst_pulseprobe_probe_property), (gst_pulseprobe_get_values):
* ext/pulse/pulseprobe.h:
* ext/pulse/pulsesink.c: (gst_pulsesink_init):
* ext/pulse/pulsesrc.c: (gst_pulsesrc_init), (gst_pulsesrc_delay),
(gst_pulsesrc_change_state):
Improve debugging a bit by including the parent object in pulsemixerctrl
and pulseprobe objects and using GST_WARNING_OBJECT instead of
GST_WARNING.
Use the parent GObject subclass instead of a random struct as GObject
parameter for G_OBJECT_WARN_INVALID_PROPERTY_ID. This fixes a crash
when probing for another property than "device".
Original commit message from CVS:
Patch by: Laszlo Pandy <laszlok2 at gmail dot com>
* ext/pulse/pulsemixer.c: (gst_pulsemixer_set_property):
Fix property probing after the device property is set by calling
set_server when the server property changes. Fixes bug #547518.
Original commit message from CVS:
* sys/v4l2/gstv4l2src.c: (gst_v4l2src_query):
Properly set the maximum latency value, in the same way it is done in
v4lsrc.
* sys/v4l2/v4l2src_calls.c:
Simplify fraction equality check, no need to use GValues for this.
Original commit message from CVS:
* sys/v4l2/gstv4l2src.c: (gst_v4l2src_query):
Add warning messages stating exactly why the latency query failed.
* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_set_capture):
In some cases, the negotiated framerate might be the default one which
is already set internally. But we still need to mark it down in fps_n
and fps_d so that the latency query can happen properly.
Original commit message from CVS:
* docs/plugins/inspect/plugin-1394.xml:
Whoops, forgot one doc file for people who can't/don't build the
raw1394 plugin.
Original commit message from CVS:
* gst/level/gstlevel.c: (gst_level_message_new):
Fix compilation (also known as the classic 'fix code that someone
committed without compiling it first').
Original commit message from CVS:
* tests/examples/spectrum/demo-audiotest.c:
* tests/examples/spectrum/demo-osssrc.c:
Demo how to draw analyzer results synced to the clock.
Original commit message from CVS:
* gst/level/gstlevel.c:
Little renaming (l -> level).
* gst/spectrum/gstspectrum.c:
* gst/spectrum/gstspectrum.h:
Also send full timestamp/duration details here.
Original commit message from CVS:
* gst/level/gstlevel.c:
* gst/level/gstlevel.h:
Send same timestamp/duration details as videoanalysis. This gives
applications better chance to sync analysis results with playback.
Original commit message from CVS:
* gst/matroska/matroska-mux.c:
(gst_matroska_mux_handle_sink_event),
(flac_streamheader_to_codecdata):
We need to drop one additional buffer for FLAC as the fLaC
marker and STREAMINFO block are merged into one buffer in the caps.
Also don't pretend to support NEWSEGMENT events, otherwise we
will most probably write some invalid data.
Original commit message from CVS:
* gst/matroska/matroska-mux.c: (flac_streamheader_to_codecdata),
(gst_matroska_mux_audio_pad_setcaps):
Add support for muxing FLAC into Matroska containers.
Fixes bug #311586.
Original commit message from CVS:
* ext/flac/gstflacenc.c: (gst_flac_enc_check_discont):
Actually provide the variables required for the format string.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_reset),
(gst_matroska_demux_element_send_event),
(gst_matroska_demux_handle_seek_event), (gst_matroska_demux_loop):
* gst/matroska/matroska-demux.h:
Close the current segment if we're doing a non-flushing seek and send
the close-segment and the new segment of the seek from the streaming
thread.
Original commit message from CVS:
* ext/flac/gstflacenc.c: (gst_flac_enc_write_callback),
(gst_flac_enc_check_discont), (gst_flac_enc_chain),
(gst_flac_enc_change_state):
* ext/flac/gstflacenc.h:
Handle non-zero start timestamps correctly, mark header packets as
IN_CAPS and print a warning and suggest using audiorate if stream
discontinuities are detected. When FLAC supports flushing the encoder
somehow this should be done for discontinuities instead.
Remove some unused variables from the instance struct.
Original commit message from CVS:
* ext/flac/gstflacenc.c: (gst_flac_enc_seek_callback):
If seeking failed return the appropiate return value to FLAC.
Otherwise it thinks seeking was successfull and tries to rewrite
parts of the headers which then get appended to the output.
Original commit message from CVS:
Patch by: Frederic Crozat <fcrozat@mandriva.org>
* ext/esd/gstesd.c: (plugin_init):
* ext/flac/gstflac.c: (plugin_init):
* ext/shout2/gstshout2.c: (plugin_init):
* ext/wavpack/gstwavpack.c: (plugin_init):
* sys/oss/gstossaudio.c: (plugin_init):
* sys/v4l2/gstv4l2.c: (plugin_init):
Make sure gettext returns translations in UTF-8 encoding rather
than in the current locale encoding (#546822).
Original commit message from CVS:
* ext/flac/gstflacdec.c:
Add FIXME for 0.11 to simply output everything with width=32 as given
by FLAC and let audioconvert handle the conversions instead of doing
them in flacdec.
Original commit message from CVS:
* sys/v4l2/v4l2src_calls.c: (gst_v4l2src_probe_caps_for_format):
When outputting a pad template range for the size, include a framerate
range too, to avoid 'not a real subset of template caps' errors.
Original commit message from CVS:
Based on a patch by: Jonathan Matthew <notverysmart at gmail dot com>
* ext/flac/Makefile.am:
* ext/flac/gstflac.c: (plugin_init):
* ext/flac/gstflactag.c: (gst_flac_tag_setup_interfaces),
(gst_flac_tag_base_init), (gst_flac_tag_class_init),
(gst_flac_tag_dispose), (gst_flac_tag_init),
(gst_flac_tag_sink_setcaps), (gst_flac_tag_chain),
(gst_flac_tag_change_state):
* ext/flac/gstflactag.h:
Port flactag to 0.10, add documentation for it and clean it up a bit.
Fixes bug #413841.
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* docs/plugins/gst-plugins-good-plugins.hierarchy:
* docs/plugins/gst-plugins-good-plugins.interfaces:
* docs/plugins/gst-plugins-good-plugins.prerequisites:
* docs/plugins/inspect/plugin-flac.xml:
* ext/flac/gstflacdec.c: (gst_flac_dec_base_init):
* ext/flac/gstflacdec.h:
* ext/flac/gstflacenc.c: (gst_flac_enc_base_init):
* ext/flac/gstflacenc.h:
Add flactag and flacenc to the documentation and mark
the private parts of the flacdec instance structure as private.
Also use gst_element_class_set_details_simple() in flacdec and
flacenc.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c:
Use audio/x-qdm for caps. Collect some info - mplayer has a decoder
for it but ffmpeg does not.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c:
Handle the acid chunk and send tempo as part of tags. Other fields are
interesting too, but need more tag-definitions. Fixes#545433.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c:
Refactor wavparse. Call _reset() from dispose() and move old code from
dispose into reset. This way we don't leak taglists when we abort
parsing. Fix some comments. Move code for skipping a chunk into extra
function. Replace chunk sizes with a const to ease readability.
Original commit message from CVS:
* gst/rtsp/URLS:
Add another URL.
* tests/check/elements/id3v2mux.c: (test_taglib_id3mux_with_tags):
* tests/check/elements/rglimiter.c: (GST_START_TEST):
Add some more debug info.
Original commit message from CVS:
* gst/avi/gstavimux.c: (gst_avi_mux_riff_get_avi_header):
Provide cbSize field for audio extra_data size, and take care to
pad extra_data.
Original commit message from CVS:
* ext/flac/gstflacenc.c: (gst_flac_enc_query_peer_total_samples),
(gst_flac_enc_sink_setcaps), (gst_flac_enc_write_callback):
Set an estimate for the total number of samples that will be encoded
if possible to help decoders if the streaminfo can't be rewritten
later (like when muxing into Ogg containers).
Add a warning if we get header packets after data packets as those
will get lost when muxing into Ogg, i.e. rewriting the headers doesn't
work.
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_dec_metadata_callback),
(gst_flac_dec_write):
Support decoding of all depths between 4 and 32 bits and read the
depth from the streaminfo header if needed. Also support all sampling
rates between 1 and 655350 Hz.
* ext/flac/gstflacenc.c:
(gst_flac_enc_caps_append_structure_with_widths),
(gst_flac_enc_sink_getcaps), (gst_flac_enc_sink_setcaps),
(gst_flac_enc_chain):
* ext/flac/gstflacenc.h:
Support encoding in all bit depths supported by the streamable
subformat (i.e. 8, 12, 16, 20 and 24 bits) and all sampling rates
between 1 Hz and 655350 Hz.
Original commit message from CVS:
* ext/soup/gstsouphttpsrc.c:
* ext/soup/gstsouphttpsrc.h:
Fix seeking race condition in #540300
Patch By: Wouter Cloetens <wouter at mind be>
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroskademux_do_index_seek),
(gst_matroska_demux_element_send_event),
(gst_matroska_demux_handle_seek_event),
(gst_matroska_demux_handle_src_event):
When receiving a SEEK event on a specific pad first search for a seek
table entry for the stream of the pad and then fall back to an entry
for a different stream.
Original commit message from CVS:
* configure.ac:
* gst/matroska/matroska-ids.c: (gst_matroska_register_tags):
* gst/matroska/matroska-ids.h:
Build depend on core CVS for the attachment tag.
Original commit message from CVS:
* configure.ac:
* gst/matroska/Makefile.am:
* gst/matroska/lzo.c: (get_byte), (get_len), (copy),
(copy_backptr), (lzo1x_decode), (main):
* gst/matroska/lzo.h:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_read_track_encoding),
(gst_matroska_decompress_data), (gst_matroska_decode_data),
(gst_matroska_decode_buffer),
(gst_matroska_decode_content_encodings),
(gst_matroska_demux_read_track_encodings),
(gst_matroska_demux_add_stream),
(gst_matroska_demux_parse_blockgroup_or_simpleblock):
* gst/matroska/matroska-ids.h:
Decode the codec private data and following ContentEncoding if
necessary.
Support bzip2, lzo and header stripped compression. For lzo use the
ffmpeg lzo implementation as liblzo is GPL licensed.
Fix zlib decompression.
Original commit message from CVS:
* gst/matroska/matroska-mux.c:
(gst_matroska_mux_audio_pad_setcaps):
Fix muxing of MP3/MP2 with different MPEG versions by calculating the
duration of a frame with the new mpegaudioversion caps field.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_finalize),
(gst_matroska_demux_class_init), (gst_matroska_demux_init),
(gst_matroska_demux_combine_flows), (gst_matroska_demux_reset),
(gst_matroska_demux_stream_from_num),
(gst_matroska_demux_tracknumber_unique),
(gst_matroska_demux_add_stream), (gst_matroska_demux_send_event),
(gst_matroska_demux_handle_seek_event),
(gst_matroska_demux_sync_streams),
(gst_matroska_demux_parse_blockgroup_or_simpleblock),
(gst_matroska_demux_loop):
* gst/matroska/matroska-demux.h:
Allow an infinite number of stream inside Matroska containers and use
a GPtrArray for storing them instead of allowing "only" 127 streams.
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_loop_stream_parse_id):
If no Tracks are found error out instead of trying it again until the
end of time.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps):
Fix demuxing of raw integer audio. The samples are unsigned only for 8
bit and signed otherwise, not the other way around.
Original commit message from CVS:
* gst/matroska/matroska-mux.c:
(gst_matroska_mux_audio_pad_setcaps):
Add support for muxing raw float audio now that the spec defines the
endianness and add support for muxing raw integer audio with 24 and
32 bits.
Allow muxing of more than 8 audio channels.
Original commit message from CVS:
* gst/matroska/matroska-mux.c: (gst_matroska_mux_create_uid),
(gst_matroska_mux_reset), (gst_matroska_mux_start):
Add locking to the global array of used track UIDs to prevent random
crashes if more than a single matrosmux instance is used.
Use 64 bit values for the track UIDs.
Use the global GRandom of GLib instead of creating our own one
for the few random numbers we need every single time.
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_dec_setup_seekable_decoder),
(gst_flac_dec_setup_stream_decoder),
(gst_flac_dec_update_metadata):
Always post the audio-codec tag, not only if other tags are present.
Original commit message from CVS:
* ext/soup/gstsouphttpsrc.c:
Don't throw an error when soup completes a msg with status
'cancelled', as that indicates we cancelled a request while
shutting down or seeking, and it's not an error.
Fixes: #540300 again.
Original commit message from CVS:
* gst/goom/convolve_fx.c:
* gst/goom/filters.c:
* gst/goom/goom_config.h:
* gst/goom/goom_core.c:
* gst/goom/goom_tools.h:
Fix build with MSVC: include glib.h to define inline appropriately,
use header guards where needed.
* gst/udp/gstudpnetutils.c:
* gst/udp/gstudpsrc.c:
Fix build with MSVC: use WSA* constants/functions where appropriate, use
g_snprintf rather than snprintf.
Fixes#544433.
Original commit message from CVS:
* gst/debug/gsttaginject.c:
* gst/debug/gsttaginject.h:
Sent tags in _transform_ip() instead of _start(). Fixes#543404
partially.
Original commit message from CVS:
* ext/Makefile.am:
Finish hooking up pulseaudio plugin to the build.
* ext/pulse/pulsemixerctrl.c:
Fix compilation error.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
(qtdemux_parse_trak):
Revert ISO base media spec based pixel-aspect-ratio calculation.
Fixes#543300.