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:
* 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:
* 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:
* 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:
* 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: 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:
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/spectrum/demo-audiotest.c: (on_window_destroy),
(draw_spectrum), (message_handler), (main):
* gst/spectrum/demo-osssrc.c: (on_window_destroy), (draw_spectrum),
(message_handler), (main):
port to use message to get results, cleanly exit when closing the window
* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
(gst_spectrum_init), (gst_spectrum_dispose),
(gst_spectrum_set_property), (gst_spectrum_get_property),
(gst_spectrum_set_caps), (gst_spectrum_start),
(gst_spectrum_message_new), (gst_spectrum_transform_ip):
* gst/spectrum/gstspectrum.h:
port to derive from basetransform and send results via messages
(like level element)
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek),
(gst_qtdemux_combine_flows), (gst_qtdemux_loop_state_movie),
(gst_qtdemux_loop), (gst_qtdemux_chain), (qtdemux_parse_trak):
Combine return values from src pad pushes.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_header),
(gst_qtdemux_prepare_current_sample), (gst_qtdemux_advance_sample),
(gst_qtdemux_add_stream):
Don't crash on files with 0 samples, EOS immediatly instead.
Fixes#344944.
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:
* 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:
* 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:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment):
Clip the outputed NEWSEGMENT stop time to the configured segment stop
time.
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:
* 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:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak), (plugin_init):
po/POTFILES.in:
Throw an error when the file is encrypted. Move plugin_init stuff
to the end of the file, add stuff for i18n, make debug category
static.
Original commit message from CVS:
* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
(gst_spectrum_init), (gst_spectrum_set_sink_caps),
(gst_spectrum_get_sink_caps), (gst_spectrum_chain):
Use boilerplate macro, fix strings to match plugin-moval-requirements
Original commit message from CVS:
* gst/spectrum/Makefile.am:
Link to base libraries
* gst/spectrum/demo-osssrc.c: (main):
use new threshhold property
* gst/spectrum/gstspectrum.c: (gst_spectrum_class_init),
(gst_spectrum_init), (gst_spectrum_dispose),
(gst_spectrum_set_property), (gst_spectrum_set_sink_caps),
(gst_spectrum_get_sink_caps), (gst_spectrum_chain),
(gst_spectrum_change_state):
* gst/spectrum/gstspectrum.h:
Use gst_adapter, support multiple-channels, add threshold property for
result, add docs, fix resulting spectrum range (was including mirrored
results)
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:
* 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:
* 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:
* 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/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_parse_trak),
(gst_qtdemux_handle_esds):
Figure out the real audio type in mp4a boxes by parsing the
optional descriptors in the optional esds box. Promote the
default AAC to mp3 when indicated. Fixes#330632.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_dump_unknown),
(qtdemux_parse_trak), (gst_qtdemux_handle_esds):
Parse version 2 sample descriptions.
Don't #define gst_util_dump_mem(), use something more
specific instead to avoid confusion.
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:
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:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_query),
(qtdemux_dump_mvhd):
Don't cause side effects in a debugging function.
Also report duration in push mode since we can.
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:
* 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:
* 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:
* 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:
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:
* 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:
Patch by: j^ <j at bootlab dot org>
* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak),
(qtdemux_video_caps):
Never treat video streams as an audio stream.
Add qtdrw mime type.
Fixes#339041
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:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
For VBR audio, don't try to calculate the samples_per_frame.
Fixes#338935.
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:
* 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:
* 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:
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:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_prepare_current_sample),
(gst_qtdemux_chain), (gst_qtdemux_add_stream), (qtdemux_dump_stsz),
(qtdemux_dump_stco), (qtdemux_parse_trak):
Don't make rounding errors in timestamp/duration calculations.
Fix timestamps for AMR and IMA4. Fixes (#337436).
Create a dummy segment even when there is no edit list.
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:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek),
(gst_qtdemux_do_seek), (gst_qtdemux_loop_state_movie),
(gst_qtdemux_loop):
Use duration as segment stop position if none is
explicitly configured.
Also perform EOS when we run past the segment stop.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_go_back),
(gst_qtdemux_perform_seek), (gst_qtdemux_do_seek),
(gst_qtdemux_loop_state_movie), (gst_qtdemux_loop),
(gst_qtdemux_chain), (qtdemux_parse_tree), (qtdemux_parse_trak):
More cleanups, added comments.
Mark discontinuities on outgoing buffers.
Post better errors when something goes wrong.
Handle EOS and segment end properly.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
(gst_qtdemux_push_event), (gst_qtdemux_go_back),
(gst_qtdemux_perform_seek), (gst_qtdemux_do_seek),
(gst_qtdemux_handle_src_event), (plugin_init),
(gst_qtdemux_change_state), (gst_qtdemux_loop_state_movie),
(gst_qtdemux_loop), (gst_qtdemux_chain),
(qtdemux_sink_activate_pull), (gst_qtdemux_add_stream),
(qtdemux_parse), (qtdemux_parse_tree), (qtdemux_parse_trak),
(qtdemux_parse_udta), (qtdemux_tag_add_str), (qtdemux_tag_add_num),
(qtdemux_tag_add_gnre), (gst_qtdemux_handle_esds):
* gst/qtdemux/qtdemux.h:
Handle stss boxes so we can mark and find keyframes.
Implement correct accurate and keyframe seeking.
Use _DEBUG_OBJECT when possible.
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:
* 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/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
Original commit message from CVS:
Patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>
* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek):
Fix block alignment calculation. Alignment should be done before
adding the byte offset where the data starts (#335231).
Original commit message from CVS:
* gst/matroska/ebml-write.c: (gst_ebml_write_element_push):
Ensure that we set correct caps on buffers that are transferred
direct from the input.
Original commit message from CVS:
* gst/goom/filters.c: (zoomFilterDestroy):
* gst/goom/goom_core.c: (goom_close):
Free filter data when cleaning up. (Fixes: #334995)
Original commit message from CVS:
* gst/id3demux/id3v2frames.c:
(parse_relative_volume_adjustment_two):
We only care about gain and peak data for the master volume.
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain):
Ensure that we set caps on the buffers we pass.
* gst/id3demux/gstid3demux.c: (gst_id3demux_chain),
(gst_id3demux_sink_activate):
Ensure that we set caps on the buffers we pass.
Use STREAM, TYPE_NOT_FOUND as the error class when
typefinding fails.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_class_init),
(gst_qtdemux_init), (gst_qtdemux_dispose),
(gst_qtdemux_add_stream), (qtdemux_parse_trak):
Series of memleak fixes:
- Unref the GstAdapter in finalize.
- Use gst_pad_new_from_static_template(), shorter and safer.
- Free unused QtDemuxStream when not used.
Original commit message from CVS:
* configure.ac:
Bump -base requirement to 0.10.5 for gst_tag_from_id3_user_tag(),
used by id3demux.
* gst/id3demux/gstid3demux.c: (plugin_init):
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
(parse_user_text_identification_frame),
(parse_unique_file_identifier):
Add support for UFID and TXXX frames and extract musicbrainz tags.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry):
Catch short reads, like they might happen with truncated
files (see #305279); remove unnecessary indentation.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_reset),
(gst_wavparse_change_state):
Implement seek in READY (re-fixes #327658)
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_udta):
Extract disc number and count from files that use
'disk' instead of 'disc' as node identifier for that
(fixes#332066).
Original commit message from CVS:
* gst/id3demux/Makefile.am:
* gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad),
(gst_id3demux_chain), (gst_id3demux_sink_activate):
Use new typefind helper functions here as well, and
do typefinding in pull-mode if upstream supports that.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query),
(gst_avi_demux_handle_src_event), (gst_avi_demux_parse_stream),
(gst_avi_demux_calculate_durations_from_index),
(gst_avi_demux_stream_header):
* gst/avi/gstavidemux.h:
If we have an index, use a duration based on the index instead
of blindly trusting the information in the stream headers
(fixes#331817).
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_parse_trak):
Use GST_WARNING instead of GST_ERROR for all the too short/long atoms
when parsing.
Also let's be a bit less vulgar in our warning messages :)
Original commit message from CVS:
* configure.ac:
Bump requirements to current core and -base CVS
(core for new typefind helper API, and -base for the
WAVFORMATEX support that was added to libgstriff and
is needed by wavparse).
* gst/apetag/Makefile.am:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_chain),
(gst_tag_demux_sink_activate):
Use new typefind helpers for typefinding instead of our
home-grown stuff; also, do typefinding in pull-mode if
upstream supports that.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak):
Can't divide through zero (suppress warning in case of
stream with one single still picture) (see #327083)
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_perform_seek),
(gst_wavparse_stream_headers), (gst_wavparse_stream_data),
(gst_wavparse_pad_convert), (gst_wavparse_srcpad_event),
(gst_wavparse_sink_activate), (gst_wavparse_sink_activate_pull):
Use DEBUG_OBJECT more.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream),
(qtdemux_parse_trak), (qtdemux_video_caps):
Add support for palettised Apple SMC videos (#327075, based on
patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it>).
Original commit message from CVS:
* ext/cdio/Makefile.am:
Add GST_BASE_CFLAGS and GST_BASE_LIBS (seems to be
required for Cygwin, see #317048)
* gst/rtp/gstasteriskh263.c:
Cygwin has includes for both the unix network socket API
and the windows API, but only one can be included, so fix
includes to only use one or the other, prefering the unxi
one (#317048).
Original commit message from CVS:
2006-02-23 Philippe Kalaf <philippe.kalaf at collabora.co.uk>
* rtp/gst/gstrtppcmadepay.c:
* rtp/gst/gstrtppcmadepay.h:
* rtp/gst/gstgstrtppcmapay.c:
* rtp/gst/gstgstrtppcmapay.h:
* rtp/gst/gstrtppcmudepay.c:
* rtp/gst/gstrtppcmudepay.h:
* rtp/gst/gstrtppcmupay.c:
* rtp/gst/gstrtppcmupay.h:
* rtp/gst/Makefile.am:
* rtp/gst/gstrtp.c:
* rtp/gst/README:
Separated the G711 payloaders/depayloaders into separate elements for
mulaw/alaw. Also removed the old g711 payloaders/depayloaders.
Original commit message from CVS:
Reviewed by : Edward Hervey <edward@fluendo.com>
* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
Add 'dvsd' and 'dv25' to list of possible fourcc values for DV Video.
Add image/png for fourcc 'png '
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_src_convert),
(gst_avi_demux_handle_src_query), (gst_avi_demux_handle_src_event),
(gst_avi_demux_parse_file_header), (gst_avi_demux_stream_init),
(gst_avi_demux_parse_avih), (gst_avi_demux_parse_superindex),
(gst_avi_demux_parse_subindex), (gst_avi_demux_parse_stream),
(gst_avi_demux_stream_header), (gst_avi_demux_change_state):
Use scaling code for added precission and more correct stop
position in case scale==0.
Original commit message from CVS:
* gst/flx/flx_color.h:
* gst/flx/flx_fmt.h:
* gst/flx/gstflxdec.c: (gst_flxdec_init),
(gst_flxdec_src_query_handler), (flx_decode_color),
(gst_flxdec_chain):
* gst/flx/gstflxdec.h:
Set MALLOCDATA for the temp buffers so we don't leak.
Some debug cleanups.
Consume all data in the adapter before leaving the chain
function. Fixes#330678.
Original commit message from CVS:
* gst/id3demux/id3tags.c: (id3demux_id3v2_frames_to_tag_list):
* gst/id3demux/id3v2frames.c: (id3v2_genre_fields_to_taglist):
Handle 0 data size in otherwise valid frames.
Handle numeric strings in 2.4.0 even when not in parentheses
Original commit message from CVS:
* gst/matroska/matroska-demux.c:
(gst_matroska_demux_subtitle_caps),
(gst_matroska_demux_plugin_init):
* gst/matroska/matroska-ids.h:
Recognise SSA/ASS and USF subtitle formats and
set proper caps when they are found.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_movie):
Don't GST_LOG timestamps from nonexistent index
entries (#331582).
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_header):
Check that the size of the returned buffer is of the correct size
because the parser assumes that.
Fixes#331543.
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers):
Pass extra_data to gst_riff_create_audio_caps(), so that
WAVEFORMATEX stuff works. Post audio codec name and post
it as taglist on the bus. Allow up to 8 channesl for raw
PCM in the source pad template caps.
Original commit message from CVS:
* gst/multipart/multipartdemux.c: (gst_multipart_demux_base_init),
(gst_multipart_demux_class_init), (gst_multipart_demux_init),
(gst_multipart_demux_finalize), (gst_multipart_find_pad_by_mime),
(gst_multipart_demux_chain), (gst_multipart_demux_change_state),
(gst_multipart_set_property), (gst_multipart_get_property):
Applied #318663. Gives quite a few false positives in
autoscan mode, but it's better than nothing. Not closing yet.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_event),
(gst_qtdemux_loop), (qtdemux_sink_activate_pull):
Don't stop the task if the pad isn't linked.
Original commit message from CVS:
* gst/id3demux/id3tags.c: (id3demux_id3v2_frames_to_tag_list):
ID3 2.3.0 used synch-safe integers for the tag size, but not for the
frame size. (Fixes#331368)
Original commit message from CVS:
* gst/rtsp/README:
Updated README.
* gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_get_type),
(gst_rtspsrc_class_init), (gst_rtspsrc_set_property),
(gst_rtspsrc_get_property), (gst_rtspsrc_stream_setup_rtp):
* gst/rtsp/gstrtspsrc.h:
Make sure the RTP port is an even port an try to allocate
another if not.
Added retry property to control max retries for port allocation.
Make sure RTCP port is RTP port+1.
Cleanup when port allocation fails.
Fixes#319183.
Original commit message from CVS:
* gst/alpha/gstalpha.c: (gst_alpha_change_state):
Don't ignore return value of the parent class's state
change function (#331385, patch by: Wouter Paesen).
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event):
Add comment in a fultile attempt to stop the copy-and-paste
paradigm leading to duplication of bad code.
* gst/rtsp/rtsptransport.c: (rtsp_transport_parse):
Mime parameters have to be checked case insensitive
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_post_buffering),
(gst_qtdemux_chain):
When buffering MDAT data, show the user something is
happening by posting 'buffering' messages on the bus.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_sync_streams):
Advance stream time for lagging subtitle streams by sending
newsegment events with the update flag set.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
(gst_qtdemux_handle_src_query), (gst_qtdemux_change_state),
(next_entry_size), (gst_qtdemux_chain):
* gst/qtdemux/qtdemux.h:
Make push-based work if mdat atom is before moov atom.
Don't answer duration query. This should be transformed into replying
FALSE to seek events.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_stream_header):
There can be bogus data before the hdrl LIST tag in the RIFF header.
It's hard to say if it's not respecting the AVI specifications or not,
but since Google Video is producing AVIs like that and the other player
don't seem to complain, I guess we should do the same.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (next_entry_size), (gst_qtdemux_chain):
Handle the case where data atoms are before moov atoms in push-based mode.
Errors out gracefully.
Original commit message from CVS:
* gst/qtdemux/Makefile.am:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
(gst_qtdemux_handle_sink_event), (gst_qtdemux_change_state),
(extract_initial_length_and_fourcc),
(gst_qtdemux_loop_state_header), (gst_qtdemux_loop_state_movie),
(gst_qtdemux_loop_header), (next_entry_size), (gst_qtdemux_chain),
(qtdemux_sink_activate), (qtdemux_sink_activate_pull),
(qtdemux_sink_activate_push), (qtdemux_parse_trak):
* gst/qtdemux/qtdemux.h:
QtDemux can now work push-based.
It still needs some love for seeking.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (parse_insert_string_field),
(parse_split_strings):
Add more validation to ensure that a char encoding conversion
produced a valid UTF-8 string.
Original commit message from CVS:
Reviewed by: Edward Hervey <edward@fluendo.com>
* gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry):
Properly handle end of segment. Closes#330885.
Original commit message from CVS:
* gst/rtp/gstrtpmp4gpay.c: (gst_rtp_mp4g_pay_class_init),
(gst_rtp_mp4g_pay_init), (gst_rtp_mp4g_pay_parse_audio_config),
(gst_rtp_mp4g_pay_parse_video_config), (gst_rtp_mp4g_pay_new_caps),
(gst_rtp_mp4g_pay_setcaps), (gst_rtp_mp4g_pay_flush):
* gst/rtp/gstrtpmp4gpay.h:
Make more things work.
Handle ACC config strings.
Original commit message from CVS:
* gst/apetag/gsttagdemux.c: (gst_tag_demux_get_upstream_size),
(gst_tag_demux_do_typefind):
... and fix the very same leaks in GstTagDemux.
Original commit message from CVS:
* gst/id3demux/gstid3demux.c: (id3demux_get_upstream_size),
(gst_id3demux_do_typefind):
Fix a couple of mem leaks. (Patch by Jonathan Matthew
<jonathan at kaolin dot wh9 dot net>)
Original commit message from CVS:
* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_setcaps):
First set options, then set caps or else the baseclass
will not know about the options, duh.
Original commit message from CVS:
* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_class_init),
(gst_rtp_mp4v_pay_setcaps):
Don't waste time looking for a config string if we have codec_info
on the incomming caps.
Original commit message from CVS:
* gst/rtp/gstrtpamrdepay.c: (gst_rtp_amr_depay_chain):
Added more meaningfull warnings when something goes wrong.
Clear F bit on outgoing AMR packets.
* gst/rtp/gstrtpamrpay.c: (gst_rtp_amr_pay_class_init),
(gst_rtp_amr_pay_handle_buffer):
Added debugging category
Support payloading of multiple AMR frames.
* gst/rtp/gstrtpmp4vpay.c: (gst_rtp_mp4v_pay_depay_data):
Added some debugging.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
(qtdemux_parse_trak):
use the correct variable to check if we can calculate
the last chunk. Looks like an obvious bug, and makes
the dump of offsets comparable to other tools
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
(qtdemux_parse_trak):
clean up some debugging, using _OBJECT, moving recurring
messages to LOG level
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_query),
(gst_qtdemux_handle_src_event), (gst_qtdemux_loop_header),
(qtdemux_inflate), (qtdemux_parse), (qtdemux_parse_trak),
(qtdemux_parse_udta), (qtdemux_tag_add_str), (qtdemux_tag_add_num),
(qtdemux_tag_add_gnre), (gst_qtdemux_handle_esds),
(qtdemux_video_caps), (qtdemux_audio_caps):
* gst/qtdemux/qtdemux.h:
Some QT demux loving.
Handle seeking in a less broken way.
Fix AMR caps to match the AMR decoder.
Set first timestamp on AMR samples to 0 for now.
Remove some \n in DEBUG strings.
Use _scale_int for maximum precision.
Original commit message from CVS:
* gst/matroska/ebml-write.c: (gst_ebml_write_reset),
(gst_ebml_write_flush_cache), (gst_ebml_write_element_push),
(gst_ebml_write_seek):
* gst/matroska/ebml-write.h:
Make sure we send a newsegment event in BYTES format
before sending buffers (#328531).
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream),
(gst_avi_demux_all_source_pads_unlinked),
(gst_avi_demux_process_next_entry):
* gst/avi/gstavidemux.h:
Third attempt, use gst_pad_is_linked() this time.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
(parse_split_strings):
Adjust for data length indicators when parsing (Fixes#329810)
Fix stupid bug parsing UTF-8 tag text.
Output tag strings with multiple fields as multiple tags, so the
app gets all the data.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (parse_text_identification_frame),
(id3v2_tag_to_taglist), (id3v2_genre_string_to_taglist),
(id3v2_genre_fields_to_taglist):
Never output a tag with a null contents string.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_all_source_pads_unlinked):
Only pause if all pads are unlinked AND we've tried to send data
on all of them at least once.
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_all_source_pads_unlinked),
(gst_avi_demux_process_next_entry), (gst_avi_demux_loop):
Make loop function/task pause itself when all source pads are
unlinked.
Original commit message from CVS:
* gst/auparse/gstauparse.c: (gst_au_parse_chain):
Don't push buffers into the adapter that we are going to
push downstream again without framing anyway. Also, the
adaptor takes ownership of buffers put into it (fixes
auparse pushing invalid buffers for .au files with
ADPCM contents). Finally, set caps on all outgoing buffers.
Original commit message from CVS:
* gst/id3demux/gstid3demux.c: (gst_id3demux_chain),
(gst_id3demux_read_id3v1), (gst_id3demux_sink_activate),
(gst_id3demux_send_tag_event):
* gst/id3demux/id3tags.c: (id3demux_read_id3v1_tag):
Someone should kick my butt. Remove ID3v1 tags from the end of the
file.
Improve error messages. Send the TAG message as soon as we complete
typefinding, instead of waiting until we send the first buffer.
Downstream tag event is still sent before the first buffer.
Original commit message from CVS:
* gst/id3demux/gstid3demux.c: (gst_id3demux_remove_srcpad):
Don't put function calls in g_return_if_fail() statements,
or they'll be replaced with NOOPs if someone compiles with
G_DISABLE_CHECKS defined.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame):
Never trust ANY information encoded in a media file, especially
when it's giving you sizes. (Fixes#328452)
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
(gst_qtdemux_add_stream), (qtdemux_parse_trak):
More coherent framerate setting on caps.
If sample_size is available, use that for the samples' duration in
the index. This enables single frame streams to work (and I imagine
fixes some other cases).
Tested on testsuite, no regression.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps),
(gst_matroska_demux_audio_caps), (gst_matroska_demux_plugin_init):
* gst/matroska/matroska-ids.h:
Added recognition of Real Audio and Video streams in matroska demuxer.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3v2_tag_to_taglist):
Remove errant break statement, and fix compilation with
older GCC.
Original commit message from CVS:
* gst/id3demux/id3tags.c: (id3demux_read_id3v2_tag):
* gst/id3demux/id3tags.h:
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame),
(parse_comment_frame), (parse_text_identification_frame),
(id3v2_tag_to_taglist), (id3v2_are_digits),
(id3v2_genre_string_to_taglist), (id3v2_genre_fields_to_taglist),
(parse_split_strings), (free_tag_strings):
Rewrite parsing of text tags to handle multiple NULL terminated
strings. Parse numeric genre strings and ID3v2 type
"(3)(6)Alternative" style genre strings.
Parse dates that are only YYYY or YYYY-mm format.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (qtdemux_parse_trak),
(qtdemux_audio_caps):
'twos' and 'sowt' fourcc can be 16bit or 8bit audio.
Fix 8bit case (#327133, based on patch by: Fabrizio
Gennari <fabrizio dot ge at tiscali dot it>).
Also, "G_LITTLE_ENDIAN" and "G_BIG_ENDIAN" are not
valid literals for endianness in caps strings,
only "LITTLE_ENDIAN" and "BIG_ENDIAN" are valid.
Original commit message from CVS:
* gst/videobox/gstvideobox.c: (gst_video_box_class_init):
Don't forget to initialize liboil, otherwise our oil functions
will crash (fixes#327871; patch by: Christoph Burghardt
<hawkes at web dot de>).
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_pad_convert):
Fix conversion from TIME to BYTES format (fixes#326864;
patch by: Tommi Myöhänen <ext-tommi dot myohanen at nokia dot com>)
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_init),
(gst_qtdemux_send_event), (gst_qtdemux_handle_src_event),
(gst_qtdemux_change_state), (gst_qtdemux_loop_header):
* gst/qtdemux/qtdemux.h:
Fix seeking for quicktime files. Could still use some more
love and sophistication.
Original commit message from CVS:
* gst/id3demux/id3v2frames.c: (id3demux_id3v2_parse_frame):
Fix compilation of id3demux when zlib is not present.
(Fixes#326602; patch by: Sergey Scobich)
Original commit message from CVS:
2006-01-13 Thomas Vander Stichele <thomas at apestaart dot org>
patch by: Mike Smith
* gst/level/gstlevel.c: (gst_level_message_new),
(gst_level_message_append_channel):
Fix memleak. Fixes#326612
Original commit message from CVS:
reviewed by: Edward Hervey <edward@fluendo.com>
* gst/qtdemux/qtdemux.c: (qtdemux_video_caps):
Add support for Indeo3 video in Quicktime files.
Closes#326524
Original commit message from CVS:
2005-01-07 Philippe Khalaf <philippe.kalaf@collabora.co.uk>
* gst-plugins-good/gst/udp/gstdynudpsink.c:
* gst-plugins-good/gst/udp/gstudpsrc.c:
Allow udpsrc and dynudpsink to take a sockfd as a parameter. For udpsrc,
overrides the port or multicast parameters. Fixes bugs #323021.
Original commit message from CVS:
* gst/id3demux/gstid3demux.c: (gst_id3demux_add_srcpad):
Add gst_element_no_more_pads() for proper decodebin behaviour.
* gst/id3demux/id3v2frames.c: (parse_comment_frame),
(parse_text_identification_frame), (parse_split_strings):
Failure to decode some tags is not a GST_ERROR() but a
GST_WARNING()
When iterating over a chunk of text, check that we haven't gone too
far.
Original commit message from CVS:
* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_render),
(gst_multiudpsink_remove), (gst_multiudpsink_get_stats):
* gst/udp/gstmultiudpsink.h:
Track packets sent per client in addition to bytes sent; provide
this info through get-stats signal
Original commit message from CVS:
* gst/id3demux/id3tags.c: (id3demux_read_id3v2_tag):
If a broken tag has 0 bytes payload, at least still skip
the 10 byte header
Original commit message from CVS:
2005-12-22 Philippe Khalaf <burger@speedy.org>
* gst-plugins-good/gst/rtp/gstrtph263pdepay.h:
* gst-plugins-good/gst/rtp/gstrtph263pdepay.c:
* gst-plugins-good/gst/rtp/gstrtpmp4vdepay.h:
* gst-plugins-good/gst/rtp/gstrtpmp4vdepay.c:
Making these depayloaders (H263+ and mpeg4 video) inherit from
RtpBaseDepayloaderClass. Fixes bugs #323922 and #323908.
Original commit message from CVS:
2005-12-21 Jan Schmidt <thaytan@mad.scientist.com>
* 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.args:
* gst/id3demux/gstid3demux.c: (gst_id3demux_get_type),
(gst_id3demux_base_init), (gst_id3demux_class_init),
(gst_id3demux_chain):
* gst/id3demux/gstid3demux.h:
Add documentation for id3demux.
Don't fail if the first buffer is not at offset 0, just
attempt to typefind and do pass through
Rename the gst_type function from gst_gst_id3demux..
Original commit message from CVS:
* gst/udp/gstmultiudpsink.c: (gst_multiudpsink_render),
(gst_multiudpsink_add), (gst_multiudpsink_remove),
(gst_multiudpsink_get_stats):
* gst/udp/gstmultiudpsink.h:
Collect statistics; return them from get_stats.
Original commit message from CVS:
* ext/swfdec/gstswfdec.c: (gst_swfdec_class_init),
(gst_swfdec_chain), (gst_swfdec_render):
Add debugging category and return GstFlowReturn in the right places
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_link):
Get something from the peer pad once we've checked if there is a peer pad.
* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state),
(qtdemux_tree_get_child_by_type), (qtdemux_parse_trak),
(qtdemux_video_caps):
Couple of fixes
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
(gst_avi_demux_handle_src_event), (gst_avi_demux_parse_stream),
(gst_avi_demux_parse_odml), (gst_avi_demux_peek_tag),
(gst_avi_demux_next_data_buffer), (gst_avi_demux_stream_scan),
(gst_avi_demux_stream_header), (gst_avi_demux_loop):
Construct index for indexless files.
Make sure pad/buffers are correctly reset to NULL once we don't need
them anymore, else we get lovely segfaults/assertions.
* gst/wavparse/gstwavparse.c:
Yes, you can have 96KHz audio and wma in wav :(
Original commit message from CVS:
* ext/esd/esdmon.c: (gst_esdmon_open_audio):
* ext/esd/esdsink.c: (gst_esdsink_prepare):
* gst/multipart/multipartdemux.c:
change some char* into char[]
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_reset),
(gst_wavparse_other), (gst_wavparse_perform_seek),
(gst_wavparse_stream_headers), (gst_wavparse_stream_data),
(gst_wavparse_loop), (gst_wavparse_pad_convert),
(gst_wavparse_srcpad_event), (gst_wavparse_sink_activate_pull):
* gst/wavparse/gstwavparse.h:
Use GstSegment to implement more seeking features.
Original commit message from CVS:
* gst/rtsp/rtspconnection.c:
Add <netinet/in.h> include and move <arpa/inet.h> include
to make things work on OpenBSD as well (fixes#323717;
patch by: Benjamin Pineau)
Original commit message from CVS:
2005-12-14 Philippe Khalaf <burger@speedy.org>
* gst-plugins-good/gst/rtp/gstasteriskh263.c:
* gst-plugins-good/gst/rtp/gstrtpamrdepay.c:
* gst-plugins-good/gst/rtp/gstrtpamrpay.c:
* gst-plugins-good/gst/rtp/gstrtpg711depay.c:
* gst-plugins-good/gst/rtp/gstrtpg711depay.c:
* gst-plugins-good/gst/rtp/gstrtpgsmdepay.c:
* gst-plugins-good/gst/rtp/gstrtph263pay.c:
* gst-plugins-good/gst/rtp/gstrtph263pdepay.c:
* gst-plugins-good/gst/rtp/gstrtph263ppay.c:
* gst-plugins-good/gst/rtp/gstrtpmp4vdepay.c:
* gst-plugins-good/gst/rtp/gstrtpmp4vpay.c:
* gst-plugins-good/gst/rtp/gstrtpmpadepay.c:
* gst-plugins-good/gst/rtp/gstrtpmpapay.c:
* gst-plugins-good/gst/rtp/README:
Fixed payload range in payloder caps. Removed payload range completly from
depayloaders as they don't require payload type in their caps. In effect,
there isn't any specific payload type for any given codec, only suggestions.
Fixes bug #324011.
Original commit message from CVS:
2005-12-13 Julien MOUTTE <julien@moutte.net>
* gst/videomixer/videomixer.c: (gst_videomixer_init),
(gst_videomixer_fill_queues), (gst_videomixer_blend_buffers),
(gst_videomixer_collected): Code cleanup and re-enabling
queued time validity check for correct EOS handling.
Original commit message from CVS:
* gst/flx/gstflxdec.c: (gst_flxdec_chain):
If the speed of the file is null in the header, set the frame_time to the default
setting of GST_SECOND / 70. Which is the default frame_delay for .fli files as
stated in this document : http://www.compuphase.com/flic.htm
Would be nice to have the time conversion done properly too
(duration = flxh->frames * flxdec->frame_time)
Original commit message from CVS:
2005-12-12 Julien MOUTTE <julien@moutte.net>
* 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:
* gst/videomixer/videomixer.c:
(gst_videomixer_pad_sink_setcaps),
(gst_videomixer_getcaps), (gst_videomixer_fill_queues),
(gst_videomixer_update_queues), (gst_videomixer_collected):
Adding
documentation for videomixer on my way with a funny sample
pipeline.
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_dispose), (gst_au_parse_chain),
(gst_au_parse_change_state), (plugin_init):
* gst/auparse/gstauparse.h:
Use gst_object_unref() for GstObjects instead of
g_object_unref() and fix a mem leak in a debug
statement; while we're at it, also borgify, use
boilerplate macros and clean up a little bit.
Original commit message from CVS:
* gst/goom/gstgoom.c:
* gst/level/level-example.c: (main):
* gst/smoothwave/demo-osssrc.c: (main):
Use audiotestsrc instead of sinesrc (#323798).
Original commit message from CVS:
* gst/debug/efence.c: (gst_efence_init), (gst_efence_chain),
(gst_fenced_buffer_copy):
Make sure GST_BUFFER_DATA is set on fenced copied buffers; fix
GST_DEBUG crasher where GST_TIME_FORMAT was not used in
conjunction with GST_TIME_ARGS. Also, don't leak pad templates
and use GST_DEBUG_FUNCPTR for pad functions.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst),
(gst_faad_update_caps):
Assume that an unknown channel mapping with 2 channels
is stereo and play it that way instead of erroring.
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
(gst_qtdemux_add_stream), (qtdemux_parse_trak):
Handle e.g. jpeg streams with 0 duration frames as having 0 framerate.
Debug fixes. Some 64 bit variable fixes
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
(gst_qtdemux_add_stream):
Memleak fixes.
Send out EOS for valid reasons (couldn't pull_range() from upstream
for example).
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry):
Useless check now we're setting the current entry correctly.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_srcgetcaps):
Handle gracefully the consequence of "Maximum number of scalefactor
bands exceeded", which results in 0 channels with samplerates of 0.
* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state):
Do upward transitions, then call parent state_change, then do
downward transitions.
Original commit message from CVS:
* gst/matroska/matroska-mux.c:
(gst_matroska_mux_video_pad_setcaps):
Look for pixel-aspect-ratio in caps, not pixel_width and
pixel_height (Fixes: #322645)
Original commit message from CVS:
* gst/matroska/matroska-mux.c:
(gst_matroska_mux_video_pad_setcaps):
From Michal Benes:
frame duration should be GST_SECOND / framerate, not
GST_SECOND * framerate. (Fixes: #322643)
Original commit message from CVS:
* configure.ac:
fix up GST_PLUGIN_LDFLAGS
* gst/rtsp/rtspconnection.c:
fix includes (see #317043)
* gst/videofilter/Makefile.am:
stop installing this library
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-good-plugins-docs.sgml:
* docs/plugins/gst-plugins-good-plugins-sections.txt:
* gst/autodetect/gstautoaudiosink.c:
(gst_auto_audio_sink_base_init):
* gst/autodetect/gstautovideosink.c:
(gst_auto_video_sink_base_init),
(gst_auto_video_sink_factory_filter):
documenting auto*sink
using strstr for the video sink lookup, class field is not ordered
update other plugins
Original commit message from CVS:
2005-11-24 Julien MOUTTE <julien@moutte.net>
* gst/effectv/gstquark.c: (gst_quarktv_set_caps),
(gst_quarktv_get_unit_size), (gst_quarktv_transform),
(gst_quarktv_planetable_clear), (gst_quarktv_change_state),
(gst_quarktv_base_init), (gst_quarktv_class_init),
(gst_quarktv_init): Flush the planes list on reverse caps
negotiation. This was crashing because of differently sized
buffers.
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
(gst_qtdemux_add_stream), (qtdemux_dump_mvhd),
(qtdemux_parse_trak):
Convert to fractional framerates
Original commit message from CVS:
Fix for #321430: unresolved symbols due to incorrect linkage on inline functions
in goom.
Does not, however, fix the general crackheadedness of goom (global variables,
oh my!); this should be moved to -bad.
Original commit message from CVS:
* gst/autodetect/gstautoaudiosink.c:
(gst_auto_audio_sink_find_best), (gst_auto_audio_sink_detect):
* gst/autodetect/gstautovideosink.c:
(gst_auto_video_sink_find_best), (gst_auto_video_sink_detect):
Use gst_plugin_feature_list_free() to free feature list and
in the case of autovideosink free the list at all. Also
miscellaneous cosmetic fixes.
Original commit message from CVS:
* gst/cutter/gstcutter.c: (gst_cutter_chain),
(gst_cutter_set_property), (gst_cutter_get_caps):
copy calculation code from level; remove use of some audio
functions
Original commit message from CVS:
* ext/raw1394/gstdv1394src.c: (gst_dv1394src_class_init),
(gst_dv1394src_init), (gst_dv1394src_dispose),
(gst_dv1394src_set_property), (gst_dv1394src_discover_avc_node),
(gst_dv1394src_uri_set_uri):
* gst/udp/gstudpsrc.c: (gst_udpsrc_class_init),
(gst_udpsrc_update_uri), (gst_udpsrc_set_uri),
(gst_udpsrc_set_property), (gst_udpsrc_uri_get_uri):
URIHandler interface and element properties are now properly
synchronized for DV1394src and UDPSrc
Original commit message from CVS:
* gst/wavparse/gstwavparse.c: (gst_wavparse_init),
(gst_wavparse_create_sourcepad), (gst_wavparse_sink_activate):
Use GST_DEBUG_FUNCPTR; add debug message in pad activate function.
Original commit message from CVS:
* gst/auparse/Makefile.am:
* gst/auparse/gstauparse.c: (gst_auparse_class_init),
(gst_auparse_init), (gst_auparse_dispose), (gst_auparse_chain),
(gst_auparse_change_state):
* gst/auparse/gstauparse.h:
Partially fix#161712. playbin still doesn't work on these files,
(on the bug report, Andy says we aren't typefinding it for some
reason?) but at least auparse isn't totally busted like it was before.
Original commit message from CVS:
* gst/matroska/matroska-demux.c: (gst_matroska_demux_sync_streams):
Filler events are gone for now, comment out section generating
them.
Original commit message from CVS:
2005-11-20 Julien MOUTTE <julien@moutte.net>
* gst/matroska/matroska-mux.c: (gst_matroska_mux_start): Replace
GST_PAD_IS_USABLE by something approaching it.
Original commit message from CVS:
2005-11-20 Julien MOUTTE <julien@moutte.net>
* gst/matroska/matroska-mux.c: (gst_matroska_mux_start): Fix for
API changes.
* gst/wavenc/gstwavenc.c: (gst_wavenc_chain): Fix for API
changes,
but also fix the code that was not checking return values from
pad_push neither using pad_alloc_buffer.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/matroska/matroska-demux.c: (gst_matroskademux_do_index_seek):
When seeking, seek to closest index entry at or before the requested
seek position, not just the closest one (#321001).
Original commit message from CVS:
* gst/avi/gstavidemux.c: (swap_line), (gst_avi_demux_invert),
(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data):
Invert DIB images again (see #132341).
Original commit message from CVS:
* gst/avi/gstavidemux.c: (gst_avi_demux_reset),
(gst_avi_demux_src_convert), (gst_avi_demux_handle_src_event),
(gst_avi_demux_stream_header), (gst_avi_demux_handle_seek),
(gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data),
(gst_avi_demux_loop):
* gst/avi/gstavidemux.h:
Yeah, implement proper seeking. Exact seeking and segment seeking.
Still need to do some checks for segment_stop.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/qtdemux/qtdemux.c: (qtdemux_parse_udta):
Add support for custom genre tags.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/matroska/matroska-mux.c: (gst_matroska_mux_write_data):
Don't try to ready buffer duration from buffer that we don't
own any longer and that might already have been unreffed.
(#321136)