Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: Use the GST_READ macro I meant
to in the previous checkin. see #385192. You can have your
cheese back now.
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: Fix unaligned load that loads
from the dereferenced integer, not the pointer itself. Fixes
#385192.
I'm takin ur cheese!
Original commit message from CVS:
Based on patch by: Roland Kay <roland.kay at ox compsoc net>
* gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr):
For version 4 streams, read the extra codec data size from the
header instead of assuming it is always 16 (also read it from the
right position) (#384989). For version 4 and 5 streams, check that
the specified extra codec data size doesn't make us read beyond the
chunk boundary (#384989).
Original commit message from CVS:
Patch by: Sebastian Dröge <slomo@circular-chaos.org>
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
(gst_mpeg2dec_reset), (gst_mpeg2dec_alloc_sized_buf),
(gst_mpeg2dec_alloc_buffer), (init_dummybuf), (handle_slice):
* ext/mpeg2dec/gstmpeg2dec.h:
Align buffers to a 16 byte boundary so the altivec optimisations
don't crash. Fixes#327350.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_audio_stream):
The availability of extra codec data isn't something that
warrants debug messages at WARNING level (see #376958).
Original commit message from CVS:
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_base_init),
(gst_dvd_demux_class_init), (gst_dvd_demux_combine_flows),
(gst_dvd_demux_send_subbuffer):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_class_init),
(gst_mpeg_demux_init_stream), (gst_mpeg_demux_parse_packet),
(gst_mpeg_demux_parse_pes), (gst_mpeg_demux_combine_flows),
(gst_mpeg_demux_send_subbuffer):
* gst/mpegstream/gstmpegdemux.h:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_process_event),
(gst_mpeg_parse_chain):
Fix flow value combination; this fixes playbin/totem locking up if
a VobSub file is specified as subtitle file (#334322). Flow value
combination should only happen once we are fairly sure we've got all
pads that are available for now. Since there isn't a well-specified
time when this is the case in MPEG, we'll just assume this is the
case once there has been a certain number of packets for each
stream we've found so far.
Original commit message from CVS:
Patch by: Jan Arne Petersen <jpetersen at jpetersen dot org>
* ext/mpeg2dec/gstmpeg2dec.c: (handle_sequence), (handle_slice):
Simplify the framerate code and support more framerates. Fixes#361584.
Original commit message from CVS:
Patch by: Sebastian Dröge <slomo@circular-chaos.org>
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init):
Fix minor memleak when creating pads from static pad templates (#369627).
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/mpeg2dec.c: (setup_mpeg2dec),
(cleanup_mpeg2dec), (GST_START_TEST), (mpeg2dec_suite), (main):
Add unit tests for mpeg2dec (#369627).
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_sink_event), (gst_lame_chain),
(gst_lame_change_state):
* ext/lame/gstlame.h:
Make lame timestamp flushed eos buffer by some additional timestamp
accounting. Fixes#374760.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(mp3_type_frame_length_from_header), (gst_mp3parse_reset),
(gst_mp3parse_init), (gst_mp3parse_dispose),
(gst_mp3parse_sink_event), (gst_mp3parse_chain), (head_check),
(gst_mp3parse_change_state):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Make timestamp handling in mp3parse saner; now works for at least
simple cases.
Original commit message from CVS:
* gst/mpegaudioparse/Makefile.am:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(mp3_type_frame_length_from_header), (gst_mp3parse_class_init),
(gst_mp3parse_reset), (gst_mp3parse_init), (gst_mp3parse_dispose),
(gst_mp3parse_sink_event), (gst_mp3parse_chain), (head_check),
(gst_mp3parse_change_state), (plugin_init):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Bring mp3parse into the 21st century.
Use its own debug category, use gstadapter, format nicely to 80
columns, and fix incorrect handling of 32 kHz and less files.
Original commit message from CVS:
Patch by: Sebastian Droege <slomo at ubuntu dot com>
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_finalize),
(gst_mpeg2dec_alloc_buffer), (init_dummybuf), (handle_slice):
* ext/mpeg2dec/gstmpeg2dec.h:
libmpeg2 requires its output buffers to start at a 16byte aligned
address or the altivec optimizations will explode.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_read):
Use dsi_pack.dsi_gi.vobu_ea correctly, add some more debugging
information (fixes#340433).
Original commit message from CVS:
Patch by: Josep Torra Valles <josep at fluendo com>
* gst/iec958/ac3_padder.c: (ac3p_init):
* gst/mpegstream/gstmpegparse.c:
* gst/realmedia/rmdemux.c: (gst_rmdemux_parse__rmf),
(gst_rmdemux_parse_prop), (gst_rmdemux_parse_mdpr),
(gst_rmdemux_parse_indx), (gst_rmdemux_parse_indx_data),
(gst_rmdemux_parse_data), (gst_rmdemux_parse_cont),
(gst_rmdemux_parse_packet):
Misc. fixes for problems discovered by Forte (different return types
in function declaration and definition, pointer arithmetics with
void pointers). Fixes#362639.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_goto_title):
Don't announce audio or subtitle streams that aren't really present,
it makes dvddemux create pads that will never carry any data, which
is not good.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_set_property):
Round up not allowed bitrates to the next higher allowed one
(Closes: #361140).
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_sink_setcaps),
(gst_lame_set_property), (gst_lame_get_property), (gst_lame_chain),
(plugin_init):
* po/POTFILES.in:
Add i18n magic to lame plugin. Throw decent error message when we
fail to setup the encoder (#361140, 361151); misc. minor clean-ups.
Original commit message from CVS:
* gst/realmedia/rdtdepay.c: (gst_rdt_depay_base_init),
(gst_rdt_depay_init), (gst_rdt_depay_setcaps),
(gst_rdt_depay_chain), (gst_rdt_depay_change_state):
Change caps to x-rdt, because it's not x-rtp.
* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
(gst_rmdemux_parse_mdpr), (gst_rmdemux_parse_packet),
(gst_rmdemux_plugin_init):
Activate pad before adding to the element.
Return the combined stream return values after pad_alloc.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (handle_slice):
* ext/mpeg2dec/gstmpeg2dec.h:
Add some debugging to timestamp handling.
Make sure we don't convert invalid timestamps.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_sink_event),
(gst_asf_demux_setup_pad), (gst_asf_demux_process_segment):
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_audio_stream),
(gst_dvd_demux_get_subpicture_stream):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream),
(gst_mpeg_demux_get_audio_stream),
(gst_mpeg_demux_get_private_stream):
Active pads before adding them to the running element. Don't assert
on non-BYTE format newsegment events in asfdemux.
Original commit message from CVS:
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (update_timestamps):
If an incoming timestamp is within one sample of our current
timestamp, then keep it. This prevents imprecision in the
PTS (which only has 90khz granularity) from affecting our stream.
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_handle_src_query):
Reflow code so that compiler doesn't complain about possible use
of uninitialised variable any longer; but just in case, initialise
it anyway; also take object ref in query function and do peer pad
stuff in a more thread-safe way.
Original commit message from CVS:
* configure.ac:
As another attempt, synaesthesia can be enabled by passing
--with-plugins="synaesthesia" to configure
Original commit message from CVS:
* ext/mad/gstid3tag.c:
* gst/mpegstream/gstrfc2250enc.h:
* gst/synaesthesia/gstsynaesthesia.c:
More G_OBJECT macro fixing.
Original commit message from CVS:
Patch by: Yves Lefebvre <ivanohe at abacom dot com>
* ext/mpeg2dec/gstmpeg2dec.c: (init_dummybuf):
Fix initialisation dummy buffer, the offsets are relative to the start
of the buffers. Fixes#356004.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_read):
Add convert query (needed for later when we just operate in time
format and let the base source class handle all the seeking stuff).
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_process_ext_content_desc):
Erm, lets properly fix it. The only non-text tag that we support is
the track-number and that is an UINT. asfdemux was returning a GValue
initialized as INT. Further the Track and not the TrackNumber tag
(the latter is a string too).
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_get_gst_tag_from_tag_name),
(gst_asf_demux_process_ext_content_desc):
Skip tags that are unknown (was producing an uninialized GValue).
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_mode_get_type),
(gst_a52dec_class_init), (gst_a52dec_init), (gst_a52dec_channels),
(gst_a52dec_handle_frame), (gst_a52dec_change_state),
(gst_a52dec_set_property), (gst_a52dec_get_property):
* ext/a52dec/gsta52dec.h:
Patch from from Michal Benes <michal.benes@itonis.tv>:
Add two things to a52dec: configure the exact output format for ac3
decoding through properties, if desired.
By default, configure an output format preferred by downstream. Now
that audioconvert lists caps by preference, this means that a52dec
can do downmixing (iff required) rather than audioconvert, so it can
use the ac3 downmix levels from the bitstream.
Original commit message from CVS:
* ext/lame/Makefile.am:
* ext/mpeg2dec/Makefile.am:
* gst/dvdlpcmdec/Makefile.am:
* gst/dvdsub/Makefile.am:
* gst/mpegaudioparse/Makefile.am:
Add missing GST_LIBS to the link flags
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream):
Use static pad templates with ANY caps for the source pads for
simplicity and to avoid warnings when creating pads for unhandled
codec IDs (#351795).
Original commit message from CVS:
Patch by: Michal Benes <michal dot benes at itonis dot tv>
* ext/mad/gstmad.c: (gst_mad_chain):
Fix timestamping in mad by only activating a new timestamp when the
previous frame has been decoded. Fixes#350723.
Also clean up some of the non fatal warnings when the input buffer is
too small to decode a header.
Original commit message from CVS:
Patch by: Wim Taymans <wim at fluendo dot com>
* ext/a52dec/gsta52dec.c: (gst_a52dec_sink_event):
Instead of forwarding the event in the wrong format, unref it and set
a boolean that we still need to send it in the streaming thread.
Fixes#350554
Original commit message from CVS:
Patch by: Edward Hervey (edward at fluendo dot com)
* ext/dvdread/dvdreadsrc.c: (plugin_init):
Put debug category initialization before use of GST_DEBUG, in order
to remove a fatal warning. Fixes#350895
Original commit message from CVS:
* gst/dvdsub/gstdvdsubdec.c: (plugin_init):
Set rank to NONE for the time being until we make playbin handle
subtitle pictures again (dvdsubdec seems to be a bit shaky at
times when seeking, so it's probably better if it doesn't get
autoplugged for the time being).
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
(gst_rmdemux_parse_mdpr):
Handle audio streams with stream_version 3 properly; warn about
unknown stream versions; handle unknown fourccs a tad more
gracefully (setting bogus caps). Also, use GST_FOURCC_ARGS
with GST_FOURCC_FORMAT.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_goto_title):
Error out properly if this is an interactive DVD (fixes#345694).
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_chain):
When the first_access is 1 or 0, we should copy the timestamp from
the incoming buffer if there is one.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_channels), (gst_a52dec_push),
(gst_a52dec_reneg), (gst_a52dec_handle_frame), (gst_a52dec_chain):
Use GST_ELEMENT_ERROR for error reporting; post errors in some
more places; remove superfluous newlines from debug statements.
Original commit message from CVS:
Patch by: Frédéric Riss <frederic.riss at gmail com>
* gst/dvdsub/gstdvdsubdec.c: (gst_send_subtitle_frame):
Don't set negative durations on outgoing buffers (#350044),
which happens when you use macros that got changed during
the last unstable cycle because they were thought not to
be used anywhere.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_stop),
(gst_dvd_read_src_goto_chapter),
(gst_dvd_read_src_get_chapter_starts),
(gst_dvd_read_src_goto_title), (gst_dvd_read_src_get_next_cell),
(gst_dvd_read_src_get_time_for_sector),
(gst_dvd_read_src_get_sector_from_time), (gst_dvd_read_src_read),
(gst_dvd_read_src_handle_seek_event), (gst_dvd_read_src_do_seek),
(gst_dvd_read_src_goto_sector):
* ext/dvdread/dvdreadsrc.h:
Add basic support for time-based seeking; set timestamps on
outgoing buffers if we have them; create table with
chapter to time mapping when opening a title; rename
gst_dvd_read_src_get_next_cell_for() to _get_next_cell() and
make it take an explicit pgc argument; fix up some debugging
messages so that title/chapter numbers are printed as starting
from 1 for easier readability.
Original commit message from CVS:
* gst/realmedia/Makefile.am:
* gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr),
(gst_rmdemux_parse_cont):
* gst/realmedia/rmutils.c: (gst_rm_utils_read_string8),
(gst_rm_utils_read_string16), (gst_rm_utils_read_tags):
* gst/realmedia/rmutils.h:
Factor out some code into rmutils.[ch]; when reading
strings, don't read beyond the available data; read
metadata strings correctly (string length is 16 bits
here, not just 8).
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (plugin_init):
* po/POTFILES.in:
Make custom error messages translatable.
* gst/asfdemux/gstasf.c: (plugin_init):
Remove setlocale() call, doesn't seem to be needed or recommended for
plugins, at least not according to gstreamer/docs/random/i18n.
Original commit message from CVS:
* gst/asfdemux/Makefile.am:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasf.c: (plugin_init):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_object):
Error out when the stream is encrypted (rather than feeding
garbage to the decoders). Fixes#349025.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_class_init),
(gst_rmdemux_init), (gst_rmdemux_chain), (gst_rmdemux_add_stream),
(gst_rmdemux_parse_mdpr), (gst_rmdemux_parse_data),
(gst_rmdemux_stream_clear_cached_subpackets),
(gst_rmdemux_descramble_cook_audio),
(gst_rmdemux_descramble_dnet_audio),
(gst_rmdemux_handle_scrambled_packet), (gst_rmdemux_parse_packet):
Descramble cook audio streams before sending them to the
decoder. Fixes#347292.
Also miscellaneous clean-ups and log-level changes.
Original commit message from CVS:
2006-07-26 Zaheer Abbas Merali <zaheerabbas at merali dot org>
* ext/lame/gstlame.c: (gst_lame_setup):
Fix lame putting lots of 0's at start of mp3. Fixes bug #348786.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c:
(gst_asf_demux_get_ext_stream_props_for_stream),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_change_state):
Find language codes for audio streams if they are available.
Original commit message from CVS:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_obj_stream),
(gst_asf_demux_process_stream),
(gst_asf_demux_process_language_list),
(gst_asf_demux_process_ext_stream_props),
(gst_asf_demux_process_queued_extended_stream_objects),
(gst_asf_demux_process_object), (gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Parse extended stream properties objects and stream objects
hidden inside them (but delay creation of the appropriate
pads until after all the 'normal' stream objects have been
dealt with) (#343763). Also parse language list object.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk):
Skip chunks for unknown streams properly. Fixes broken sound
and/or video for files that have additional streams that
we don't recognise yet (e.g. if they are embedded in extended
stream properties). Partly fixes#343763.
Original commit message from CVS:
* gst/asfdemux/asfheaders.c:
* gst/asfdemux/asfheaders.h:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_identify_guid),
(gst_asf_demux_process_header), (gst_asf_demux_push_obj),
(gst_asf_demux_pop_obj), (gst_asf_demux_process_object),
(gst_asf_demux_change_state):
* gst/asfdemux/gstasfdemux.h:
Add some more GUIDs and make debug log more readable
and easier to follow when parsing the headers.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_init),
(gst_dvd_read_src_is_seekable), (gst_dvd_read_src_class_init),
(gst_dvd_read_src_stop), (gst_dvd_read_src_goto_title),
(gst_dvd_read_src_create), (gst_dvd_read_src_handle_seek_event),
(gst_dvd_read_src_do_seek), (gst_dvd_read_src_src_event):
* ext/dvdread/dvdreadsrc.h:
Rewrite seeking code and make seeking in DVDs work (#337834).
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_setup_pad),
(gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream),
(gst_asf_demux_push_buffer):
* gst/asfdemux/gstasfdemux.h:
Handle unknown codec IDs/fourccs properly (#345879); send tag
events after newsegment event; fix use of GST_FOURCC_FORMAT
macro.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (plugin_init):
Call the channel positions get_type() method in plugin_init
to ensure that it isn't simultaneously called later from
multiple threads.
Original commit message from CVS:
* gst/mpegstream/gstmpegpacketize.c:
(gst_mpeg_packetize_flush_cache), (gst_mpeg_packetize_put):
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_chain):
Also flush packetizer cache when we get a buffer that has the
DISCONT flag set; update current byte position from buffer
offset after a flush.
Original commit message from CVS:
* gst/mpegstream/gstmpegpacketize.c: (gst_mpeg_packetize_new),
(gst_mpeg_packetize_flush_cache), (gst_mpeg_packetize_destroy),
(gst_mpeg_packetize_read):
* gst/mpegstream/gstmpegpacketize.h:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_process_event),
(gst_mpeg_parse_change_state):
Flush packetizer cache when we get a FLUSH_STOP event;
remove unused source pad member from packetizer; add debug
category for packetizer.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_channels), (plugin_init):
Treat dual-mono as stereo. It should really be output on 2 separate
pads, but isn't for now.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_negotiate_format):
Assume pixel-aspect-ratio of 4:3 if libmpeg2dec doesn't give us
any PAR whatsoever (rather than using 0/0, which will lead to
an abort later on). Fixes#345184.
Original commit message from CVS:
Patch by: Michael Dominic K. < mdk at mdk org pl>
* ext/mad/gstmad.c: (gst_mad_chain):
Send newsegment event before calling
gst_pad_alloc_buffer_and_set_caps(), makes mad behave better
in connection with pad blocking (#342594). While we're at it,
do some minor clean-ups.
Original commit message from CVS:
* ext/a52dec/Makefile.am:
... and then he said "When you go and fix the build you
better make sure you have some spare backslashes in your
pocket".
Original commit message from CVS:
* ext/sidplay/gstsiddec.cc:
Fix copyright, email addresses and descriptions.
Use saner defaults for arguments. Fixes#344667.
constify some stuff.
Fix memleaks.
Add tags.
Fix negotiation to do mono/44100 by default.
Post error messages.
Use _scale_int where possible.
Original commit message from CVS:
* tests/check/elements/amrnbenc.c: (push_data):
Init memory before feeding it to the encoder to make
the valgrind test succeed.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_finalize),
(gst_mpeg2dec_reset), (clear_buffers), (handle_picture),
(gst_mpeg2dec_sink_convert), (gst_mpeg2dec_src_convert),
(gst_mpeg2dec_change_state):
* ext/mpeg2dec/gstmpeg2dec.h:
Simplify and don't leak our buffer pool.
Use _scale_int.
Remove unfixed bug number from previous ChangeLog entry.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_base_init),
(gst_mpeg2dec_class_init), (gst_mpeg2dec_init),
(gst_mpeg2dec_finalize), (gst_mpeg2dec_reset),
(gst_mpeg2dec_qos_reset), (gst_mpeg2dec_alloc_buffer),
(gst_mpeg2dec_negotiate_format), (init_dummybuf),
(handle_sequence), (handle_picture), (handle_slice),
(gst_mpeg2dec_chain), (gst_mpeg2dec_sink_event),
(gst_mpeg2dec_src_event), (gst_mpeg2dec_change_state):
* ext/mpeg2dec/gstmpeg2dec.h:
Fix padtemplate as we can now do fractional framerates.
Small cleanups.
Use GstSegment.
Add simple frame dropping QoS.
Precalc buffer output sizes and UV offsets.
Always give libmpeg2 a valid fbuf when it wants one.
don't trust libmpeg to discard our buffers but manage it
ourselves.
Fixes#343627, #327350, #335288
Original commit message from CVS:
* win32/MANIFEST:
Add a manifest for futures ugly win32 releases.
* gst/iec958/ac3iec.c: (ac3iec_chain_raw):
Move bufcaps declaration at the begining of the instructions
block.
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/amrnb/amrnbdec.c: (gst_amrnbdec_event), (gst_amrnbdec_chain):
* ext/amrnb/amrnbparse.c: (gst_amrnbparse_init),
(gst_amrnbparse_sink_event), (gst_amrnbparse_chain),
(gst_amrnbparse_sink_activate), (gst_amrnbparse_state_change):
* ext/amrnb/amrnbparse.h:
Sortof first quick cleanup of all this mess...
Don't crap out on empty and invalid FTs but treat them as
empty packets, the decoder handles them fine.
Fixes#342222.
Original commit message from CVS:
* gst/asfdemux/gstasf.c: (plugin_init):
Call gst_riff_init() so the riff debug category gets set up
before it is being used.
Original commit message from CVS:
* gst/iec958/ac3_padder.c: (ac3p_parse):
* gst/iec958/ac3_padder.h:
* gst/iec958/ac3iec.c: (ac3iec_init), (ac3iec_set_property),
(ac3iec_chain_raw), (ac3iec_change_state):
* gst/iec958/ac3iec.h:
Write rate into the caps, for the allowed ac3 rates. Some minor
cleanups.
Original commit message from CVS:
Patch by: James "Doc" Livingston <doclivingston gmail com>
* ext/mad/gstid3tag.c: (gst_id3_tag_get_tag_to_render):
Do tag merging correctly (#339918). Output taglists
properly in debug statements too while we're at it.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_chain):
Add more debug
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcm_reset),
(gst_dvdlpcmdec_init), (update_timestamps),
(gst_dvdlpcmdec_chain_dvd), (gst_dvdlpcmdec_chain_raw),
(dvdlpcmdec_sink_event):
* gst/dvdlpcmdec/gstdvdlpcmdec.h:
If we have a first_access offset but no current timestamp (might
happen after a seek), then calculate a start time for the first
portion so that it will align with the timestamp given for the
first_access portion.
If a new-segment arrives with format time, store the start
time as a failsafe timestamp in case we never get any further
timestamp info (unlikely)
Mask out the 'frame number' section of the incoming header so
that we don't consider it to be changing on every buffer and
reset the caps constantly.
Use gst_util_uint64_scale for duration calculation
Original commit message from CVS:
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain_dvd):
Fix timestamping for cases where the first_access parameter is 4.
Ensure we don't overrun buffers in other cases.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_get_type),
(gst_lame_release_memory), (gst_lame_init), (gst_lame_sink_event),
(gst_lame_setup), (gst_lame_change_state):
* ext/lame/gstlame.h:
Remove tag writing from lame (which was completely broken
anyway, #329184). Leaving GstTagSetter interface around for
now, albeit non-functional. Should be removed completely
in 0.11. Use the 'id3v2mux' plugin from -good for writing
tags.
Original commit message from CVS:
Patch by: Andres Salomon <dilinger at debian org>
* ext/lame/gstlame.c: (gst_lame_sink_event):
Fix typo (comma vs. semicolon) (#340710).
Original commit message from CVS:
Patch by: Lutz Müller <lutz at topfrose de>
* ext/mad/gstmad.c: (gst_mad_init), (gst_mad_src_query):
Make mad the second element to support the highly useful
FORMATS query (#340594)
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_sink_convert),
(gst_mpeg2dec_src_query):
Remember the query duration format before passing it upstream since it
could have been modified.
Add GST_WARNING_OBJECT in sink convert function to detail why the
conversion didn't work.
Original commit message from CVS:
* ext/mad/gstid3tag.c:
* ext/mad/gstmad.c:
* gst/ac3parse/gstac3parse.c:
* gst/dvdlpcmdec/gstdvdlpcmdec.c:
* gst/synaesthesia/gstsynaesthesia.c:
Define GstElementDetails as const and also static (when defined as
global)
Original commit message from CVS:
* ext/dvdnav/dvdnavsrc.c: (gst_dvd_nav_src_push_titlelang_event):
Fix name of custom event (use same as dvdreadsrc).
* gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_chain),
(gst_dvd_sub_dec_sink_event), (gst_dvd_sub_dec_handle_dvd_event):
Fix event parsing (the event name is in the structure, not the
name of the structure itself); also fix indentation after
boilerplate macro.
Original commit message from CVS:
Patch by: Alexander Lancaster <alexl at users sourceforge net>
* ext/mad/gstid3tag.c: (gst_id3_tag_get_caps), (gst_id3_tag_init),
(gst_id3_tag_sink_event), (gst_id3_tag_src_link),
(gst_id3_tag_chain):
When acting as a muxer, set caps on outgoing buffers and set caps
on source pad (fixes#323658). Remove unused application/x-gst-tags
cruft from the 0.6 days.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_convert_sink), (gst_mad_convert_src),
(gst_mad_src_query), (gst_mad_chain):
.. and DEFAULT queries should work too. Use magic gst util scale
functions in some places.
Original commit message from CVS:
Patch by: Ed Catmur <ed at catmur dot co dot uk>
* ext/lame/gstlame.c: (gst_lame_sink_event):
Don't crash if we get an EOS event before the encoder
has been set up (#339287).
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_start),
(gst_dvd_read_src_goto_title), (gst_dvd_read_src_read),
(gst_dvd_read_src_create), (gst_dvd_read_src_goto_sector):
Move errors out of the normal code flow.
Don't send eos, basesrc will do that for us when needed.
Original commit message from CVS:
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_change_state):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_change_state):
* gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_change_state):
Do state changes correctly
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_sized_buf),
(gst_mpeg2dec_alloc_buffer):
Can't use gst_pad_alloc_buffer*() when we are going to crop
the image before sending it out. Downstream basetransform-based
elements will complain about the wrong unit size otherwise
(when not operating in passthrough-mode at least).
Const-ify some static variables and do some minor clean-ups.
Use I420 macros for size/offsets (not really necessary in this
particular context, but this kind of code gets copy'n'pasted).
Original commit message from CVS:
* gst/mpegstream/gstmpegpacketize.c: (gst_mpeg_packetize_put),
(read_cache):
* gst/mpegstream/gstmpegpacketize.h:
g_malloc() can't fail, we don't need to handle this. Same for
gst_buffer_new_and_alloc().
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_chain):
klass->send_buffer() should have the same semantics as
gst_pad_push(), ie. ownership of the buffer is transfered,
so we never have to unref the buffer no matter what the flow
return value was.
Original commit message from CVS:
add test for amrnbenc, enable test infrastructure, and fix a leak
* common/check.mak:
allow for specifying more than one suppressions file in SUPPRESSIONS
* Makefile.am:
* tests/Makefile.am:
* tests/check/.cvsignore:
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* configure.ac:
add tests/check
* tests/check/gst-plugins-ugly.supp:
add suppressions for libs used by -ugly
* tests/check/elements/amrnbenc.c: (buffer_new), (buffer_unref),
(setup_amrnbenc), (cleanup_amrnbenc), (push_data),
(GST_START_TEST), (amrnbenc_suite), (main):
add a simple test for encoding amr
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_init):
fix pad template leaks
Original commit message from CVS:
* ext/mad/gstmad.c: (index_seek):
move GstIndexEntry *entry variable declaration before
the first instruction
* ext/mad/gstmad.c:
remove debug macros with variable number of parameter by using
GST_DEBUG for WIN32
* gst/dvdsub/gstdvdsubdec.c: (gst_dvd_sub_dec_parse_subpic):
use gst_guint64_to_gdouble for conversions
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_sync_stream_to_time):
replace __FUNCTION__ which is not supported by MSVC by the current function name
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_reset):
remove LL suffix by using G_GINT64_CONSTANT
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead),(gst_mpeg_parse_get_rate):
use gst_guint64_to_gdouble for conversions
* gst/mpegstream/gstmpegparse.h:
remove LL suffix by using G_GINT64_CONSTANT
* win32/vs6:
add project files for tagac3parse, asfdemux, dvdlpcmdec, dvdsub, iec958, lame,
mad, mpegaudioparse, mpegstream, realmedia, synaesthesia
Original commit message from CVS:
Patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it>
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_sink_event),
(gst_asf_demux_push_buffer):
Send newsegment event only once per pad, fixes#336550.
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_handle_src_event):
Don't unref event unconditionally after giving away ownership
(gst_pad_push_event(), gst_pad_send_event() and
gst_pad_event_default() take ownership of the event
passed to them). Fixes warnings/crashes caused by
navigation events.
Original commit message from CVS:
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer):
Don't ref NULL caps (private streams have NULL caps) (#336387);
also, no need to set caps on the same buffer twice.
Original commit message from CVS:
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_event),
(gst_dvd_demux_handle_dvd_event), (gst_dvd_demux_get_audio_stream),
(gst_dvd_demux_get_subpicture_stream):
* gst/mpegstream/gstmpegdemux.c:
(gst_mpeg_demux_sync_stream_to_time):
Don't leak element and pad names in error messages, use
GST_DEBUG_PAD_NAME instead. Add some more debug code.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_init),
(gst_dvd_read_src_goto_title), (gst_dvd_read_src_read):
Name the structure in the custom event with the
language codes for the audio and subtitle streams
actually like dvddemux expects it to be named.
Set caps on source pad and outgoing buffers.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_init), (gst_lame_set_property),
(gst_lame_get_property), (gst_lame_setup):
* ext/lame/gstlame.h:
Make xingheader property non-functional, it's broken anyway
after all (use xingmux instead).
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_sink_event):
On EOS, flush encoder and send remaining data. Fix
return value handling in sink event function.
Original commit message from CVS:
Patch by: Jürg Billeter <j at bitron dot ch>
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_set_property):
Fix wrong check for started flag when setting the 'device' property.
We want to allow it when the source is NOT started yet and ignore it
when the source is running.
Original commit message from CVS:
Patch by: Fabrizio Gennari <fabrizio dot ge at tiscali dot it>
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_setup_pad),
(gst_asf_demux_process_chunk):
* gst/asfdemux/gstasfdemux.h:
Subtract first timestamp from timestamps, so that
stream starts from 0; makes live streams that don't
start at 0 work again (fixes#317310, #336097).
Original commit message from CVS:
Patch by: Christian Kirbach
* configure.ac:
Remove CXX tag from AS_LIBTOOL_TAGS, just like we did for
-good. Fixes build on some systems (#331838).
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
(gst_rmdemux_parse_cont):
Extract more tags and also post codec name tag on the
bus so this shows up in totem and nautilus.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream),
(gst_rmdemux_fill_audio_packet), (gst_rmdemux_parse_packet):
Extra data usually goes into the caps as 'codec_data', not
as first buffer into the stream.
Need to byte swap AC3 content in realmedia files for some
reason (fixes#331588).
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_init),
(gst_rmdemux_validate_offset), (gst_rmdemux_loop),
(gst_rmdemux_parse_mdpr), (gst_rmdemux_parse_packet):
When operating in pull mode, post an error message on the
bus when all source pads are unlinked or some other fatal
error occured (#323023). Regrade some recurring debug messages
to LOG level. Convert c++-style comments into C-style ones.
Original commit message from CVS:
Patch by: Michal Benes <michal dot benes at xeris dot cz>
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_init),
(gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes),
(gst_mpeg_demux_send_subbuffer), (gst_mpeg_demux_reset):
* gst/mpegstream/gstmpegdemux.h:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead):
Timestamps in mpeg stream are 32-bit numbers. Therefore, with a
clock_freq of 90kHz this timestamp overflows every ~13 hours. This
situation really happens when grabbing DVB streams. Current
mpegdemuxer can not handle this situation correctly and it
restarts counting gstreamer timestamps from zero.
Fixes#326598.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_sink_event),
(gst_a52dec_chain_raw), (gst_a52dec_change_state):
* ext/a52dec/gsta52dec.h:
Fix#334550: failure to play raw AC3 files due to segment problems.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_convert_sink), (gst_mad_update_info),
(gst_mad_sink_event), (gst_mad_change_state):
Include AUDIO_CODEC tag with tags posted if input is not
framed (#334258). Use _scale() util functions in more places.
Original commit message from CVS:
2006-03-12 Christophe Fergeau <teuf@gnome.org>
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* ext/lame/gstlame.c: (gst_lame_class_init): mark the xing-header
property as BROKEN (see
http://bugzilla.gnome.org/show_bug.cgi?id=330317#c19 for an
explanation why it's broken).
Original commit message from CVS:
* ext/mad/gstid3tag.c: (tag_list_to_id3_tag_foreach):
Add support for writing the GST_TAG_ALBUM_VOLUME_NUMBER
tag (#333683, patch by: Alex Lancaster).
Original commit message from CVS:
* ext/amrnb/amrnbdec.c: (gst_amrnbdec_init),
(gst_amrnbdec_setcaps), (gst_amrnbdec_chain),
(gst_amrnbdec_state_change):
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_init),
(gst_amrnbenc_setcaps), (gst_amrnbenc_chain),
(gst_amrnbenc_state_change):
* ext/amrnb/amrnbenc.h:
* ext/amrnb/amrnbparse.c: (gst_amrnbparse_init),
(gst_amrnbparse_query):
Further fancyfication.
Use _take to get writable data from the adapter.
Precalc packet duration.
Handle disconts.
Forward _push to upstream.
Post error messages when something goes wrong.
Remove old code in amrnbparse.
Don't ignore query results from upstream.
Original commit message from CVS:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_chain):
The AMR encoder writes into the audio buffers it processes, so
use gst_buffer_make_writable() on buffers we might (they go through
an adapter, so there can be copying going on later anyway) be
encoding.
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_pad_added),
(gst_mpeg_parse_handle_src_query):
Declare variables at the beginning of a block and make
gcc-2.9x happy (fixes#328957; patch by: Jens Granseuer).
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_data):
Read packet size, sequence and padsize in right order again
(fixes#332796; patch by: Fabrizio Gennari).
Original commit message from CVS:
* configure.ac:
Make the id3tag and mad checks check for both a header and the
appropriate library if the pkg-config is missing. (Closes#331842)
Split the id3tag and mad checks into 2 pieces. Sometime soon I might
do the same for the plugins themselves.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
(gst_mpeg2dec_reset), (gst_mpeg2dec_chain):
* ext/mpeg2dec/gstmpeg2dec.h:
Don't treat STATE_INVALID as fatal error; throw an error
only after five consecutive decoding errors. Makes decoding
mpeg streams more robust and fixes playback of joined clips
(#300682).
Original commit message from CVS:
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_plugin_init):
Push the rank up to SECONDARY+1 so that dvddemux is preferred over
mpegdemux for MPEG-2 video streams.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_sink_event):
In sink event handler, release object lock again
_before_ sending EOS event downstream (#313838).
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (crop_copy_i420_buffer),
(crop_copy_i422_buffer), (crop_buffer):
When we need to crop the output buffer, make sure we
create a buffer of the right size and respect the implicit
striding used for I420 elsewhere in GStreamer (#331301).
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_stream):
Do not error out on non-recognized streams. Ignore them and allow
playback of the other streams.
Original commit message from CVS:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_file):
Take into account the file properties preroll value for
timestamping/newsegment. It's weird this value was commented out.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_init), (gst_lame_chain),
(gst_lame_change_state):
Fix up lame a bit.
Apply patch #319782 by Gautier Portet.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_init), (scale), (gst_mad_update_info),
(gst_mad_sink_event), (gst_mad_check_caps_reset), (gst_mad_chain),
(gst_mad_change_state):
Port fixes for bugs 314771, 308772, 140237, and 302625
from 0.8 (Patch by Jonathan Matthew, Fixes#329575)
Use GST_EVENT_FLUSH_STOP to clear data from the current input
buffer, to avoid using it for any future decoding.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c: (gst_amrnbdec_setcaps),
(gst_amrnbdec_chain), (gst_amrnbdec_state_change):
Some more comments.
* ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer), (handle_slice):
Applied patch from Fabrizio Gennari, fixes#330844.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_init),
(gst_dvd_read_src_class_init), (gst_dvd_read_src_start),
(gst_dvd_read_src_stop), (gst_dvd_read_src_goto_title),
(gst_dvd_read_src_set_property), (gst_dvd_read_src_get_property),
(gst_dvd_read_src_uri_get_uri), (gst_dvd_read_src_uri_set_uri):
* ext/dvdread/dvdreadsrc.h:
Let's try to play the title the user set via the URI handler or
via properties instead of always playing the first title. Also,
Also, count title/chapter/angle number in URI and properties
from 1 rather than 0.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_class_init),
(gst_dvd_read_src_get_size), (gst_dvd_read_src_do_seek),
(gst_dvd_read_src_do_duration_query):
Don't implement GstBaseSrc::get_size or GstBaseSrc::is_seekable,
otherwise GstBaseSrc will think we can operate pull_range based,
which we don't really, and typefinding will fail miserably.
Also, make seeking work somewhat (only works with flumpegdemux
at the moment, mpegstream needs fixing for that first).
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_read),
(gst_dvd_read_src_create), (gst_dvd_read_src_src_event):
Only allocate buffer once we know exactly how much we need,
rather than gratuitously allocating 2MB-buffers all the time
even if we usually need much less than that. Also, demote
a debug message from DEBUG to LOG level.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_class_init),
(gst_dvd_read_src_seekable), (gst_dvd_read_src_get_size),
(gst_dvd_read_src_do_seek), (gst_dvd_read_src_do_duration_query),
(gst_dvd_read_src_do_position_query):
Add some more debugging and fix duration query in BYTES.
Original commit message from CVS:
* configure.ac:
* ext/Makefile.am:
* ext/dvdread/Makefile.am:
* ext/dvdread/dvdreadsrc.c:
* ext/dvdread/dvdreadsrc.h:
Half-baked port to 0.10. Needs some love
in the seeking department, but at least
it does something.
* ext/dvdread/stream_labels.c:
* ext/dvdread/stream_labels.h:
Remove these (we use ISO-639 language codes internally; applications
that want to translate those into language names for display to the
user should rely on the iso-codes package for that).
Original commit message from CVS:
* ext/amrnb/amrnbdec.c: (gst_amrnbdec_init),
(gst_amrnbdec_setcaps), (gst_amrnbdec_event), (gst_amrnbdec_chain),
(gst_amrnbdec_state_change):
* ext/amrnb/amrnbdec.h:
Fix amrnbdec, handle events, take copy from adapter since the decoder
apparently writes in the source data.
Use some _scale_int, and precalc duration.
Fix some leaks, post ERROR messages.
Original commit message from CVS:
* gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream):
One source pad not being linked is not an error condition when we're
still parsing the header. In this case (e.g. where we don't have a
suitable decoder installed) just pretend everything is fine, so that
the demuxer will actually go on to signal no-more-pads when done
parsing the header, otherwise decodebin/playbin will never post the
appropriate error message if decoders are not available.
Original commit message from CVS:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_send_buffer):
If we haven't set caps on a source pad yet, the caps on the
pad are NULL, not un-fixed. Set caps on outgoing buffers.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_finalize), (gst_lame_class_init),
(gst_lame_init), (add_one_tag), (gst_lame_set_metadata):
* ext/lame/gstlame.h:
Contrary to what the const char in the lame API might suggest,
lame expects us to keep the strings we pass to id3tag_set_foo()
around; it doesn't free them either though, so we have to store
them somewhere and free them later when we can be sure lame
doesn't need them any longer.
Original commit message from CVS:
* ext/lame/gstlame.c: (add_one_tag):
Fix handling of GST_TAG_DATE (#311679), don't pass an
uninitialised string pointer to lame if we don't know
how to handle the tag type, and fix minor memory leak.
Original commit message from CVS:
2006-01-22 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_process_event):
Erase spurious call to gst_segment_set_newsegment.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event): Call
the superclass method when handling NEWSEGMENT events.
(gst_dvd_demux_handle_dvd_event): Get rid of dvd-audio-shutdown
and dvd-audio-restart event handling. There are currently less
hackish ways of handling the sparse audio stream problem.
Original commit message from CVS:
2006-01-20 Thomas Vander Stichele <thomas at apestaart dot org>
* ext/dvdnav/dvdnavsrc.c: (if):
* ext/dvdread/stream_labels.c:
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_segment):
* gst/realmedia/rmdemux.c: (gst_rmdemux_loop):
fix up error domains, error strings, and use of translation
* po/POTFILES.in:
fix up this file, even though none of them are actually marked
for build yet.
Original commit message from CVS:
2006-01-19 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_reset)
(gst_mpeg_parse_process_event, gst_mpeg_parse_parse_packhead)
(gst_mpeg_parse_change_state):
Make timestamp adjustment somewhat milder. Actual timestamps are
now sent unmodified unless an actual gap is found in the
stream. This should fix time display when playing most MPEG
files.
Original commit message from CVS:
* ext/amrnb/amrnbparse.c: (gst_amrnbparse_query):
* ext/mad/gstid3tag.c: (gst_id3_tag_src_query):
* ext/mad/gstmad.c: (gst_mad_src_query):
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_src_query):
* ext/sidplay/gstsiddec.cc:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_handle_src_query):
* gst/realmedia/rmdemux.c: (gst_rmdemux_src_query):
Pass unhandled queries upstream (useful e.g. for SEEKING query)
(fixes#325652; based on patch by: Philippe); make rmdemux return
FALSE for position queries, instead of setting -1 as value and
returning TRUE.
Original commit message from CVS:
2006-01-05 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_adjust_ts)
(gst_mpeg_parse_process_event, gst_mpeg_parse_pad_added): Don't
rewrite timestamps in the case segments are being set from
upstream, but use timestamps unmodified. Also send proper position
values. This allows for correct time display and makes queries
work in sink elements.
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_init)
(gst_dvd_demux_handle_dvd_event, gst_dvd_demux_send_subbuffer):
Rename flush_filter to segment_filter, which is better represents
what the arreibute does.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event):
Activate segment filtering when a timestamp discontinuity is seen.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_chain):
Don't forget that we need to send out a newsegment event after a
restart even if we don't have enough data to decode a frame right
now.
Original commit message from CVS:
2005-12-31 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event):
Use the new "audio-shutdown" and "audio-restart" DVD events
instead of the "spu-still-frame" event to shutdown and restart
the audio pipeline.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_adjust_ts):
Check for cases where the segment-based adjustment calculation
would produce negative values (which result in an overflow) and
return GST_CLOCK_TIME_NONE instead.
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_init)
(gst_dvd_demux_process_event, gst_dvd_demux_send_subbuffer):
Add a mechanism to discard audio buffers with timestamps outside
the currently set segment. This was causing (sometimes serious)
synchronization problems after seeking in DVDs with LPCM audio,
since VOBUs usually contain audio material that lies outside the
timestamp range specified by the header.
Original commit message from CVS:
* ext/mad/gstid3tag.c: (gst_id3_tag_get_type):
Remove lingering reference to GstID3Demux
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_pes):
Don't output debug saying padding streams are unknown type,
because they're not
Original commit message from CVS:
2005-12-27 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstdvddemux.c (AUDIO_CAPS)
(gst_dvd_demux_get_audio_stream): Use audio/x-lpcm as mimetype for
LPCM.
* gstmpegdemux.h:
* gstmpegdemux.c (gst_mpeg_demux_get_video_stream)
(gst_mpeg_demux_get_audio_stream):
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_get_video_stream)
(gst_dvd_demux_get_audio_stream)
(gst_dvd_demux_get_subpicture_stream)
(gst_dvd_demux_send_subbuffer):
Send current* pad buffers with appropriate caps.
Original commit message from CVS:
2005-12-26 Martin Soto <martinsoto@users.sourceforge.net>
* gst/iec958/ac3iec.h:
* gst/iec958/ac3iec.c:
(NORMAL_CAPS_DEF, RAW_AUDIO_CAPS_DEF, ac3iec_class_init)
(ac3iec_init, ac3iec_set_property, ac3iec_get_property): Add a
raw-audio property to ac3iec958 that allows setting the source pad
caps to raw audio instead of audio/x-iec958. This makes it
possible to use ac3iec958 together with the normal alsasink
element to drive an external receiver that autodetects AC3
content.
Original commit message from CVS:
* gst/iec958/ac3iec.c: (ac3iec_init), (ac3iec_setcaps),
(ac3iec_chain_dvd):
* gst/iec958/ac3iec.h:
Accept audio/x-ac3 and audio/ac3 to ac3iec958 element.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_src_event):
When getting a seek event, first check if the upstream element
can handle it and only do our own seek stuff when it can't
(should fix#322856).
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* ext/mpeg2dec/gstmpeg2dec.c: (normal_seek):
Really convert to BYTES format when we want to convert
to bytes (use right variable; fixes#322856).
Original commit message from CVS:
2005-12-19 Martin Soto <martinsoto@users.sourceforge.net>
Big mpegparse clean up, second round:
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event):
Send and EOS event down the audio pipeline when an still frame
event arrives. This prevents the pipeline from locking when a
still menu comes directly after a flush.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_reset):
Don't send a newsegment in reset.
(gst_mpeg_parse_adjust_ts): Check for invalid timestamps.
(gst_mpeg_parse_handle_newsegment, gst_mpeg_parse_process_event):
Move the code of handle_newsegment to process_event. Send a
NEWSEGMENT after FLUSH_STOP.
(gst_mpeg_parse_change_state): Send a NEWSEGMENT right after
moving to PAUSED.
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_send_event)
(gst_mpeg_demux_class_init): Don't override send_event.
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_init)
(gst_mpeg_demux_send_event, gst_mpeg_demux_send_subbuffer)
(gst_mpeg_demux_reset):
* gst/mpegstream/gstmpegdemux.h: Get rid of just_flushed
attribute.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_process_event):
Reset the mpegparse element after a flush.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_handle_newsegment):
Don't forward events.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_process_event):
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass):
handle_newsegment is not a virtual method anymore.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_send_newsegment)
(gst_mpeg_parse_reset, gst_mpeg_parse_class_init):
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass): Get
rid of send_newsegment virtual method.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event): Only
handle DVD events and call the superclass method for other event
types.
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_send_event): Don't
override process_event anymore.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_event)
(gst_mpeg_parse_process_event): Move actual event processing to
process event so that subclasses can properly override or extend
it.
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass):
Eliminate time parameter in process event.
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_init)
(gst_mpeg_demux_parse_packet, gst_mpeg_demux_parse_pes)
(gst_mpeg_demux_send_subbuffer):
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init)
(gst_mpeg_parse_parse_packhead, gst_mpeg_parse_event)
(gst_mpeg_parse_chain): Use the new adjust_ts method instead of
adding the value of the adjust attribute.
* gst/mpegstream/gstmpegdemux.h (struct _GstMPEGVideoStream): Get
rid of the adjust attribute. Now all timestamp adjustments are
performed by mpegparse using the current segment.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_adjust_ts)
(gst_mpeg_parse_class_init): Implement the adjust_ts method based
on the adjust attribute for SCR values and the current segment.
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass): New
adjust_ts virtual method to adjust timestamps for outgoing
buffers.
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_send_newsegment)
(gst_mpeg_demux_parse_packet): Don't override send_newsegment.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_class_init)
(gst_dvd_demux_handle_newsegment): Don't override
handle_newsegment.
(gst_dvd_demux_process_event, gst_dvd_demux_handle_dvd_event):
Check for DVD events in process_event instead of
handle_dvd_event.
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass):
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_handle_newsegment)
(gst_mpeg_parse_send_newsegment, gst_mpeg_parse_send_event):
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_process_event)
(gst_mpeg_demux_send_event):
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event)
(gst_dvd_demux_handle_dvd_event):
Eliminate the time parameter in send_event.
Original commit message from CVS:
* ext/mad/gstid3tag.c: (gst_id3_tag_do_typefind),
(gst_id3_tag_do_caps_nego), (gst_id3_tag_chain), (plugin_init):
Fix typefinding in id3demux, and then remove it in favour
of the new LGPL id3demux in gst-plugins-good
* ext/mad/gstmad.c: (gst_mad_dispose):
dispose can run more than once.
Original commit message from CVS:
* ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list),
(gst_id3_tag_do_typefind):
Use the correct function to free typefind factory list.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_src_query):
For position and duration queries in TIME format, try the peer
first (might be a demuxer).
Original commit message from CVS:
2005-12-08 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_newsegment):
Properly handle non contiguous VOBUs by adding the segment accum
field to the adjust value.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_class_init)
(gst_dvd_demux_init, gst_dvd_demux_handle_newsegment): Extend
handle_newsegment to prevent sending actual newsegment events and
use tiemstamp rewriting instead.
(gst_dvd_demux_handle_dvd_event): Don't send a newsegment after
dvd-lang-codes.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_handle_newsegment)
(gst_mpeg_parse_event):
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParseClass):
Add a new parameter to handle_newsegment to allow controlling
whether newsegment events are forwarded or not.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_init)
(gst_dvd_demux_handle_dvd_event, gst_dvd_demux_send_subbuffer)
(gst_dvd_demux_reset):
last_end_ptm and discont_time aren't necessary anymore, since
timestamp adjustment is now replaced by newsegment events.
(gst_dvd_demux_init): Prevent MPEGParse from adjusting
timestamps.
* gst/mpegstream/gstdvddemux.h:
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event):
Don't handle dvd-nav-packet events anymore, since the are now
replaced by standard newsegment events.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_init)
(gst_dvd_demux_handle_dvd_event, gst_dvd_demux_send_subbuffer)
(gst_dvd_demux_change_state):
* gst/mpegstream/gstdvddemux.h:
Get rid of the ignore_next_newmedia_discont hack.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_class_init)
(gst_dvd_demux_handle_newsegment):
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_class_init)
(gst_mpeg_demux_handle_newsegment): Don't override
handle_newsegment anymore. It was only necessary to handle
NEWMEDIA events.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_process_event)
(gst_dvd_demux_handle_dvd_event, gst_dvd_demux_set_cur_audio)
(gst_dvd_demux_set_cur_subpicture):
Reactivate handling of DVD events.
* gst/mpegstream/gstmpegparse.c (normal_seek)
(gst_mpeg_parse_handle_src_event)
(gst_mpeg_parse_handle_src_query):
First attempt at reenabling seek.
* gst/mpegstream/gstmpegparse.h:
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_init)
(gst_mpeg_parse_update_streaminfo)
(gst_mpeg_parse_get_rate)
(gst_mpeg_parse_convert, gst_mpeg_parse_get_src_query_types)
(gst_mpeg_parse_handle_src_query):
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_new_output_pad):
Make queries work again.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_reset)
(gst_mpeg_parse_handle_newsegment)
(gst_mpeg_parse_send_newsegment, gst_mpeg_parse_pad_added)
(gst_mpeg_parse_chain, gst_mpeg_parse_handle_src_event):
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
Get rid of the newsegment_pending attribute, and rely instead on
proper timestamp adjustment.
* gst/mpegstream/gstmpegparse.c
(gst_mpeg_parse_get_src_event_masks): Erase.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_init):
Initialize fields before creating pads to prevent the pad creation
callback from failing.
(gst_mpeg_parse_reset): Initialize new fields, and change
initialization order to match the order in the structure.
(gst_mpeg_parse_handle_newsegment): Forward new segment events
whenever possible, and update the current segment.
(gst_mpeg_parse_send_newsegment): Update the current segment and
pending_newsegment.
(gst_mpeg_parse_pad_added): Use the current segment to send
newsegment events to new pads.
(gst_mpeg_parse_chain): Properly add adjust time to sent buffers
and events. Properly update newsegment_pending.
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
New fields do_adjust and current_segment.
* gst/mpegstream/gstmpegdemux.c:
* gst/mpegstream/gstdvddemux.c:
* gst/mpegstream/gstmpegparse.h:
Rename handle_discont virtual method to handle_newsegment. Erase
some (already commented out support) for old NEW_MEDIA events.
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_init)
(gst_mpeg_parse_reset, gst_mpeg_parse_handle_discont)
(gst_mpeg_parse_pad_added, gst_mpeg_parse_parse_packhead)
(gst_mpeg_parse_event, gst_mpeg_parse_chain):
Erase the "pending_scr" field, and replace it by a slightly
different handling of the current SCR. Document code blocks in
parse_packhead and chain.
Original commit message from CVS:
* ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list):
g_warning() are only for really fatal warnings. If we can't decode a
tag, just ignore that tag and do a GST_WARNING.
Original commit message from CVS:
2005-12-05 Andy Wingo <wingo@pobox.com>
* ext/mad/gstid3tag.c (plugin_init): Remove id3tag -- there's just
id3demux and id3mux now. Fixes#323199.
Original commit message from CVS:
Reviewed by: Tim-Philipp Müller <tim at centricular dot net>
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_event):
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_send_newsegment),
(gst_mpeg_parse_send_event):
Ref events before sending them to multiple pads, after all
gst_pad_send_event() takes ownership of events. Don't leak
events that have not been handled (fixes#322745).
Original commit message from CVS:
2005-11-28 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_handle_dvd_event)
(gst_dvd_demux_handle_dvd_event): Erase code to prevent mpegparse
from making timestamp adjustments. This will have to be re-added
in some form in the near future, but in order to do that, some nav
packet parsing will be necessary in mpegdemux.
* gst/mpegstream/gstmpegparse.h (struct _GstMPEGParse):
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_init)
(g_value_set_int, gst_mpeg_parse_set_property)
Get rid of do_adjust and use_adjust. Rename max_discont to
max_src_gap.
(gst_mpeg_parse_parse_packhead): When max_scr_gap has a value of
-1, no adjustment is made.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init):
Rename max_discont property to max_scr_gap. Erase "adjust"
property.
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_send_event): Don't
override send_event anymore, base class does the job.
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_send_event):
Base class now does most of the work.
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_send_event):
Generalize to forwarding the event to all source pads in the
element.
* gst/mpegstream/gstmpegparse.h:
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init)
(gst_mpeg_parse_init, gst_mpeg_parse_set_clock)
(gst_mpeg_parse_chain, gst_mpeg_parse_get_property)
(gst_mpeg_parse_set_property):
Clock synchronization doesn't make sense anymore for a
demultiplexer.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_chain):
Proper warning statements,
Don't error if the src pad isn't linked when pushing.
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_change_state):
Proper state_change, avoids borkage when going to READY
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (handle_sequence):
Prime libmpeg2's pumps with some null custom buffers
to ensure it doesn't ask us to discard garbage later yay.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (handle_sequence):
Prime libmpeg2's pumps with some null custom buffers
to ensure it ask us to discard garbage later yay.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_init),
(gst_a52dec_sink_setcaps), (gst_a52dec_chain),
(gst_a52dec_chain_raw):
* ext/a52dec/gsta52dec.h:
Accept AC3 in audio/x-private1-ac3 format, which includes
DVD-specific headers, as well as raw AC3, for compatibility with
some demuxers.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_chain):
When pad_alloc returns other-than-GST_FLOW_OK and mad exits early,
skip frame synthesis and consume input data as if we'd done the
decode. Makes mad not error when the src pad is not connected.
(#319784)
Original commit message from CVS:
2005-11-23 Martin Soto <martinsoto@users.sourceforge.net>
* gst/mpegstream/gstmpegparse.c (gst_mpeg_parse_class_init)
(gst_mpeg_parse_handle_discont, gst_mpeg_parse_send_newsegment)
(gst_mpeg_parse_chain):
* gst/mpegstream/gstmpegdemux.c (gst_mpeg_demux_class_init)
(gst_mpeg_demux_send_newsegment):
* gst/mpegstream/gstdvddemux.c (gst_dvd_demux_send_subbuffer):
* gst/mpegstream/gstmpegparse.h:
Rename send_discont method to send_newsegment and add parameters
to handle actual segments. Adapt code all around to run with the
new name and signature.
* gst/mpegstream/gstmpegdemux.c:
* gst/mpegstream/gstmpegparse.c:
* gst/mpegstream/gstdvddemux.c:
Convert to GST_BOILERPLATE.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_chain):
Fix seeking even more by sending the newsegment event with the
right parameters. Should fix querying in playbin/totem after
a seek.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_mode_get_type), (gst_mad_src_query),
(normal_seek), (gst_mad_sink_event), (gst_mad_chain):
Fix seeking in stand-alone mode. Fix nonexistant enum value
introduced in previous commit. Improve debug messages here and
there. Actually return a proper return value in the sink event
handler.
Original commit message from CVS:
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_event):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_process_event):
Filler events have beem removed for now.