ID3 tags are usually handled by id3demux, and should be handled
by id3demux. Tag handling in mad based on libid3tag is very basic
and mostly unnecessary really, so just build this plugin without
ID3 tag support if libid3tag is not available.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_src_event), (gst_mad_chain),
(gst_mad_change_state):
* ext/mad/gstmad.h:
track discont on incomming buffers and set discont on outgoing
buffers.
Pass unknown events upstreams instead of dropping them.
Original commit message from CVS:
* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
* ext/a52dec/gsta52dec.c:
* ext/amrnb/amrnbdec.c:
* ext/amrnb/amrnbenc.c:
* ext/amrnb/amrnbparse.c:
* ext/lame/gstlame.c:
* ext/mad/gstmad.c:
* ext/sidplay/gstsiddec.cc:
* gst/asfdemux/gstrtspwms.c:
* gst/mpegaudioparse/gstxingmux.c:
* gst/realmedia/rademux.c:
* gst/realmedia/rdtmanager.c:
* gst/realmedia/rtspreal.c:
* gst/synaesthesia/gstsynaesthesia.c:
Add missing elements to docs. Restore alphabetical order in section
file. Document mad (it was included in docs already).
Fix doc-markup: use convinience syntax for examples
(produces valid docbook), add several refsec2 when we have several
titles. Fix some types.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_sink_event):
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_sink_event):
Push EOS, FLUSH_STOP and NEWSEGMENT immediately instead
of dropping and leaking them.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_dispose), (gst_mad_sink_event),
(gst_mad_chain):
* ext/mad/gstmad.h:
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_dispose),
(gst_mp3parse_sink_event), (gst_mp3parse_emit_frame):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Cache all events except EOS if we still have to send a NEWSEGMENT
event. This will let TAG events be forwarded until after decodebin
to an encoder for example as decodebin only links the pads
after NEWSEGMENT. Fixes bug #518933.
Original commit message from CVS:
* ext/mad/gstmad.c: (GST_TYPE_MAD_MODE),
(GST_TYPE_MAD_EMPHASIS), (GST_TAG_EMPHASIS), (CHECK_HEADER):
Call g_type_class_ref() from a thread-safe context and not
from the streaming thread to avoid GLib screwing up (see
bug #349410 and #493432). Comment out unused code.
Original commit message from CVS:
* ext/mad/gstmad.c: (mpg123_parse_xing_header):
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_handle_first_frame):
Make sure that the Xing TOC starts with 0 and the entries
are increasing over time. Otherwise it's broken and should
be skipped. Fixes bug #507821.
Original commit message from CVS:
* configure.ac:
* ext/mad/gstmad.c: (gst_mad_chain):
Use the new buffer clipping function from gstaudio here and
require gst-plugins-base CVS.
Original commit message from CVS:
* ext/mad/gstmad.c: (_do_init), (gst_mad_init), (index_seek),
(normal_seek), (gst_mad_sink_event), (clip_outgoing_buffer),
(gst_mad_chain), (gst_mad_change_state):
* ext/mad/gstmad.h:
Implement buffer clipping and use GST_BOILERPLATE instead of manual
GType magic. Part one of bug #308312.
Original commit message from CVS:
2007-03-27 Julien MOUTTE <julien@moutte.net>
* ext/mad/gstmad.c: (gst_mad_chain): Generate a perfect
stream and try to adapt to incoming timestamps lack of
precision up to half a frame. This allows generating
a perfect stream even with muxed formats like FLV where
the timestamps are stored in milliseconds.
Original commit message from CVS:
* ext/mad/gstmad.c: (gst_mad_convert_sink), (gst_mad_convert_src):
When handling seeks, don't convert -1 start or stop values to a bogus
byte position - pass them upstream as -1.
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: 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:
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/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/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:
* 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:
* 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:
* 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/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:
* 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:
* 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/gstmad.c: (gst_mad_src_query):
For position and duration queries in TIME format, try the peer
first (might be a demuxer).