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:
* 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:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
(qtdemux_parse_trak):
Revert ISO base media spec based pixel-aspect-ratio calculation.
Fixes#543300.
Original commit message from CVS:
* gst/udp/gstudpnetutils.c:
EAI_ADDRFAMILY was obsoleted in BSD at some point. Define it to the
old value (1) if it's not defined which should not cause any problems
as we're using it internal only anyway.
Original commit message from CVS:
Patch by: Alessandro Decina <alessandro at nnva dot org>
* gst/avi/gstavidemux.c: (gst_avi_demux_riff_parse_vprp):
Fix build of avidemux on big endian architectures.
Original commit message from CVS:
Patch by: Thiago Sousa Santos <thiagoss at lcc dot ufcg dot edu dot br>
* gst/qtdemux/qtdemux.c: (qtdemux_audio_caps):
Correctly distinguish 8bit vs 16bit raw audio. Fixes#542410.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
(qtdemux_parse_trak):
Set pixel-aspect-ratio in caps using display width and height
provided in track.
Original commit message from CVS:
* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_init),
(gst_rtp_speex_depay_process):
* gst/rtp/gstrtpspeexdepay.h:
Revert last change: Only the jitterbuffer is able to convert RTP to
Gstreamer timestamps and normal (de)payloaders should simply copy it.
Reopens bug #541787.
Original commit message from CVS:
* gst/rtp/gstrtpvrawdepay.c:
Include stdlib.h for atoi().
* gst/rtsp/gstrtspsrc.c:
Use floating point math for latencies < 0 sec in log output.
Original commit message from CVS:
Patch by: Tomasz Grobelny <tomasz at grobelny dot oswiecenia dot net>
* gst/rtp/gstrtpspeexdepay.c: (gst_rtp_speex_depay_init),
(gst_rtp_speex_depay_process):
* gst/rtp/gstrtpspeexdepay.h:
Take timestamp from the RTP packet as a first step to fix problems
with transmission over RTP when the network is not reliable.
Fixes bug #541787.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_class_init),
(gst_matroska_demux_add_stream), (gst_matroska_demux_query),
(gst_matroska_demux_element_query),
(gst_matroska_demux_handle_src_query),
(gst_matroska_demux_handle_seek_event):
Handle position and duration query in DEFAULT format if the
pad's track has a default frame duration set.
Fix seeking now that the segment's duration doesn't contain the
(possibly wrong or inaccurate) duration of the Matroska file.
Original commit message from CVS:
* gst/matroska/ebml-read.c: (_ext2dbl):
Use NAN constant instead of 0.0/0.0 if possible. NAN is defined
in math.h except on MSVC where it is defined in xmath.h.
Fixes compilation with MSVC.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_reset),
(gst_matroska_demux_handle_src_query),
(gst_matroska_demux_parse_info),
(gst_matroska_demux_loop_stream_parse_id):
* gst/matroska/matroska-demux.h:
Don't set the segment duration to the duration from the Matroska
header as this value could be wrong and is just informational.
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_loop_stream_parse_id):
If no Tracks element is found until the first Cluster is found
search it and error out if none is found in the complete file.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_sync_streams):
Resync non-subtitle tracks too if a too large gap compared to other
tracks is detected.
Original commit message from CVS:
* gst/avi/gstavimux.c: (gst_avi_mux_riff_get_avi_header):
* gst/avi/gstavimux.h:
Add 8 bytes to current streamheader to make for a complete one
and to make more players happy. Fixes#519460.
Original commit message from CVS:
* gst/udp/gstudpsrc.c: (gst_udpsrc_start):
Call getsockname() after the call to bind() to get updated values
for the port, etc. This fixes the usage of udpsrc on anonymous
binding and it's usage by rtspsrc. Fixes bugs #539372, #539548.
Thanks to Aurelien Grimaud for pointing out the obvious fix.
Original commit message from CVS:
2008-06-23 Julien Moutte <julien@fluendo.com>
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_read_track_encoding),
(gst_matroska_demux_parse_blockgroup_or_simpleblock): Fix buggy
format strings in macros. (makes it build on OS X again...)
Original commit message from CVS:
* gst/rtp/gstrtpg726pay.c: (gst_rtp_g726_pay_setcaps):
No need to check for audio/G723 and audio/32KADPCM here as they are
no longer supported.
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_add_wvpk_header),
(gst_matroska_demux_audio_caps):
* gst/matroska/matroska-ids.h:
Fix demuxing of WavPack files. Muxing is still broken.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_track_free),
(gst_matroska_demux_add_mpeg_seq_header),
(gst_matroska_demux_add_wvpk_header),
(gst_matroska_demux_check_subtitle_buffer),
(gst_matroska_demux_parse_blockgroup_or_simpleblock),
(gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps),
(gst_matroska_demux_subtitle_caps):
* gst/matroska/matroska-ids.h:
Add a "vfunc" to the track context for postprocessing frames and
convert the wavpack and subtitle postprocessing to this vfunc.
Copy buffer flags in those functions to the new buffers too.
Parse CodecState elements of Blocks.
Add a postprocessing function for MPEG video that adds the sequence
header from the codec private data or codec state to the frames if
it's not already there.
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_blockgroup_or_simpleblock):
If a gap of more than 1/2 second is found in one stream send a
NEWSEGMENT event to not stall the pipeline if the gap is too large.
This also fixes Matroska files where the first buffer doesn't start
at timestamp 0. Fixes bug #429322.
The duration of a block is the default duration multiplied with the
number of laces. Every lace is one frame and the default duration
is the duration of one frame. This fixes playback of files that use
lacing for some tracks.
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_contents_seekentry):
Update FIXME/TODOs and only ignore EOS at the central, important place
instead of several places.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_reset),
(gst_matroska_demux_stream_from_num),
(gst_matroska_demux_encoding_cmp),
(gst_matroska_demux_encoding_order_unique),
(gst_matroska_demux_read_track_encoding),
(gst_matroska_demux_read_track_encodings),
(gst_matroska_demux_tracknumber_unique),
(gst_matroska_demux_add_stream), (gst_matroska_demux_init_stream),
(gst_matroska_demux_parse_tracks),
(gst_matroska_demux_parse_index_cuetrack),
(gst_matroska_demux_parse_index_pointentry),
(gst_matroska_demux_parse_index), (gst_matroska_demux_parse_info),
(gst_matroska_demux_parse_metadata_id_simple_tag),
(gst_matroska_demux_parse_metadata_id_tag),
(gst_matroska_demux_parse_metadata),
(gst_matroska_demux_parse_attached_file),
(gst_matroska_demux_parse_attachments),
(gst_matroska_demux_parse_chapters),
(gst_matroska_demux_sync_streams), (gst_matroska_decode_buffer),
(gst_matroska_demux_parse_blockgroup_or_simpleblock),
(gst_matroska_demux_parse_cluster),
(gst_matroska_demux_parse_contents_seekentry),
(gst_matroska_demux_parse_contents),
(gst_matroska_demux_loop_stream_parse_id),
(gst_matroska_demux_loop):
Improve debug output everywhere and fix the EOS logic.
Check the values of the ContentEncoding elements more strictly and
don't use tracks for which it's invalid.
Check that the track number is unique for this stream.
Check that seek positions are below G_MAXINT64 as our seeks are
int64-based and overflows will fail badly.
After seeks also don't push SimpleBlocks until the first one
containing a keyframe is found. Before this was done only for normal
Blocks.
Update some FIXME/TODOs.
* gst/matroska/ebml-read.c: (gst_ebml_read_peek_bytes),
(gst_ebml_read_utf8), (gst_ebml_read_header):
Improve debug output.
* gst/matroska/matroska-ids.c:
(gst_matroska_track_init_video_context):
* gst/matroska/matroska-ids.h:
* gst/matroska/matroska-mux.c:
(gst_matroska_mux_video_pad_setcaps):
Remove eye mode and don't parse it anymore. We can't use that
information in GStreamer yet so it's useless.
Original commit message from CVS:
* gst/rtsp/URLS:
Some more urls.
* gst/smpte/barboxwipes.c:
Add a comment
* tests/examples/rtp/server-v4l2-H264-alsasrc-PCMA.sh:
Fix typo, add audioresample to the pipeline.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_index_compare):
When comparing index elements with the same time compare their
block number.
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_attached_file)
Init variable to NULL to avoid compiler warning.
Original commit message from CVS:
* gst/matroska/Makefile.am:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_reset),
(gst_matroska_demux_parse_attached_file),
(gst_matroska_demux_parse_attachments),
(gst_matroska_demux_parse_contents_seekentry),
(gst_matroska_demux_loop_stream_parse_id):
* gst/matroska/matroska-demux.h:
* gst/matroska/matroska-ids.c: (gst_matroska_register_tags):
* gst/matroska/matroska-ids.h:
* gst/matroska/matroska.c: (plugin_init):
Parse Attachments and post them as GST_TAG_IMAGE if we detect
it as image and otherwise as GST_TAG_ATTACHMENT. Include filename
and description of the attachments in the caps. Fixes bug #537622.
Original commit message from CVS:
* gst/matroska/ebml-read.c: (gst_ebml_read_peek_bytes):
Return GST_FLOW_UNEXPECTED instead of GST_FLOW_ERROR on short reads.
If we get less bytes than requested we can't do anything except doing
our EOS logic.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_reset),
(gst_matroskademux_do_index_seek),
(gst_matroska_demux_parse_index_cuetrack),
(gst_matroska_demux_parse_index_pointentry),
(gst_matroska_index_compare), (gst_matroska_demux_parse_index),
(gst_matroska_demux_parse_metadata):
* gst/matroska/matroska-demux.h:
* gst/matroska/matroska-ids.h:
Use a GArray for storing the Cue (i.e. seek) information, store
the CueTrackPositions for every track, store the block number
and optimize searching in the array by sorting it after the last
element was added.
Fix a small memory leak when trying to parse a tags element that was
already parsed.
Original commit message from CVS:
* gst/matroska/matroska-mux.c: (gst_matroska_mux_reset),
(gst_matroska_mux_start), (gst_matroska_mux_finish),
(gst_matroska_mux_write_data):
* gst/matroska/matroska-mux.h:
Don't write another SeekHead which indexes all Clusters to the end of
the file. This isn't useful for anything and just increases filesize.
Original commit message from CVS:
* gst/matroska/ebml-read.c:
* gst/matroska/ebml-read.h:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_reset),
(gst_matroska_demux_parse_metadata):
* gst/matroska/matroska-demux.h:
Make sure that every Tags element is only parsed once and it's
containing tags are only posted once.
Original commit message from CVS:
* gst/matroska/ebml-read.c: (gst_ebml_peek_id),
(gst_ebml_read_header):
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
(gst_matroska_demux_parse_tracks),
(gst_matroska_demux_parse_index_cuetrack),
(gst_matroska_demux_parse_index_pointentry),
(gst_matroska_demux_parse_index), (gst_matroska_demux_parse_info),
(gst_matroska_demux_parse_metadata_id_simple_tag),
(gst_matroska_demux_parse_metadata_id_tag),
(gst_matroska_demux_parse_metadata),
(gst_matroska_demux_parse_attachments),
(gst_matroska_demux_parse_chapters),
(gst_matroska_demux_parse_blockgroup_or_simpleblock),
(gst_matroska_demux_parse_cluster),
(gst_matroska_demux_parse_contents_seekentry),
(gst_matroska_demux_parse_contents),
(gst_matroska_demux_loop_stream_parse_id):
Handle EBML elements like Void or CRC32 in the EbmlRead base class
already. They're not useful in the matroska parser and only cause
additional code.
Original commit message from CVS:
* gst/matroska/ebml-read.c: (gst_ebml_level_free),
(gst_ebml_finalize), (gst_ebml_read_change_state),
(gst_ebml_read_element_level_up), (gst_ebml_read_master):
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_contents_seekentry):
Reverse the level list as we usually are only interested in the
first element or want to add a new first element. Having the
first element stored at the end and calling g_list_last() and
g_list_append() is more expensive.
Also use GSlice for allocating the GstEbmlLevel structs.
Original commit message from CVS:
* gst/debug/gsttaginject.c: (gst_tag_inject_finalize),
(gst_tag_inject_class_init), (gst_tag_inject_init):
Don't unref NULL taglist in finalize. Don't use c++ style
comments.
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_metadata_id_simple_tag):
* gst/matroska/matroska-mux.c: (gst_matroska_mux_write_simple_tag),
(gst_matroska_mux_write_data):
Use gst_value_serialize() and gst_value_deserialize() for transforming
tags from some GType to a string and the other way around. The default
transformations in GLib don't include transformations from string to
number types.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_reset),
(gst_matroska_demux_parse_tracks),
(gst_matroska_demux_parse_index), (gst_matroska_demux_parse_info),
(gst_matroska_demux_parse_attachments),
(gst_matroska_demux_parse_chapters),
(gst_matroska_demux_parse_contents_seekentry),
(gst_matroska_demux_loop_stream_parse_id):
* gst/matroska/matroska-demux.h:
Only parse Tracks, SeekHead and SegmentInfo elements once but allow
Tags multiple times. The first ones can appear more than once but must
contain the same content as the first for backup purposes so we ignore
all but the first one. Tags can appear multiple times with different
content.
Jump to all elements except Clusters that are available from a
SeekHead to make it more likely to have all required informations
before getting to the first Clusters.
Add dummy functions for parsing Attachments and Chapters.
Original commit message from CVS:
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init), (gst_udpsrc_init),
(gst_udpsrc_create), (gst_udpsrc_set_property),
(gst_udpsrc_get_property), (gst_udpsrc_start), (gst_udpsrc_stop):
* gst/udp/gstudpsrc.h:
Add property to control automatic join/leave of multicast groups.
Add G_LIKELY.
Remove setting caps on buffers explicitly, basesrc does that for us now.
Improve debug info.
Convert some non-fatal error into warnings.
Use g_ntohs for better portability.
Leave multicast groups when stopping.
When using external sockets, use getsockname() on them to fill up the
addr structure before calling methods that use the structure.
Should all fix#536903.
API: GstUDPSrc::auto-multicast property
Original commit message from CVS:
* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_init_send),
(gst_multiudpsink_remove):
Fix a typo and do some small cleanups.
Original commit message from CVS:
Patch by: Olivier Crete <tester at tester dot ca>
* gst/rtp/gstrtptheoradepay.c: (gst_rtp_theora_depay_setcaps):
Make the delivery-method mandatory on the caps and only accept inline
for now.
Reverse strcmp checks for delivery-method.
* gst/rtp/gstrtpvorbisdepay.c: (gst_rtp_vorbis_depay_setcaps):
Make delivery method optional when parsing caps and note this in the
caps.
Reverse strcmp checks for delivery-method.
* gst/rtp/gstrtpvorbispay.c:
Update a comment to note that the delivery-method is optional,
Fixes#537675.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_mcast):
Set udpsrc for receiving data from multicast groups to PAUSED instead of
leaving them in READY. Fixes#537832.
Original commit message from CVS:
* gst/avi/gstavimux.c:
Simplify code. gst_tag_list_merge() does the NULL checks. Add a FIXME
for a random constant in tagmuxing code.
Original commit message from CVS:
* gst/matroska/matroska-mux.c: (gst_matroska_mux_request_new_pad),
(gst_matroska_mux_release_pad), (gst_matroska_mux_write_data):
Update the counter for the number of streams when pads are added or
removed. This will make sure that a seek table is generated for
files with just one audio stream.
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_parse_metadata_id_simple_tag):
* gst/matroska/matroska-ids.h:
* gst/matroska/matroska-mux.c: (gst_matroska_mux_write_simple_tag):
Add some more tags, improve debugging a bit and make sure that
GValue transformation has succeeded before using the result
as a tag.
Original commit message from CVS:
Patch by: Olivier Crete <tester at tester dot ca>
* gst/rtp/gstrtptheorapay.c:
The Theora RTP payloader only supports the "inline" delievery method
so let's declare this on the caps of the static pad template.
Fixes bug #537675.
Original commit message from CVS:
* gst/videomixer/videomixer.c: (gst_videomixer_fill_queues),
(gst_videomixer_blend_buffers):
Use stream_time to synchronize the object properties.
Use running_time of the master pad to timestamp outgoing buffers.
Fix the initial segment event to extend an unknown amount of time.
Fixes#537361.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
(gst_avi_demux_parse_index), (gst_avi_demux_massage_index),
(gst_avi_demux_calculate_durations_from_index),
(gst_avi_demux_stream_header_push),
(gst_avi_demux_stream_header_pull):
Try to ignore unparsable/unknown streams and give a warning instead of
erroring out. Fixes#537377.
Original commit message from CVS:
* gst/matroska/ebml-write.c: (gst_ebml_write_float):
Use GDOUBLE_TO_BE() instead of (probably slower) custom code.
* gst/matroska/matroska-demux.c: (gst_matroska_demux_base_init),
(gst_matroska_demux_class_init), (gst_matroska_demux_init),
(gst_matroska_track_free), (gst_matroska_demux_encoding_cmp),
(gst_matroska_demux_read_track_encodings),
(gst_matroska_demux_add_stream),
(gst_matroska_demux_handle_src_query),
(gst_matroska_demux_init_stream),
(gst_matroska_demux_parse_index_cuetrack),
(gst_matroska_demux_parse_index_pointentry),
(gst_matroska_demux_parse_info),
(gst_matroska_demux_parse_metadata_id_simple_tag),
(gst_matroska_demux_parse_metadata),
(gst_matroska_demux_add_wvpk_header), (gst_matroska_decode_buffer),
(gst_matroska_demux_parse_blockgroup_or_simpleblock),
(gst_matroska_demux_parse_cluster),
(gst_matroska_demux_parse_contents_seekentry),
(gst_matroska_demux_loop_stream_parse_id),
(gst_matroska_demux_loop), (gst_matroska_demux_video_caps),
(gst_matroska_demux_audio_caps),
(gst_matroska_demux_subtitle_caps):
* gst/matroska/matroska-demux.h:
* gst/matroska/matroska-ids.c:
(gst_matroska_track_init_subtitle_context):
* gst/matroska/matroska-ids.h:
* gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init),
(gst_matroska_mux_class_init), (gst_matroska_mux_init),
(gst_matroska_mux_create_uid), (gst_matroska_mux_reset),
(gst_matroska_mux_video_pad_setcaps),
(gst_matroska_mux_audio_pad_setcaps),
(gst_matroska_mux_subtitle_pad_setcaps),
(gst_matroska_mux_request_new_pad),
(gst_matroska_mux_track_header), (gst_matroska_mux_start),
(gst_matroska_mux_write_simple_tag), (gst_matroska_mux_finish),
(gst_matroska_mux_write_data), (gst_matroska_mux_collected),
(gst_matroska_mux_set_property):
Add many FIXMEs/TODOs all over the matroska muxer and demuxer
elements, do some checks for valid values in the demuxer, handle
tracktimecodescale in the demuxer, set correct default values for all
settings in the demuxer, review and add all missing matroska
IDs and some more raw YUV formats, and some trivial cleanup.
Original commit message from CVS:
* gst/interleave/deinterleave.c: (gst_deinterleave_add_new_pads),
(gst_deinterleave_src_query):
* gst/interleave/interleave.c: (gst_interleave_src_query_duration),
(gst_interleave_src_query):
Properly implement duration and position queries in bytes format. We
have to take the upstream reply and divide/multiply it by the number
of channels to get the correct result.
Original commit message from CVS:
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_stream_configure_udp_sink):
Use the new gst_rtsp_connection_get_ip() to access the IP address
of a GstRTSPConnection since it is a private member.
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_extract_picture_buffer):
* gst/id3demux/id3v2frames.c: (parse_picture_frame):
Use new utility functions in libgsttag to process coverart (#512333).
Original commit message from CVS:
* gst/matroska/ebml-write.c: (gst_ebml_write_finalize),
(gst_ebml_write_set_cache):
Unref the write cache in finalize if it was set and add add "FIXME"
to a comment that needs it.
Original commit message from CVS:
* gst/interleave/interleave.c: (gst_interleave_pad_get_type),
(gst_interleave_pad_get_property), (gst_interleave_pad_class_init),
(gst_interleave_request_new_pad), (gst_interleave_release_pad):
* gst/interleave/interleave.h:
Use an always increasing integer for the number in the name of the
requested sink pads to guarantuee a unique name. Add a "channel"
property to GstInterleavePad to make it possible for applications
to retrieve the channel number in the output for every pad.
Use g_type_register_static_simple() instead of
g_type_register_static() to save some relocations.
Original commit message from CVS:
* gst/interleave/interleave.c: (gst_interleave_pad_get_type),
(gst_interleave_change_state):
Stop GstCollectPads before calling the parent's state change function
when going from PAUSED to READY as we otherwise deadlock.
Fixes bug #536258.
Original commit message from CVS:
* gst/interleave/interleave.c:
(gst_interleave_check_channel_positions),
(gst_interleave_set_channel_positions),
(gst_interleave_class_init):
Use new gst_audio_check_channel_positions() function and register
the GstInterleavePad type from a threadsafe context.
Original commit message from CVS:
* gst/interleave/interleave.c: (gst_interleave_pad_get_type),
(gst_interleave_finalize), (gst_audio_check_channel_positions),
(gst_interleave_set_channel_positions),
(gst_interleave_class_init), (gst_interleave_init),
(gst_interleave_set_property), (gst_interleave_get_property),
(gst_interleave_request_new_pad), (gst_interleave_release_pad),
(gst_interleave_sink_setcaps), (gst_interleave_src_query_duration),
(gst_interleave_src_query_latency), (gst_interleave_collected):
* gst/interleave/interleave.h:
Allow setting channel positions via a property and allow using the
channel positions on the input as the channel positions of the output.
Fix some broken logic and memory leaks.
* tests/check/Makefile.am:
* tests/check/elements/interleave.c: (src_handoff_float32),
(sink_handoff_float32), (GST_START_TEST), (interleave_suite):
Add unit tests for checking correct handling of channel positions.
Original commit message from CVS:
* gst/videomixer/videomixer.c: (gst_videomixer_query_duration),
(gst_videomixer_query_latency):
When using gst_element_iterate_pads() one has to unref every pad
after usage.
Original commit message from CVS:
2008-05-31 Julien Moutte <julien@fluendo.com>
* gst/qtdemux/qtdemux.c: (gst_qtdemux_find_keyframe),
(gst_qtdemux_find_segment), (gst_qtdemux_perform_seek),
(gst_qtdemux_seek_to_previous_keyframe),
(gst_qtdemux_activate_segment), (gst_qtdemux_loop): Make sure we
we don't clip the segment's stop using the main segment duration
as
that could crop quite some video frames. Make reverse playback
support
more robust and support edit lists. Support seeking to the last
frame,
and fix reverse looping playback. Add some debugging.
* win32/common/config.h: Updated.
Original commit message from CVS:
* gst/equalizer/gstiirequalizer.c:
(gst_iir_equalizer_transform_ip):
Don't clip float/double samples, correctly unset passthrough mode
and use better rounding for integer samples.
Original commit message from CVS:
* gst/equalizer/gstiirequalizer.c:
(gst_iir_equalizer_band_set_property), (gst_iir_equalizer_init),
(setup_filter), (set_passthrough), (update_coefficients),
(gst_iir_equalizer_compute_frequencies),
(gst_iir_equalizer_transform_ip):
* gst/equalizer/gstiirequalizer.h:
Update the filter coefficients only when needed in the transform_ip
function and correctly set the element into passthrough mode if the
gain of all bands is 0.
Original commit message from CVS:
Based on patch by: Sebastian Keller <sebastian-keller at gmx dot de>
* gst/alpha/gstalpha.c: (gst_alpha_class_init), (gst_alpha_init),
(gst_alpha_set_property), (gst_alpha_get_property),
(gst_alpha_chroma_key_ayuv), (gst_alpha_chromakey_row_i420):
Try to skip pixels or areas that are too dark or too bright for us to do
meaningfull color detection.
Added properties to control the sensitivity to light and darkness.
Added some small cleanups. Fixes#512345.
Original commit message from CVS:
* gst/videomixer/videomixer.c: (gst_videomixer_reset),
(gst_videomixer_init), (gst_videomixer_query_duration),
(gst_videomixer_query_latency), (gst_videomixer_query),
(gst_videomixer_blend_buffers):
* gst/videomixer/videomixer.h:
Implement position (in time), duration and latency queries.
Original commit message from CVS:
Patch by: j^ <j at oil21 dot org>
* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
Add caps for DVCPRO50 and DVCPRO HD PAL/NTSC. See #526481.
Original commit message from CVS:
* gst/interleave/deinterleave.c:
Add another example launch line.
* gst/interleave/interleave.c: (interleave_24),
(gst_interleave_finalize), (gst_interleave_base_init),
(gst_interleave_class_init), (gst_interleave_init),
(gst_interleave_request_new_pad), (gst_interleave_release_pad),
(gst_interleave_change_state), (__remove_channels),
(__set_channels), (gst_interleave_sink_getcaps),
(gst_interleave_set_process_function),
(gst_interleave_sink_setcaps), (gst_interleave_sink_event),
(gst_interleave_src_query_duration), (gst_interleave_src_query),
(forward_event_func), (forward_event), (gst_interleave_src_event),
(gst_interleave_collected):
* gst/interleave/interleave.h:
Major rewrite of interleave using GstCollectpads. This new version
also supports almost all raw audio formats and has better caps
negotiation. Fixes bug #506594.
Also update docs and add some more examples.
* tests/check/elements/interleave.c: (interleave_chain_func),
(GST_START_TEST), (src_handoff_float32), (sink_handoff_float32),
(interleave_suite):
Add some more extensive unit tests for interleave.