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:
* gst/mpegaudioparse/gstxingmux.c: (get_xing_offset):
Write Xing header at the correct position in the MP3 frame for
stereo files. Fixes bug #518676.
Original commit message from CVS:
* configure.ac:
* ext/sidplay/Makefile.am:
Check for and define ERROR_CXXFLAGS and GST_CXXFLAGS and use them
when building C++ code (#516509).
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_sink_setcaps):
Fix broken GST_ELEMENT_ERROR macro, fixes compile with the Sun
Workshop 12 compiler, but probably also crashes (#517985).
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_emit_frame), (gst_mp3parse_chain):
Try a bit harder to get valid timestamps, especially if upstream
gives us one and we are at the first frame or resyncing.
Return UNEXPECTED if we get a valid timestamp that is outside of
our configured segment. After all changes done so far this doesn't
seem to cause any regression, please test.
Original commit message from CVS:
Patch by:
Hans de Goede <j dot w dot r dot degoede at hhs dot nl>
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_seek_event):
If we don't have the position to seek to in our index first try
to convert from TIME to BYTES upstream and only if that fails
too use the old hack to simply seek to an earlier position
and let the sink drop everything before segment start.
Partially fixes bug #469930.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_emit_frame):
Handler buffers without valid timestamp more correctly: Don't drop
them and don't use the invalid timestamp to calculate the next
timestamp. Fixes bug #516811.
Original commit message from CVS:
Patch by: Tal Shalif <tshalif at nargila dot org>
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_create),
(gst_dvd_read_src_do_seek), (gst_dvd_read_src_do_position_query):
Add some gint64 casts to prevent 32 bit integer overflows.
Fixes bug #516989.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_emit_frame):
Return GST_FLOW_UNEXPECTED if we get data that is after our
configured segment. This makes upstream go EOS immediately instead
of sending us the complete stream. Also improve debugging a bit.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c:
Fix regression in DVD seeking - when a pack we
expect to be a NAV block turns out not to be, scan forwards
for up to 2MB (at most ~1sec) until we find one.
Fixes: #516278
Original commit message from CVS:
* gst/mpegaudioparse/gstxingmux.c: (generate_xing_header):
Correctly write the size in bytes on big endian systems.
Fixes bug #515725.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:(mp3parse_time_to_bytepos):
Use gst_guint64_to_gdouble for conversion
* win32/vs6/libgstasfdemux.dsp:
* win32/vs6/libgstdvdsub.dsp:
* win32/vs6/libgstrealmedia.dsp:
Update project dependencies and add new source files
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c:
Reset decoder when handling sequence where libmpeg2 has set
frame period to 0, probably due to a corrupt packet.
Fixes bug #514297
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (mp3_caps_create),
(gst_mp3parse_chain):
Don't set new caps on the srcpad everytime the bitrate or MPEG
version changes but calculate new spf value when the MPEG version
changes.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-bad-plugins-docs.sgml:
* docs/plugins/gst-plugins-bad-plugins-sections.txt:
* gst/xingheader/gstxingmux.c:
* gst/xingheader/gstxingmux.h:
Add documentation for the xingheader plugin.
* tests/check/elements/xingmux.c: (GST_START_TEST):
Set element state to PLAYING before doing something else.
Original commit message from CVS:
* tests/check/Makefile.am:
* tests/check/elements/.cvsignore:
* tests/check/elements/xingmux.c: (setup_xingmux),
(cleanup_xingmux), (GST_START_TEST), (xingmux_suite), (main):
* tests/check/elements/xingmux_testdata.h:
Add simple unit test for the xingmux element.
* gst/xingheader/gstxingmux.c: (generate_xing_header),
(gst_xing_mux_finalize), (xing_reset):
Fix a memleak and invalid seek tables with less than 100 MP3 frames.
Original commit message from CVS:
* docs/plugins/Makefile.am:
* docs/plugins/gst-plugins-ugly-plugins-docs.sgml:
* docs/plugins/gst-plugins-ugly-plugins-sections.txt:
Add the real and rtsp elements and update the lists.
* docs/plugins/inspect/plugin-amrnb.xml:
* docs/plugins/inspect/plugin-asf.xml:
* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
* docs/plugins/inspect/plugin-dvdsub.xml:
* docs/plugins/inspect/plugin-mpegaudioparse.xml:
* docs/plugins/inspect/plugin-mpegstream.xml:
* docs/plugins/inspect/plugin-realmedia.xml:
* docs/plugins/inspect/plugin-siddec.xml:
* docs/plugins/inspect/plugin-synaesthesia.xml:
Regenerate docs.
* gst/iec958/ac3_padder.c:
* gst/iec958/ac3_padder.h:
Do not use gtk-doc style comments for non gtk-doc comments. Note -
there are functions defined using extern in the .c file - does that
make sense?
Original commit message from CVS:
* ext/mad/gstid3tag.c: (gst_id3_tag_class_init):
Don't add pad templates for the base class but only in the
subclasses.
Original commit message from CVS:
* ext/lame/gstlame.c:
* ext/lame/gstlame.h:
Fix the case where you initially have stereo input, and so lame's
mode is not set to mono, and then you get input with mono audio and
soon after you get stereo input again. What happened before this
commit is that it would keep the encoding mode as mono. It should
change it back to the one requested by the app (or the default one)
if not requested.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_handle_first_frame), (mp3parse_time_to_bytepos),
(mp3parse_bytepos_to_time):
Interpolate the VBRI seek table entries to get better results,
support 3 byte seek table entries and prevent overflows in the
seek table by adding the relative offsets when using the seek
table in a large enough data type.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_reset),
(gst_mp3parse_handle_first_frame), (mp3parse_time_to_bytepos),
(mp3parse_bytepos_to_time):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Add support for seeking based on the VBRI seek table. Might make
sense to use interpolation in the table later to get hopefully a
bit more accurate values.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_sink_event):
Use gst_util_uint64_scale instead of gst_util_uint64_scale_int
as 8 * GST_SECOND is too large for int.
Original commit message from CVS:
* gst/xingheader/gstxingmux.c: (generate_xing_header):
Bitrate is 4 bits, not 8 so check for 0xe as maximum value instead
of 0xfe.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_reset),
(gst_mp3parse_emit_frame), (gst_mp3parse_handle_first_frame),
(mp3parse_total_bytes), (mp3parse_total_time):
* gst/mpegaudioparse/gstmpegaudioparse.h:
Add initial support for reading VBRI headers as found in VBR files
created by some Fraunhofer encoders. Currently we only read the
number of frames and bytes (and calculate duration, etc from this)
but there is also a seek table that we currently don't use.
Original commit message from CVS:
Patch by: Mark Nauwelaerts <manauw at syknet dot be>
* ext/lame/gstlame.c: (gst_lame_sink_setcaps),
(gst_lame_sink_event):
Correctly set number of channels when using mono-encoding mode
and fix the duration calculation of the EOS buffer.
Original commit message from CVS:
* gst/mpegaudioparse/gstmpegaudioparse.c:
(gst_mp3parse_handle_first_frame):
Guard against 0 values in the Xing header as frame count and
byte count and calculate the bitrate when we have all values
we need and not before.
Original commit message from CVS:
* gst/xingheader/gstxingmux.c: (has_xing_header),
(generate_xing_header), (gst_xing_mux_chain),
(gst_xing_mux_sink_event):
Choose smallest possible frame size for the Xing header, properly
set the timestamp, duration and offset on the outgoing buffers,
only send NEWSEGMENT events in BYTE format downstream and also
drop VBRI headers if already existing.
Original commit message from CVS:
* gst/xingheader/Makefile.am:
* gst/xingheader/gstxingmux.c: (parse_header), (get_xing_offset),
(has_xing_header), (generate_xing_header),
(gst_xing_mux_base_init), (gst_xing_mux_finalize), (xing_reset),
(gst_xing_mux_init), (gst_xing_mux_chain),
(gst_xing_mux_sink_event), (gst_xing_mux_change_state):
* gst/xingheader/gstxingmux.h:
Major cleanup and rewrite of xingmux with less bugs and new features:
- Handles other layers as 3
- Write TOC
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:
* autogen.sh:
Add -Wno-portability to the automake parameters to stop warnings
about GNU make extensions being used. We require GNU make in almost
every Makefile anyway.
* configure.ac:
Use AM_PROG_CC_C_O as a compiler that accepts both -c and -o
at the same time is required for per target flags.
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.