Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_trim_buffer),
(gst_tag_demux_read_range):
* gst/id3demux/gstid3demux.c: (gst_id3demux_trim_buffer),
(gst_id3demux_read_range):
Don't return FLOW_UNEXPECTED when a buffer is before
the start of the stream (which might happen with
large ID3v2 tags if the tag reading was done pullrange
based and we then switched to push mode later on).
Fixes regression introduced by commit from June 29th.
Original commit message from CVS:
* ext/taglib/gstid3v2mux.cc:
Make UTF-8 the default encoding when writing string
tags (before, our UTF-8 strings would automatically
be converted to ISO-8859-1 by taglib and written as
ISO-8859-1 fields if that was possible).
* tests/check/elements/id3v2mux.c: (utf8_string_in_buf),
(test_taglib_id3mux_check_tag_buffer), (identity_cb),
(test_taglib_id3mux_with_tags):
Add test case that makes sure our UTF-8 strings have
actually been written into the tag as UTF-8.
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain):
* gst/id3demux/gstid3demux.c: (gst_id3demux_chain):
Return FLOW_UNEXPECTED when at the end of the file, not
FLOW_ERROR. Fixes 'internal stream error' errors that
would sometimes occur in totem when scrubbing to the
end of an ID3v1 tagged mp3 file.
Original commit message from CVS:
* ext/libpng/gstpngdec.c: (gst_pngdec_init), (user_info_callback),
(buffer_clip), (user_end_callback), (gst_pngdec_chain),
(gst_pngdec_sink_event), (gst_pngdec_change_state):
* ext/libpng/gstpngdec.h:
Implement buffer clipping/dropping using GstSegment.
This provides accurate seeking.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
(gst_avi_demux_read_subindexes), (gst_avi_demux_parse_stream),
(gst_avi_demux_handle_seek), (gst_avi_demux_aggregated_flow),
(gst_avi_demux_process_next_entry), (push_tag_lists),
(gst_avi_demux_stream_data), (gst_avi_demux_loop):
* gst/avi/gstavidemux.h:
Proper aggregation of each stream's GstFlowReturn in order to figure out
whether the task should stop or not.
Don't send inline events before pushing out a NEW_SEGMENT, more
specifically for GST_TAG_EVENT.
Change a GST_ERROR to a GST_WARNING for a non-fatal situation in reading
sub-indexes.
Original commit message from CVS:
Patch by: Brian Cameron <brian dot cameron at sun dot com>
* sys/sunaudio/gstsunaudiomixerctrl.c:
(gst_sunaudiomixer_ctrl_build_list):
Move "Monitor" slider to input tab so it works more like
sdtaudiocontrol, which is what people on Solaris are used
to using for their mixer program (#346259).
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
(gst_matroska_demux_send_event),
(gst_matroska_demux_loop_stream_parse_id):
* gst/matroska/matroska-ids.h:
Send tag event after newsegment event.
Original commit message from CVS:
* gst/id3demux/gstid3demux.c: (gst_id3demux_trim_buffer),
(gst_id3demux_read_range):
Make sure we don't return GST_FLOW_OK with a NULL buffer in
certain cases where a read beyond the end of the file is
requested. Fixes#345930.
* gst/apetag/gsttagdemux.c: (gst_tag_demux_trim_buffer),
(gst_tag_demux_read_range):
Fix same issue here as well.
Original commit message from CVS:
2006-06-29 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* sys/ximage/gstximagesrc.c: (gst_ximage_src_ximage_get):
Fix hypothetical crash.
Original commit message from CVS:
Patch by: Brian Cameron <brian dot cameron at sun dot com>
* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_prepare):
Do not modify the ports value. If the user has turned off the
built-in speakers, then we should not reset it in the prepare
function, since this causes the built-in speakers to turn
back on anytime the user changes a track in totem, rhythmbox,
etc. (#346066).
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_check_subtitle_buffer),
(gst_matroska_demux_parse_blockgroup_or_simpleblock),
(gst_matroska_demux_subtitle_caps):
* gst/matroska/matroska-ids.c:
(gst_matroska_track_init_subtitle_context):
* gst/matroska/matroska-ids.h:
Try to fix up broken matroska files containing subtitle
streams with non-UTF8 character encodings (courtesy of
mkvmerge) using either the encoding specified in the
GST_SUBTITLE_ENCODING environment variable or the
current locale's character set if it is non-UTF8.
Fixes#337076.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (parse_picture_frame):
Set image type from APIC frame as "image-type" field
of GST_TAG_IMAGE buffer caps (#344605).
Original commit message from CVS:
* gst/rtsp/rtspconnection.c: (inet_aton), (rtsp_connection_send),
(rtsp_connection_close), (rtsp_connection_free):
Use better G_OS_* macros. Fixes#345301 some more.
Original commit message from CVS:
Patch by: Brian Cameron <brian dot cameron at sun dot com>
* sys/sunaudio/Makefile.am:
* sys/sunaudio/gstsunaudio.c: (plugin_init):
* sys/sunaudio/gstsunaudiomixerctrl.c:
(gst_sunaudiomixer_ctrl_build_list), (gst_sunaudiomixer_ctrl_new),
(gst_sunaudiomixer_ctrl_list_tracks),
(gst_sunaudiomixer_ctrl_get_volume),
(gst_sunaudiomixer_ctrl_set_volume),
(gst_sunaudiomixer_ctrl_set_mute),
(gst_sunaudiomixer_ctrl_set_record):
* sys/sunaudio/gstsunaudiomixerctrl.h:
* sys/sunaudio/gstsunaudiomixertrack.c:
(gst_sunaudiomixer_track_init), (gst_sunaudiomixer_track_new):
* sys/sunaudio/gstsunaudiomixertrack.h:
* sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_dispose),
(gst_sunaudiosrc_base_init), (gst_sunaudiosrc_class_init),
(gst_sunaudiosrc_init), (gst_sunaudiosrc_set_property),
(gst_sunaudiosrc_get_property), (gst_sunaudiosrc_getcaps),
(gst_sunaudiosrc_open), (gst_sunaudiosrc_close),
(gst_sunaudiosrc_prepare), (gst_sunaudiosrc_unprepare),
(gst_sunaudiosrc_read), (gst_sunaudiosrc_delay),
(gst_sunaudiosrc_reset):
* sys/sunaudio/gstsunaudiosrc.h:
Add a SunAudio source plugin.
Support stereo and right/left channel gain in the mixer plugin.
Support the RECORD flag so that you can switch between line-input and
microphone in gnome-volume-control.
Code cleanups like using an enumerator for track number instead of an
integer. Fixes#344923.
Original commit message from CVS:
Patch by: Joni Valtanen <joni dot valtanen at movial dot fi>
* gst/rtsp/rtspconnection.c: (inet_aton), (rtsp_connection_send),
(rtsp_connection_close):
Make RTSP plugin compile on windows. Fixes#345301.
Some changes to original patch to catch errors better.
use ifdef WIN32 instead of ifndef.
Original commit message from CVS:
2006-06-19 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* configure.ac:
If we have libraw1394 >= 1.2.1, then we need libiec61883.
Original commit message from CVS:
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_chain):
After a failed buffer alloc, we need to abort the jpeg decoding (it
started when parsing headers to figure out how many bytes we need
to request downstream).
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet be>
* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek):
Make sure we don't read beyond the end of the file (#345232).
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream):
No language specified means the implied language is English
according to the matroska spec (partially fixes#344708);
add some more debug output.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_peek_chunk_info),
(gst_wavparse_peek_chunk), (gst_wavparse_stream_headers),
(gst_wavparse_chain):
When operating chain-based, don't make any assumptions about the
chunking of the incoming data and make streaming work on days other
than the second Thursday after a full moon. Also fix up debug
messages here and there and make use of the most excellent new
gst_pad_query_peer_duration() utility function.
Skip any 'bext' chunks in front of the 'fmt ' chunk. Fixes#343837.
* gst/wavparse/gstwavparse.h:
Remove trailing comma after last enum value, some compilers don't
like that.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_seek):
Prevent out of bounds array access when scrubbing towards
the end of the file between the last index entry and the
end. Fixes occasional 'start <= stop' newsegment event
assertions when scrubbing in MJPEG files.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
(scan_encoded_string), (parse_picture_frame):
Extract images from ID3v2 tags (APIC frames). Fixes#339704.
* configure.ac:
Require core >= 0.10.8 (for GST_TAG_IMAGE and
GST_TAG_PPEVIEW_IMAGE used in the patch above).
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_get_upstream_size):
* gst/id3demux/gstid3demux.c: (id3demux_get_upstream_size):
Use gst_pad_query_peer_duration() utility function here.
Original commit message from CVS:
* tests/examples/level/Makefile.am:
Add -lm to LIBS for pow() function, don't assume one of our
dependencies (such as libxml-2.0) drags it in automatically
(#343603).
Original commit message from CVS:
Patch by: Peter Kjellerstedt <pkj at axis dot com>
* configure.ac:
We should use $SED and not $(SED) in configure.ac (#343678).
Original commit message from CVS:
Patch by: Brian Cameron <brian dot cameron at sun dot com>
* sys/sunaudio/gstsunaudiomixerctrl.c:
(gst_sunaudiomixer_ctrl_open), (gst_sunaudiomixer_ctrl_build_list),
(gst_sunaudiomixer_ctrl_new), (gst_sunaudiomixer_ctrl_set_volume),
(gst_sunaudiomixer_ctrl_set_mute):
* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_class_init),
(gst_sunaudiosink_init), (gst_sunaudiosink_prepare),
(gst_sunaudiosink_write):
Attached find a patch that fixes a number of bugs with the SunAudio mixer
plugin and fixes#344101:
1. The gst_sunaudiomixer_ctrl_build_list kept appending the same 3 tracks onto
the tracklist causing gnome-volume-control's preferences dialog to be messed
up and would core dump if you checked/unchecked any item.
2. We weren't previously setting the MUTE flag properly. Fixing this makes
gnome-volume-control work better.
3. Now we properly define the input track to be GST_MIXER_TRACK_INPUT and
the monitor to be GST_MIXER_TRACK_OUTPUT, so that makes gnome-volume-control
look better.
Also some minor cleanup in gstsunaudiosink.c.
Original commit message from CVS:
2006-06-07 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* configure.ac:
We now require libraw1394 >= 1.1.0 and that version onwards all
have .pc files.
Original commit message from CVS:
2006-05-31 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* ext/raw1394/gstdv1394src.c: (gst_dv1394src_bus_reset):
Fix bus reset when using libiec61883
Original commit message from CVS:
* gst/avi/gstavidemux.c:
add an explicit dll imported declaration for GST_CAT_EVENT+WIN32
* win32/MANIFEST:
sort file listing
* win32/vs6/libgstavi.dsp:
add gstavimux.c to the project
* win32/vs6/libgstid3demux.dsp:
add link to zlib library
* win32/vs6/libgstmatroska.dsp:
add matroska-ids.c to the project
Original commit message from CVS:
* gst/alpha/gstalphacolor.c: (gst_alpha_color_transform_caps):
* gst/debug/negotiation.c: (gst_negotiation_update_caps):
* gst/rtp/gstrtpilbcdepay.c: (gst_rtp_ilbc_depay_setcaps):
GST_PTR_FORMAT should be used to print caps in debug statements.
Original commit message from CVS:
Patch by: Sebastian Dröge <slomo at ubuntu dot com>
* gst/apetag/gstapedemux.c: (ape_demux_get_gst_tag_from_tag),
(ape_demux_parse_tags):
Some clean-ups and additions: map APE 'file' tag to
GST_TAG_LOCATION (#343123); add support for extracting
the track count and clean up parsing a bit (#343127).
Original commit message from CVS:
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_finalize),
(gst_jpeg_dec_init), (gst_jpeg_dec_chain),
(gst_jpeg_dec_sink_event), (gst_jpeg_dec_change_state):
* ext/jpeg/gstjpegdec.h:
Clip outgoing buffers according to currently configured segment.
Original commit message from CVS:
* ext/taglib/gstid3v2mux.cc:
Handle writing of track-count or album-volume-count without
track-number or albume-volume-number (in this case the number
will just be set to 0).
* tests/check/elements/id3v2mux.c: (test_taglib_id3mux_check_tags):
It would be nice if we actually checked the values received for
track/album-volume number/count in _check_tags(), rather than
setting them again ...
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3v2_tag_to_taglist):
A track/volume number or count of 0 does not make sense,
just ignore it along with negative numbers (a tag might
only contain a track count without a track number).
Original commit message from CVS:
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init),
(gst_jpeg_dec_sink_event):
Abort decompression when receiving FLUSH_STOP. This should avoid
issues when interrupting decoding with flushes.
Original commit message from CVS:
* README:
Replace current README (containing the release notes from
some 0.9.x version) with a proper README taken from the core.
Original commit message from CVS:
* ext/dv/gstdvdemux.c: (gst_dvdemux_loop):
Implement EOS correctly by either posting
SEGMENT_DONE or pushing an EOS message depending
on the seek type. Fixes#342592
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet be>
* gst/matroska/matroska-mux.c: (gst_matroska_mux_change_state):
gst_collect_pads_stop() needs to be called before chaining up
to the parent class (#342734).
Original commit message from CVS:
* ext/flac/Makefile.am:
* ext/flac/flac_compat.h:
* ext/flac/gstflac.c:
* ext/flac/gstflacdec.c: (gst_flac_dec_init):
* ext/flac/gstflacenc.c:
Remove backwards compatibility cruft for dealing with FLAC API
changes in the 1.0.x series - we require 1.1.1 or newer these days.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
(gst_matroska_demux_push_xiph_codec_priv_data),
(gst_matroska_demux_parse_blockgroup_or_simpleblock),
(gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps):
* gst/matroska/matroska-ids.h:
* gst/matroska/matroska-mux.c: (gst_matroska_mux_base_init),
(gst_matroska_mux_video_pad_setcaps),
(xiph3_streamheader_to_codecdata),
(vorbis_streamheader_to_codecdata),
(theora_streamheader_to_codecdata),
(gst_matroska_mux_audio_pad_setcaps),
(gst_matroska_mux_write_data):
Add support for muxing/demuxing theora video (#342448; too bad
none of the usual linux players can actually play this). Playback
in GStreamer will require additional changes to theoradec in -base.
Refactor streamheaders <=> CodecPrivateData code a bit; some small
cleanups.
Original commit message from CVS:
* ext/jpeg/gstjpegdec.c: (hresamplecpy1),
(gst_jpeg_dec_decode_indirect), (gst_jpeg_dec_chain):
Fix crashes when the horizontal subsampling is 1.
Fixes#342097.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3v2_tag_to_taglist):
Don't output any tag when we encounter a negative track number - the
tag type is uint, so we end up outputting huge positive numbers
instead. (Fixes: #342029)
Original commit message from CVS:
2006-05-18 Philippe Kalaf <philippe.kalaf at collabora.co.uk>
* rtp/gst/gstrtph263pay.c:
Properly set static caps for H263 at 34.
Original commit message from CVS:
Patch by: James "Doc" Livingston <doclivingston gmail com>
* ext/taglib/gsttaglibmux.c: (gst_tag_lib_mux_render_tag):
Merge event tags and tag setter tags correctly (#339918). Also,
don't leak taglist in case of an error.
Original commit message from CVS:
* gst/law/mulaw-decode.c: (mulawdec_getcaps):
We can only do caps intersection if the othercaps are non-empty and not
ANY. Else we return the pad template (base_caps).
Original commit message from CVS:
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_chain):
Fix crash when outputting debugging information for certain
pictures (always good to use the right struct member for
the number of records in an array).
Original commit message from CVS:
* ext/libpng/gstpngenc.c: (gst_pngenc_chain):
In snapshot mode, we always return GST_FLOW_UNEXPECTED whatever the
return value of gst_pad_push_event().
Original commit message from CVS:
* gst/autodetect/gstautoaudiosink.c:
(gst_auto_audio_sink_find_best):
* gst/autodetect/gstautovideosink.c:
(gst_auto_video_sink_find_best):
Make the name of the child element be based on the name of the
parent, so that debug output is more useful.
* gst/id3demux/id3v2frames.c: (find_utf16_bom),
(parse_insert_string_field), (parse_split_strings):
Rework string parsing to always walk over BOM markers in UTF16
strings, using the endianness indicated by the innermost one,
then trying the opposite endianness if that fails to convert
to valid UTF-8. Fixes#341774
Original commit message from CVS:
* ext/taglib/gstid3v2mux.cc:
Add support for writing images (APIC frames) into ID3v2
tags (picture type always set to 'other' for now though).
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_fmt),
(gst_wavparse_perform_seek), (gst_wavparse_stream_headers):
Fix use of uninitialised values if we're NOT seeking in ready.
Fix typos.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (parse_insert_string_field):
Some more debug info. No need to check whether the string
returned by g_convert() is really UTF-8 - either it is or
we get NULL returned.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3v2_genre_fields_to_taglist):
Fix parsing of numeric genre strings some more, by ensuring that
we only try and parse strings that a) Start with '(' and b) Consist
only of digits.
Also, when finding an escaping '((' sequence, bust it back to '(' by
swallowing the first parenthesis
Original commit message from CVS:
* ext/esd/esdsink.c: (gst_esdsink_finalize), (gst_esdsink_getcaps),
(gst_esdsink_open), (gst_esdsink_close):
* ext/esd/esdsink.h:
Move the esd_get_server_info() into gst_esdsink_open() and fail
with a decent error message on errors.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet bet>
* gst/avi/gstavimux.c: (gst_avi_mux_do_audio_buffer),
(gst_avi_mux_do_video_buffer):
Work around gst_buffer_make_metadata_writable() bug that
results in avimux marking all frames in the index as
keyframes (#340859).
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_dec_loop):
* ext/flac/gstflacdec.h:
Handle segment seeks that include the end of the file as stop point
properly: when the decoder hits EOS we want to send a SEGMENT_DONE
message instead of an EOS event in case we're in segment seek
mode (fixes#340699).
Original commit message from CVS:
Patch by: Michal Benes <michal dot benes at xeris dot cz>
* gst/matroska/matroska-demux.c: (gst_matroska_demux_reset):
Don't leak caps when freeing the stream context (#340623).
Original commit message from CVS:
* gst/matroska/matroska-mux.c:
(gst_matroska_mux_stream_is_vorbis_header),
(gst_matroska_mux_write_data):
Don't strcmp() NULL strings.
Only start new clusters on video keyframes, not on any
random audio buffer that doesn't have the DELTA_UNIT
flag set (fixes 'make check' again).
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet be>
* gst/matroska/matroska-mux.c: (gst_matroska_mux_best_pad),
(gst_matroska_mux_stream_is_vorbis_header),
(gst_matroska_mux_write_data):
Don't misinterpret GST_CLOCK_TIME_NONE as very high timestamp
value and then dead-lock when muxing vorbis audio streams
(the three vorbis header buffers carry no timestamp, and it
would try to mux these after all video buffers). Fixes#340346.
Improve clustering: start a new cluster also whenever we get
a keyframe.
Original commit message from CVS:
* ext/cairo/gsttimeoverlay.c: (gst_cairo_time_overlay_transform):
Fix timeoverlay for non-multiple-of-4 widths. This fourcc crap
SUCKS.
Original commit message from CVS:
* gst/id3demux/gstid3demux.c: (gst_id3demux_chain),
(gst_id3demux_sink_activate):
Let core insert default error message for TYPE_NOT_FOUND
errors, it's just as good as our own and has the added
bonus of being translated.
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_init),
(gst_tag_demux_sink_event):
* gst/id3demux/gstid3demux.c: (gst_id3demux_init),
(gst_id3demux_sink_event):
Post an error message when we get an EOS event and were not
able to find out the type of stream.
* tests/check/elements/id3v2mux.c: (fill_mp3_buffer), (got_buffer),
(test_taglib_id3mux_with_tags):
Decrease num-buffers to 16 per iteration again, otherwise the
many memcpy()s and reallocations in the test will hammer slow
CPUs completely and make the test timeout.
Original commit message from CVS:
* configure.ac:
figure out where plugins-base plugins are
* tests/check/Makefile.am:
use plugins-base plugins, so we have typefind functions
* tests/check/elements/id3v2mux.c: (test_taglib_id3mux_with_tags):
increase num-buffers, this makes sure the test errors out instead
of timing out when no typefind functions are present
Original commit message from CVS:
2006-04-28 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* sys/osxaudio/gstosxaudiosink.c:
(plugin_init):
Register osxaudiosrc to the plugin.
* sys/osxaudio/gstosxaudiosrc.c:
(gst_osx_audio_src_osxelement_do_init),
(gst_osx_audio_src_base_init), (gst_osx_audio_src_class_init),
(gst_osx_audio_src_init), (gst_osx_audio_src_set_property),
(gst_osx_audio_src_get_property),
(gst_osx_audio_src_create_ringbuffer), (gst_osx_audio_src_io_proc),
(gst_osx_audio_src_osxelement_init):
* sys/osxaudio/gstosxaudiosrc.h:
Port of osxaudiosrc to 0.10.
* sys/osxaudio/Makefile.am:
Add osxaudiosrc
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (has_utf16_bom),
(parse_split_strings):
Recognise and skip any byte order marker (BOM) in
UTF-16 strings.
Original commit message from CVS:
* gst/auparse/gstauparse.c: (gst_au_parse_base_init),
(gst_au_parse_class_init), (gst_au_parse_init),
(gst_au_parse_reset), (gst_au_parse_add_srcpad),
(gst_au_parse_remove_srcpad), (gst_au_parse_parse_header),
(gst_au_parse_chain), (gst_au_parse_src_convert),
(gst_au_parse_src_query), (gst_au_parse_handle_seek),
(gst_au_parse_sink_event), (gst_au_parse_src_event),
(gst_au_parse_change_state):
* gst/auparse/gstauparse.h:
Rewrite auparse to suck a little bit less: make source pad
dynamic, so decodebin/playbin work with non-raw formats
like alaw/mulaw; add query function for duration/position
queries; check whether we have enough data before attempting
to parse the header (instead of crashing when that is not the
case); work around audioconvert sucking by swapping endianness
to the native endianness ourselves for float formats; send
initial newsegment event. Fixes#161712.
Original commit message from CVS:
* ext/esd/esdsink.c: (gst_esdsink_prepare), (gst_esdsink_delay):
Always write ESD_BUF_SIZE bytes and use ESD_MAX_WRITE_SIZE as
the size of the ringbuffer. This should fix hangs with older
esd sound servers.
Original commit message from CVS:
* ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_chain):
Source pad has fixed caps. If we don't set this, bad
things happen when the window is resized.
Original commit message from CVS:
* gst/matroska/Makefile.am:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
(gst_matroska_demux_handle_src_event):
* gst/matroska/matroska-ids.c:
(gst_matroska_track_init_video_context),
(gst_matroska_track_init_audio_context),
(gst_matroska_track_init_subtitle_context),
(gst_matroska_track_init_complex_context):
* gst/matroska/matroska-ids.h:
Handle case where the TrackType ebml chunk does not come before the
TrackInfoAudio or TrackInfoVideo ebml chunk (#339446). Ignore QoS
events.
Original commit message from CVS:
* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_setcaps):
* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_setcaps):
It's codec_data, not codec_info.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet dot be>
* gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps):
Handle codec_data for VfW compatibility codec IDs (#339451)
* gst/matroska/matroska-mux.c:
(gst_matroska_mux_video_pad_setcaps):
Same here, handle codec_data and add additional caps we can handle
now to the pad template (huffyuv, dv and h263 video) (#339451)
Original commit message from CVS:
Patch by: Josef Zlomek <josef dot zlomek at itonis dot tv>
* gst/matroska/matroska-mux.c:
(gst_matroska_mux_create_buffer_header),
(gst_matroska_mux_write_data):
Fix timestamping of B-frames, use signed integers, do
some rounding (#339678).
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroskademux_do_index_seek):
Fix a bad conversion using gst_guint64_to_gdouble.
fabs ((gdouble) demux->index[entry].time - (gdouble) seek_pos) can not be
replaced by fabs (gst_guint64_to_gdouble (demux->index[entry].time - seek_pos)) as the
difference could be negative. fabs (gst_guint64_to_gdouble (demux->index[entry].time) -
gst_guint64_to_gdouble (seek_pos)) is the good solution. Thanks to Tim who has seen my
mistake.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroskademux_do_index_seek):
Use gst_guint64_to_gdouble for conversions
* win32/vs6/gst_plugins_good.dsw:
* win32/vs6/libgsticydemux.dsp:
Add a project file for icydemux
Original commit message from CVS:
Patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it>
* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
(gst_avi_demux_parse_index), (gst_avi_demux_massage_index):
When splitting audio chunks, the block alignment is not taken in
consideration, so the smaller chunks could be of size which is
not a multiple of the block alignment. Fixes#336904
Original commit message from CVS:
* gst/debug/progressreport.c: (gst_progress_report_finalize),
(gst_progress_report_class_init), (gst_progress_report_init),
(gst_progress_report_do_query), (gst_progress_report_report),
(gst_progress_report_set_property),
(gst_progress_report_get_property):
Add 'format' property to force querying to a particular format.
Original commit message from CVS:
2006-04-21 Andy Wingo <wingo@pobox.com>
* ext/dv/gstdv.c (plugin_init): libdv is a marginal decoder, at
best, on big endian systems. Drop its rank in that case. OTOH on
x86 it's quite fine. See changes from today in gst-ffmpeg as well.
Original commit message from CVS:
Patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it>
* gst/avi/gstavidemux.c: (gst_avi_demux_peek_tag),
(gst_avi_demux_next_data_buffer), (gst_avi_demux_stream_scan):
Fix index creation when we have to scan the file to create
an index. There may be other types of RIFF 'LIST' chunks than
'movi' and we need to skip them properly as well or we'll end up
reading garbage (#336889). Some other cosmetic changes.
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_dec_loop),
(gst_flac_dec_handle_seek_event):
Add support for segment seeks (fixes#338290). Also demote
some recurring debug message from DEBUG to LOG level.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream),
(gst_matroskademux_do_index_seek),
(gst_matroska_demux_handle_seek_event),
(gst_matroska_demux_parse_blockgroup_or_simpleblock):
* gst/matroska/matroska-ids.h:
Set DISCONT flag on first buffer after a discontinuity.
Fix newsegment events sent when seeking and honour KEY_UNIT
seek flag. Create pad with bogus caps if we don't recognise
the stream codec id.
* gst/matroska/matroska-demux.h:
Fix GObject macros.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at skynet dot be>
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_handle_seek_event), (gst_matroska_demux_loop):
Handle end of segment properly when set; don't dead-lock when
posting start of segment message when doing a segment seek.
Fixes#338810.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps),
(gst_matroska_demux_plugin_init):
Make mpeg2 aac audio work: create artificial private codec data
chunk which faad2 seems to require, just as we do for mpeg4 aac.
Also call gst_riff_init(). Partially fixes#338767.
Original commit message from CVS:
* gst/wavenc/gstwavenc.c: (gst_wavenc_base_init),
(gst_wavenc_class_init), (gst_wavenc_init),
(gst_wavenc_create_header_buf), (gst_wavenc_push_header),
(gst_wavenc_sink_setcaps), (get_id_from_name), (gst_wavenc_event),
(gst_wavenc_chain), (gst_wavenc_change_state):
* gst/wavenc/gstwavenc.h:
Set caps on first outgoing buffer, so that it doesn't error out
immediately with a non-negotiated error (#338716). Rewrite and
clean up a bit; fix setcaps function to parse things properly;
fix sink caps (8bit audio is unsigned and doesn't have depth);
use boilerplate macros; remove unused properties stuff.
Original commit message from CVS:
* ext/gdk_pixbuf/gstgdkpixbuf.c:
Leave JPEG decoding to our jpegdec plugin. gdkpixbufdec cannot
handle MJPEG streams and might be autoplugged for those if the
user doesn't have jpegdec installed (resulting in a cryptic error
message about huffman tables). Better to disable JPEG decoding here
and let the user figure out that she needs to install jpegdec.
Original commit message from CVS:
* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_sink_setcaps),
(gst_gdk_pixbuf_class_init), (gst_gdk_pixbuf_init),
(gst_gdk_pixbuf_flush), (gst_gdk_pixbuf_chain):
* ext/gdk_pixbuf/gstgdkpixbuf.h:
Make work with packetised/framed input (e.g. png-in-quicktime). Use
GST_ELEMENT_ERROR when we return GST_FLOW_ERROR. Add some
GST_DEBUG_FUNCPTR here and there. Use GST_LOG for recurring
debug messages. Fix boilerplate macros.
Original commit message from CVS:
* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_get_capslist),
(gst_gdk_pixbuf_set_property), (gst_gdk_pixbuf_get_property):
No need to special-case for Gdk-2.0 any longer, we require
Gdk 2.2 or newer; minor clean-ups.
Original commit message from CVS:
* ext/shout2/gstshout2.c: (gst_shout2send_base_init),
(gst_shout2send_class_init), (gst_shout2send_init),
(set_shout_metadata), (gst_shout2send_set_metadata),
(gst_shout2send_event), (gst_shout2send_start),
(gst_shout2send_connect), (gst_shout2send_stop),
(gst_shout2send_render), (gst_shout2send_set_property),
(gst_shout2send_get_property), (gst_shout2send_setcaps),
(plugin_init):
* ext/shout2/gstshout2.h:
* po/POTFILES.in:
Rewrite a bit: use GstBaseSink::start and stop instead of a state
change function; use GST_ELEMENT_ERROR for error reporting, not
g_error() or GST_ERROR(); don't unref caps in setcaps function,
will cause crashes or assertion failures; remove (unused) "sync"
property, basesink already has such a property; misc. other
minor fixes and cleanups.
Original commit message from CVS:
* ext/esd/esdsink.c: (gst_esdsink_open), (gst_esdsink_prepare):
* ext/esd/gstesd.c: (plugin_init):
* po/POTFILES.in:
Add translatable error message for when we cannot
connect to the sound server, as "Cannot open resource
for writing" isn't really an acceptable message to show
to the user in this case.
Original commit message from CVS:
Patch by: Philippe Valembois
* ext/shout2/gstshout2.c: (gst_shout2send_init),
(gst_shout2send_set_metadata), (gst_shout2send_event),
(gst_shout2send_render), (gst_shout2send_change_state):
* ext/shout2/gstshout2.h:
Handle tags being received before the connection to
the server is established properly (see #338636).
Original commit message from CVS:
* ext/shout2/gstshout2.c: (gst_shout2send_render):
Don't crash in case the connection to the server fails:
don't set pointer to NULL by assigning FALSE; error out
properly by using GST_ELEMENT_ERROR and returning
GST_FLOW_ERROR (fixes#338636). Lastly, free connection
before resetting the pointer.
Original commit message from CVS:
2006-04-12 Philippe Kalaf <philippe.kalaf@collabora.co.uk>
* gst/rtp/gstrtppcmapay.c:
* gst/rtp/gstrtppcmapay.h:
* gst/rtp/gstrtppcmupay.c:
* gst/rtp/gstrtppcmupay.h:
Ported mulaw and alaw payloaders to use new base class
* gst/rtp/Makefile.am:
* gst/rtp/gstrtp.c:
* gst/rtp/gstrtpilbcpay.c:
* gst/rtp/gstrtpilbcpay.h:
* gst/rtp/gstrtpilbcdepay.c:
* gst/rtp/gstrtpilbcdepay.h:
Added new iLBC payloader/depayloader. Payloader uses new audio payload base
class.
Original commit message from CVS:
* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_sink_setcaps),
(gst_gdk_pixbuf_get_capslist), (gst_gdk_pixbuf_sink_getcaps),
(gst_gdk_pixbuf_class_init), (gst_gdk_pixbuf_init),
(gst_gdk_pixbuf_flush), (gst_gdk_pixbuf_sink_event),
(gst_gdk_pixbuf_chain):
Some cleanups.
Added RGBA as a possible output format.
Correctly free the supported mimetypes.
deprecate silent arg, it's not used.
Return result from _alloc_buffer to peer.
Original commit message from CVS:
* gst/rtp/gstrtpmp4vdepay.c: (gst_rtp_mp4v_depay_process):
Don't leak memory allocated by gst_buffer_new_and_alloc() by
overwriting GST_BUFFER_MALLOCDATA.
Original commit message from CVS:
* ext/libpng/gstpngdec.c: (gst_pngdec_init),
(user_endrow_callback), (user_end_callback),
(gst_pngdec_caps_create_and_set), (gst_pngdec_chain),
(gst_pngdec_sink_setcaps), (gst_pngdec_sink_event),
(gst_pngdec_libpng_clear), (gst_pngdec_change_state):
* ext/libpng/gstpngdec.h:
Handle more than one frame if the content is framed,
like with png-in-quicktime (#331917).
Original commit message from CVS:
* sys/oss/Makefile.am:
* sys/oss/common.h:
* sys/oss/gstosssink.c: (gst_oss_sink_init), (gst_oss_sink_open),
(gst_oss_sink_prepare), (gst_oss_sink_unprepare):
* sys/oss/gstosssrc.c: (gst_oss_src_prepare),
(gst_oss_src_unprepare):
- the user-visible error strings were in the wrong category
- and the messages were not marked for translation
- which is actually a good thing, because they were exactly
the kind of message you would never want anyone to see
- the macros were using variables that didn't exist in the macro
arguments
- and they were obviously copied from each other and then modified
- so a common header makes sense
Original commit message from CVS:
* ext/annodex/gstcmmlenc.c: (gst_cmml_enc_set_header_on_caps):
Use copies of header buffers for caps to avoid circular refcounting
problems (as in theoradec, vorbisdec).
* tests/check/elements/cmmldec.c: (GST_START_TEST):
Fix a typo in test that meant it was testing the wrong thing.
* tests/check/elements/cmmlenc.c: (check_headers):
Fix refcount checks now that we use buffer-copies for caps.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_base_init),
(gst_matroska_demux_handle_seek_event),
(gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps),
(gst_matroska_demux_subtitle_caps),
(gst_matroska_demux_plugin_init):
Use static pad templates with ANY caps for audio and video
source pads and get rid of a lot of unnecessary (and partially
broken) code for the template caps. Clean up caps finding
functions. Fixes playback of audio files/streams that do not
contain the sample rate and/or number of channels in the audio
context (happens a lot with vorbis/mp3 .mka files it seems).
Fixes#337183.
Also add myself to copyright holders.
Original commit message from CVS:
* ext/annodex/gstcmmlutils.c: (gst_cmml_track_list_del_clip):
Use g_list_delete_link () instead of g_list_remove_link () so that
we free the link as well as the contained data.
Original commit message from CVS:
Patch by: Ryan Lortie (desrt) <desrt at destr dot ca>
* gst/avi/gstavidemux.c: (gst_avi_demux_parse_superindex),
(gst_avi_demux_parse_stream), (gst_avi_demux_parse_index),
(gst_avi_demux_stream_header):
Fix some crashers with empty chunks. (Fixes#337749)
Original commit message from CVS:
* gst/level/gstlevel.c: (gst_level_set_caps),(gst_level_transform_ip):
use G_GINT64_CONSTANT for INT64 constants
* gst/videofilter/gstvideobalance.c:
define rint for WIN32 #define rint(x) (floor((x)+0.5))
* win32/vs6/libgstavi.dsp:
add missing libraries for the link and remove avimux.c from
the project as it isn't ported to 0.10 yet
Original commit message from CVS:
* gst/matroska/ebml-read.c: (gst_ebml_read_sint):
Even better would be if we actually did the right thing
here (also, G_GUINT64_CONSTANT only exists since GLib-2.10).
Original commit message from CVS:
* gst/matroska/ebml-read.c: (gst_ebml_read_sint):
Can't just replace 1LL with 1L here just because MSVC doesn't
support it, as it might lead to incorrect results when doing the
bitshifting here. Using GLib's G_GUINT64_CONSTANT() macro to
force a 64-bit constant in a way that all compilers are happy with.
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_dec_handle_seek_event):
Don't try to seek beyond the end of the file (would
occasionally display error dialogs in totem when seeking
to the end) (#335869). Will still throw an error though
if the file is truncated and the total_samples value in
the stream header is wrong.
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_calculate_crc8),
(gst_flac_dec_scan_got_frame), (gst_flac_dec_scan_for_last_block),
(gst_flac_dec_metadata_callback):
* ext/flac/gstflacdec.h:
If the stream header doesn't contain the total number of samples,
search for the last flac frame at the end of the file and calculate
the total duration from that frame's offset (fixes#337609).
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream):
Don't unref the GstPadTemplate returned by
gst_element_class_get_pad_template().
Original commit message from CVS:
Patch by: Brian Cameron <brian dot cameron at sun dot com>
* sys/sunaudio/gstsunaudiosink.c: (gst_sunaudiosink_init),
(gst_sunaudiosink_prepare), (gst_sunaudiosink_write):
* sys/sunaudio/gstsunaudiosink.h:
Use spec->segsize and spec->segtotal in the prepare function
to initialise the ring buffer instead of using the buffer-time
property (#337421).
Original commit message from CVS:
* Makefile.am:
* configure.ac:
* pkgconfig/.cvsignore:
* pkgconfig/Makefile.am:
* pkgconfig/gstreamer-plugins-good-uninstalled.pc.in:
add a .pc file so other modules can use good plugins in tests
Original commit message from CVS:
* ext\jpeg\smokecodec.c:
use of GST_DEBUG instead of DEBUG(a...) for WIN32
* ext\speex\gstspeexenc.c: (gst_speexenc_set_header_on_caps):
move first instruction after all variables declarations
* gst\alpha\gstalpha.c:
* gst\effectv\gstshagadelic.c:
* gst\smpte\paint.c:
* gst\videofilter\gstvideobalance.c:
define M_PI if it's not defined (it's not defined on WIN32)
* gst\cutter\gstcutter.c: (gst_cutter_chain):
* gst\id3demux\id3v2frames.c: (parse_relative_volume_adjustment_two):
* gst\level\gstlevel.c: (gst_level_set_property), (gst_level_transform_ip):
* gst\matroska\matroska-demux.c: (gst_matroska_demux_parse_info),
(gst_matroska_demux_video_caps):
* gst\matroska\matroska-mux.c: (gst_matroska_mux_start), (gst_matroska_mux_finish):
* gst\wavparse\gstwavparse.c: (gst_wavparse_stream_data):
use gst_guint64_to_gdouble for conversions
* gst\goom\filters.c: (setPixelRGB_):
fix a debug which was using undefined variable
* gst\level\gstlevel.c: (gst_level_set_caps), (gst_level_transform_ip):
* gst\matroska\ebml-read.c: (gst_ebml_read_sint):
replace LL suffix with L suffix (LL isn't supported by MSVC6.0)
* win32/vs6:
add vs6 projects files for most of plugins-good
Original commit message from CVS:
From a patch by: Michael Dominic K. <mdk at mdk dot org dot pl>
* ext/dv/gstdvdemux.c: (gst_dvdemux_class_init),
(gst_dvdemux_reset), (gst_dvdemux_src_convert),
(gst_dvdemux_send_event), (gst_dvdemux_flush), (gst_dvdemux_loop),
(gst_dvdemux_sink_activate_pull), (gst_dvdemux_change_state):
* ext/dv/gstdvdemux.h:
Seek in READY patch. Only works for pull based mode.
Fixes#323880
Original commit message from CVS:
* ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_flush),
(gst_gdk_pixbuf_event):
Fix two crashers: don't unref the same caps twice, and
set pixbuf loader to NULL after freeing it.
Original commit message from CVS:
* ext/speex/gstspeexenc.c: (gst_speexenc_class_init),
(gst_speexenc_finalize), (gst_speexenc_sink_setcaps),
(gst_speexenc_chain):
* ext/speex/gstspeexenc.h:
Don't leak adapter.
A push *always* takes ownership of the buffer, even on
errors.
Small cleanups.
Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_dec_handle_seek_event):
* ext/flac/gstflacdec.h:
* ext/flac/gstflacenc.h:
Spifify a bit.
Fix deadly lock order error in seeking code, STREAM_LOCK
cannot be taken within LOCK and the streaming variables are
protected with the STREAM_LOCK anyway.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_parse_index),
(gst_avi_demux_stream_index), (gst_avi_demux_stream_scan),
(gst_avi_demux_massage_index), (gst_avi_demux_handle_seek):
this patch combines the global init_frames with the stream
init_frames. Rationale being that the global delay should
be subtracted from any stream delay.
Fixes#335858.
Original commit message from CVS:
* ext/jpeg/gstjpegenc.c: (gst_jpegenc_init), (gst_jpegenc_chain):
Don't crash when encoding images where the number of rows isn't
a multiple of 2*DCTSIZE. Add some GST_DEBUG_FUNCPTR.
Original commit message from CVS:
* ext/speex/gstspeexdec.c: (speex_dec_change_state):
* gst/interleave/deinterleave.c: (deinterleave_change_state):
* gst/interleave/interleave.c: (interleave_change_state):
* gst/wavenc/gstwavenc.c: (gst_wavenc_change_state):
More state change function fixes.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_get_upstream_size),
(gst_wavparse_stream_headers), (gst_wavparse_stream_data):
Don't try to read beyond the end of the file just because
the header claims a bigger size (like with truncated files).
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek),
(gst_wavparse_stream_headers), (gst_wavparse_add_src_pad),
(gst_wavparse_stream_data), (gst_wavparse_loop):
* gst/wavparse/gstwavparse.h:
Delay source pad creation until we have the first chunk of
media data, so the we can examine the data and adjust the
caps accordingly if required. This makes playback of .wav
files with DTS-declared-as-PCM content work (#313266).
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain):
* gst/id3demux/gstid3demux.c: (gst_id3demux_chain):
Don't attempt typefinding on too-short buffers that have been
completely trimmed away.
* gst/id3demux/id3tags.c: (id3demux_read_id3v2_tag):
Improve the debug output