When variable framerate is disabled in libx264 (which occurs when using
the zerolatency tuning), libx264 ignores timestamps but still uses the
timebase leading to messed up rate control with our nanosecond timebase.
We work around this issue by setting the timebase to the reciprocal of
the framerate and we validate that the framerate is suitable.
This has been fixed upstream in libx264 but there are non-fixed versions
in the wild so this workaround is still needed.
Fixes bug #632861
Position queries are badly handled for DVDs (probably due to the division in
chapters): the time returned was the time since the start of chapter.
Now ask upstream for position queries, fall back to the old code if upstream
cannot answer the query.
In X264_BUILD >= 78, b-pyramid became a non-boolean so passing a boolean
argument to the option string value causes an error. For < 78 we pass the
boolean value, for >= 78 we use the x264_b_pyramid_names[] array which will
result in passing 'none' for false and 'strict' for true. Other modes can be
set through the option-string property for now.
https://bugzilla.gnome.org/show_bug.cgi?id=626577
x264_encoder_encode() should be called with a NULL picture until at least
x264_encoder_delayed_frames() returns 0. This fixes what appeared to be a
regression in make check due to the recent change in defaults which enabled
b-frames and b-pyramid, both of which I believe increase the number of delayed
frames when encoding.
Use of a rate control method (pass, bitrate, quantizer, etc properties), a
preset and possibly a profile and/or tuning are now the recommended way to
configure x264 through x264enc.
If a preset/tuning are specified then these will define the default values and
the property defaults will be ignored. After this the option-string property is
applied, followed by the user-set properties, fast first pass restrictions and
finally the profile restrictions.
Addresses part of bug #607798
- Make defaults append the appropriate default value to a string. This is
needed to differentiate between something user-set and the actual prop
default.
- Add an internal option string to which _set_property () cases append for the
majority of properties.
- Use gst_x264_enc_parse_options () to clean up application of settings. This
will make order of application with respect to the presets and tunings quite
simple.
Addresses part of bug #607798
Uses new x264 API to apply reduced complexity values to the parameters to
increase encoding speed in the first pass of a multi-pass encode. This does
not impact on final quality.
Addresses part of bug #607798
In X264_BUILD >= 86 there is a new API for applying restrictions to an H.264
Profile. This makes it easier to achieve Baseline Profile for example.
Addresses part of bug #607798
If it is enabled, then it will be main profile instead of baseline.
This ensures maximum compatibility of the output stream until the
encoder configuration interface gets an overhaul with explicit
output profile selection.
Fixes#619776.
Fix off-by-one bug when constructing the avcC header chunk: we
wrote wrong profile info into the header. The first byte in the
SPS NAL we get from x264 is the nal type, not the profile_idc.
Also add some debug logging.
Fixes#610089.
lame's 'lgv' variable is only initialized when the caps
is negotiated, whenever a seek happens before that, it would
attempt to call a function on an empty pointer, causing the crash.
Fixes#603515
liba52 in a52dec-0.7.4 does not have any MMX, MMXEXT or 3DNOW based
IMDCT transform acceleration. It does however have a software based
acceleration using the djbfft library (D.J. Bernstein's library for
fourier transforms - Extremely fast library for floating-point
convolution). So allow liba52 to use it through the MM_ACCEL_DJBFFT
flag.
The liba52 copy in MPlayer sources does have SSE, 3dnowext, 3dnow
and AltiVec implementations, but those are checked for first, and
djbfft is chosen only if none of those is available - good in the
case of some distributions including a port of the MPlayer changes
in their system a52dec library.
The down and upmix code in liba52 doesn't seem to be disturbed by
this additional MM_ACCEL flag and will still use MMX, SSE or 3DNOW
versions if passed from oil_cpu_get_flags (SSE currently is not).
Fixes bug #592787.
Remove dvdnav plugin, it has no future. resindvd is the plugin to
use for dvd playback. Note that dvdnav was never really enabled
in -ugly, you had to edit configure.ac to get it built.
Original commit message from CVS:
* ext/x264/gstx264enc.c: (gst_x264_enc_class_init),
(gst_x264_enc_header_buf), (gst_x264_enc_encode_frame):
Use hyphen in property name, perform safety buffer size check
prior to mem access, and some more parentheses in macro.
Original commit message from CVS:
* ext/apexsink/Makefile.am:
Link against -lgcrpyto for RSA_new and RSA_free.
* ext/faac/gstfaac.c:
* ext/x264/gstx264enc.c:
Fix compiler warnings.
Original commit message from CVS:
* ext/x264/gstx264enc.c: (gst_x264_enc_set_src_caps):
Construct source caps in more conventional (and correct) manner.
Original commit message from CVS:
* ext/x264/gstx264enc.c: (gst_x264_enc_reset),
(gst_x264_enc_chain), (gst_x264_enc_encode_frame):
* ext/x264/gstx264enc.h:
Do not deal with duplicated input (timestamps). If needed,
a generic element can do so.
Do not manipulate input timestamps on the way out,
since that shifts the timeline and A/V sync.
Original commit message from CVS:
* docs/plugins/gst-plugins-bad-plugins.args:
Integrate new properties into documentation.
* ext/x264/gstx264enc.c: (gst_x264_enc_class_init),
(gst_x264_enc_init), (gst_x264_enc_init_encoder),
(gst_x264_enc_set_property), (gst_x264_enc_get_property):
Fix up API prior to eventual plugin move.
API: GstX264Enc:pass (provides more options, and changed to enum)
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:
* ext/x264/gstx264enc.c:
* tests/check/Makefile.am:
* tests/check/elements/x264enc.c: (setup_x264enc),
(cleanup_x264enc), (GST_START_TEST), (x264enc_suite), (main):
Add documentation and unit test for x264enc.
Original commit message from CVS:
* ext/x264/gstx264enc.c: (gst_x264_enc_init),
(gst_x264_enc_header_buf), (gst_x264_enc_encode_frame):
Allocate some buffers in more adaptive and economical fashion.
Original commit message from CVS:
* configure.ac:
Check for sufficiently up-to-date x264 API.
* ext/x264/gstx264enc.c: (gst_x264_enc_pass_get_type),
(gst_x264_enc_base_init), (gst_x264_enc_class_init),
(gst_x264_enc_init), (gst_x264_enc_init_encoder),
(gst_x264_enc_set_property), (gst_x264_enc_get_property):
* ext/x264/gstx264enc.h:
Expose some more parameters of the x264 encoder as properties.
Original commit message from CVS:
* ext/x264/gstx264enc.c: (gst_x264_enc_log_callback),
(gst_x264_enc_finalize), (gst_x264_enc_header_buf),
(gst_x264_enc_set_src_caps), (gst_x264_enc_sink_set_caps),
(gst_x264_enc_flush_frames):
Coding style and layout; re-order some functions in more
typical and natural flow.
Original commit message from CVS:
* ext/x264/Makefile.am:
* ext/x264/gstx264enc.c: (gst_x264_enc_header_buf),
(gst_x264_enc_sink_set_caps), (gst_x264_enc_base_init),
(gst_x264_enc_class_init), (gst_x264_enc_log_callback),
(gst_x264_enc_init), (gst_x264_enc_init_encoder),
(gst_x264_enc_finalize), (gst_x264_enc_chain),
(gst_x264_enc_encode_frame), (plugin_init):
* ext/x264/gstx264enc.h:
Use video format library and GST_WRITE_*_BE macros where applicable.
Use finalize in stead of dispose.
Set up debug category and log callback.
Original commit message from CVS:
* ext/x264/gstx264enc.c: (gst_x264_enc_header_buf),
(gst_x264_enc_sink_event), (gst_x264_enc_chain),
(gst_x264_enc_encode_frame):
Try harder not to crash when we get an EOS event but haven't set
up the encoder yet (as may happen when upstream errors out with
not-negotiated, for example). Also, always push the EOS event
downstream.
Original commit message from CVS:
* ext/x264/gstx264enc.c (gst_x264_enc_init_encoder):
This needs a version check.
* gst/bayer/Makefile.am:
Fix the build.
Perform some cleanups based on the dtsdec code such as using the boilerplate
macro and static pad template functions.
Add some documentation. Don't register a change in flags until we synch on
another frame successfully.
The repeat first field flag was introduced in 0.5.0 so conditionally disable its
detection and just assume no rff is used. This fixes the compilation.
Fixes#582375
lame_set_VBR_quality(), which takes a floating point value for the
quality, has been added only in v3.98. Use lame_set_VBR_q(), which
takes quality as an integer, for older LAME versions.
Fixes#581341.
Original commit message from CVS:
* ext/resindvd/plugin.c: (plugin_init):
* ext/resindvd/resindvdsrc.c:
* ext/twolame/gsttwolame.c: (plugin_init):
* gst/aiffparse/aiffparse.c: (plugin_init):
Enable/fix up translations for these plugins.
* po/LINGUAS:
Add 'ca' to LINGUAS.
* po/POTFILES.in:
* po/POTFILES.skip:
Add more files for translation and more files which tools
should skip.
Original commit message from CVS:
* ext/twolame/gsttwolame.c: (gst_two_lame_sink_setcaps),
(gst_two_lame_chain):
* ext/twolame/gsttwolame.h:
Allow raw float samples as input for encoding.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_negotiate_format):
Last change introduced a regression that made mpeg2dec handle
some 4:2:2 videos as 4:4:4. Fixes bug #562086.
Original commit message from CVS:
Patch by: Simon Holm Thøgersen <odie at cs dot aau dot dk>
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_chain):
Add support for the STATE_SEQUENCE_MODIFIED state in mpeg2dec
>= 0.5.0. Fixes bug #562065.
Original commit message from CVS:
* ext/sidplay/Makefile.am:
Use GST_CXXFLAGS for C++ code instead of GST_CFLAGS. The latter could
contain CFLAGS that do not exist for C++, like -Wvla or
-Wdeclaration-after-statement. Fixes bug #561161.
Original commit message from CVS:
* ext/amrnb/amrnbdec.c: (gst_amrnb_variant_get_type),
(gst_amrnbdec_class_init), (gst_amrnbdec_set_property),
(gst_amrnbdec_get_property), (gst_amrnbdec_chain):
* ext/amrnb/amrnbdec.h:
Add a property to select the amr variant. Fixes#424070.
Original commit message from CVS:
Patch by: Robin Stocker <robin at nibor dot org>
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init),
(handle_sequence), (gst_mpeg2dec_setcaps):
* ext/mpeg2dec/gstmpeg2dec.h:
Prefer the container's PAR over the stream's PAR if it's
given in the srcpad caps. Fixes bug #556184.
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:
* ext/a52dec/gsta52dec.c:
* ext/a52dec/gsta52dec.h:
Fix channel re-negotiation on a change of the incoming stream.
Patch By: Thijs Vermeir <thijsvermeir@gmail.com>
Fixes: #551660
Original commit message from CVS:
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_chain),
(gst_amrnbenc_state_change):
* ext/amrnb/amrnbenc.h:
Pass the discont flag from the input buffer on to the output buffer in
the AMR encoder.
Original commit message from CVS:
Patch by: Benoit Fouet <benoit dot fouet at purplelabs dot com>
* ext/amrnb/amrnbparse.c: (gst_amrnbparse_query),
(gst_amrnbparse_chain), (gst_amrnbparse_loop),
(gst_amrnbparse_state_change):
* ext/amrnb/amrnbparse.h:
Fix the duration query. Fixes#536226.
Also set caps on the pads and buffers more correctly.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c:
Set up a default time segment for output when receiving
an incoming byte segment (as for raw AC3 files).
Fixes: #548194
Original commit message from CVS:
Patch by: Frederic Crozat <fcrozat@mandriva.org>
* ext/dvdread/dvdreadsrc.c: (plugin_init):
* ext/lame/gstlame.c: (plugin_init):
* gst/asfdemux/gstasf.c: (plugin_init):
Make sure gettext returns translations in UTF-8 encoding rather
than in the current locale encoding (#546822).
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_class_init),
(gst_lame_get_default_settings):
Use the default for the strict-iso property too.
Allow a bitrate setting of 0, which lets lame choose the default value
and which makes it possible to set the compression-ratio property.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_class_init), (gst_lame_init),
(gst_lame_chain), (gst_lame_get_default_settings), (plugin_init):
* ext/lame/gstlame.h:
Get the defaults settings of LAME in the plugin initialization
function and return FALSE here if something goes wrong. This removes
the hacky failing instance init function.
Use LAMEs default value for all settings instead of overwriting some
of them. Overwriting some of them gives unexpected results if one only
sets a preset. Fixes bug #498004.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_init):
Use LAME's default for the min/max/mean VBR bitrate. Setting our own
defaults will restrict the bitrate when using the presets in a bad way.
Fixes bug #498004.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_sink_setcaps):
* gst/mpegaudioparse/gstmpegaudioparse.c:
(mp3_type_frame_length_from_header), (mp3_caps_create),
(gst_mp3parse_chain):
Put the MPEG audio version into the caps as "mpegaudioversion".
This is different from "mpegversion".
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_class_init), (gst_lame_init),
(gst_lame_set_property), (gst_lame_get_property), (gst_lame_setup):
* ext/lame/gstlame.h:
Fix build with lame >= 3.97. The padding type and cwlimit settings
are deprecated now and the function declarations are hidden in the
headers so deprecate the GObject properties for them and remove them
in 0.11. Fixes bug #544039.
Original commit message from CVS:
* ext/mpeg2dec/gstmpeg2dec.c: (handle_sequence):
Don't allow width/height outside the spec (i.e. smaller than 16
and higher than 4096). Such files are corrupted ones and setting
caps that are not a subset of the template caps confuses playbin.
Fixes bug #542646.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c: (gst_dvd_read_src_read),
(gst_dvd_read_src_create), (gst_dvd_read_src_handle_seek_event):
Allow and implement non-flushing and/or segment seek
(mainly in TIME and chapter format).
* gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_event),
(gst_dvd_demux_get_subpicture_stream),
(gst_dvd_demux_synchronise_pads),
(gst_dvd_demux_sync_stream_to_time):
* gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_process_event),
(gst_mpeg_demux_send_subbuffer),
(gst_mpeg_demux_sync_stream_to_time),
(gst_mpeg_streams_reset_cur_ts):
* gst/mpegstream/gstmpegdemux.h:
* gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_process_event),
(gst_mpeg_parse_pad_added), (gst_mpeg_parse_handle_src_query):
Delegate a query to upstream if it can't be handled.
Make segment stop aware.
Fix (subtitle) stream synchronization.
Add some debug statements.
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/lame/gstlame.c:
* ext/sidplay/gstsiddec.cc:
* gst/mpegaudioparse/gstxingmux.c:
Do not use short_description in section docs for elements. We extract
them from element details and there will be warnings if they differ.
Original commit message from CVS:
Patch by: Benjamin Kampmann <benjamin at fluendo dot com>
* ext/cdio/gstcdio.c: (gst_cdio_get_cdtext),
(gst_cdio_add_cdtext_album_tags):
* ext/cdio/gstcdio.h:
* ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_open):
Also extract album title and album genre from CD-TEXT if
available (#537021).
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:
* docs/plugins/gst-plugins-ugly-plugins.args:
* docs/plugins/gst-plugins-ugly-plugins.hierarchy:
* docs/plugins/gst-plugins-ugly-plugins.interfaces:
* docs/plugins/inspect/plugin-a52dec.xml:
* docs/plugins/inspect/plugin-amrnb.xml:
* docs/plugins/inspect/plugin-asf.xml:
* docs/plugins/inspect/plugin-dvdlpcmdec.xml:
* docs/plugins/inspect/plugin-dvdread.xml:
* docs/plugins/inspect/plugin-dvdsub.xml:
* docs/plugins/inspect/plugin-iec958.xml:
* docs/plugins/inspect/plugin-lame.xml:
* docs/plugins/inspect/plugin-mad.xml:
* docs/plugins/inspect/plugin-mpeg2dec.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:
* ext/a52dec/gsta52dec.c:
Random doc of the day. Also print human readable format of newsegment
in log message if we complain about it.
Original commit message from CVS:
* ext/a52dec/gsta52dec.c: (gst_a52dec_init), (gst_a52dec_push),
(gst_a52dec_sink_event), (gst_a52dec_handle_frame),
(gst_a52dec_chain), (gst_a52dec_change_state):
* ext/a52dec/gsta52dec.h:
Mark discont on outgoing buffers after receiving a DISCONT buffer or
when we have a decoding error.
We don't need to clear the cache when we receive a NEWSEGMENT event.
Clear buffer cache in DISCONT.
Add beginnings of GstSegment handling.
Original commit message from CVS:
* ext/sidplay/gstsiddec.cc:
Cast NULL sentinels to void * as NULL is defined as an integer
constant in most environments when using C++ and it's size might
be different from a pointer. Fixes#529488.
Original commit message from CVS:
* ext/amrnb/amrnbparse.c: (gst_amrnbparse_loop):
We should also stop the streaming task when we get a NOT_LINKED
flow return, which is not covered by FLOW_IS_FATAL.
Original commit message from CVS:
* ext/dvdnav/dvdnavsrc.c:
* ext/dvdnav/dvdnavsrc.h:
Apply patch that adds some seeking support to dvdnav, and fixes it
in various other ways. This doesn't make dvdnavsrc fully functional,
but moves it forward.
Fixes: #476149
Patch By: Simone Gotti <simone.gotti@email.it>
* ext/dvdnav/gst-dvd:
Update the simple dvdnavsrc gst-launch example to work for 0.10
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:
* 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:
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:
* 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:
* 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:
* 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:
* 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:
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:
* 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:
Update requirements from past CVS versions to released
versions (0.10.14 in this case).
* ext/sidplay/gstsiddec.cc:
Fix compilation with g++-4.2.
Original commit message from CVS:
* ext/lame/gstlame.c:
Allow fixing the sample rate lame converts to by negotiating fixed
sample rate on the src pad caps.
Add docs for it.
* tests/check/Makefile.am:
* tests/check/pipelines/lame.c:
Add a check for it.
Original commit message from CVS:
Patch by: Daniel Charles <dcharles at ti dot com>
* ext/amrnb/amrnbenc.c: (gst_amrnbenc_bandmode_get_type),
(gst_amrnbenc_set_property), (gst_amrnbenc_get_property),
(gst_amrnbenc_base_init), (gst_amrnbenc_class_init),
(gst_amrnbenc_chain), (gst_amrnbenc_state_change):
* ext/amrnb/amrnbenc.h:
Add property to select the BandMode of the AMR encoder.
See #466442.
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:
* configure.ac:
* ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer):
* gst/asfdemux/gstasfdemux.c: (gst_asf_demux_descramble_buffer):
* gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain_raw):
Fix build against core CVS by not using deprecated API. Bump
requirements for new API (overdue anyway).
Original commit message from CVS:
* ext/amrnb/amrnbdec.c: (gst_amrnbdec_base_init),
(gst_amrnbdec_event), (gst_amrnbdec_chain),
(gst_amrnbdec_state_change):
* ext/amrnb/amrnbdec.h:
* ext/amrnb/amrnbparse.c: (gst_amrnbparse_base_init),
(gst_amrnbparse_loop):
Add newsegment and discont handling. Some code cleanups.
Original commit message from CVS:
* ext/dvdread/dvdreadsrc.c:
If we can't read a nav packet, or it doesn't look like a nav
packet, that's an error. Previous behavior was to look at
the next packet; I can't find any justification for doing that.
Fixes: #358891.
Original commit message from CVS:
Patch by: Laurent Glayal <spglegle at yahoo dot fr>
* ext/amrnb/amrnbdec.c: (gst_amrnbdec_class_init),
(gst_amrnbdec_finalize):
Don't leak the adapter, unref it in a new finalize method instead.
Fixes#448782.
Original commit message from CVS:
* ext/dvdnav/dvdnavsrc.c: (gst_dvd_nav_src_set_property):
Don't forget to unlock when setting the device property, or
we'll sooner or later deadlock.
Original commit message from CVS:
* ext/amrnb/amrnbparse.c: (gst_amrnbparse_get_type),
(gst_amrnbparse_class_init), (gst_amrnbparse_init),
(gst_amrnbparse_pull_header), (gst_amrnbparse_loop):
Fix pull mode operation some more: send newsegment event before
sending data; handle EOS and fatal flow returns a bit better; don't
leak buffers in some cases. Misc. minor cleanups. Fixes#431707.
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/lame/gstlame.c: (gst_lame_setup):
Disable the bitrate checking when the user has requested
Free Format mode, as all bitrates less than the maximum
are valid then.
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:
* ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_open),
(gst_cdio_cdda_src_finalize):
Make sure we always destroy our libcdio handle.
Original commit message from CVS:
* ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_probe_devices),
(gst_cdio_cdda_src_read_sector), (gst_cdio_cdda_src_open),
(gst_cdio_cdda_src_finalize):
Small code cleanups.
Don't use pad_alloc as the base class cannot deal with the error codes.
Original commit message from CVS:
Patch by: Zaheer Abbas Merali <zaheermerali at gmail com>
* ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_chain):
Never post a (fatal) error message on the bus on decoding errors. We
should only do this if we can't recover, but mpeg2dec can always
recover. This is needed for DVB streams, for example, where there
may be temporary glitches in the stream. Instead of an error
message, post a warning message on the bus for every N decoding
errors. Fixes#370020.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_class_init), (gst_lame_init),
(gst_lame_setup):
Display sensible defaults and limits for the
vbr-min/max/mean properties. Fix the 'hard-limit' VBR min
property - it's supposed to be a boolean 0/1 value.
Original commit message from CVS:
* ext/lame/gstlame.c:
Initialise the variables so gcc doesn't complain about possibly
uninitialised uses, even though they can't actually happen.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_sink_setcaps),
(gst_lame_set_property), (gst_lame_setup):
Fix up bitrate checking macro. Make it give us a
GST_ELEMENT_WARNING message so the application has a chance of
reporting this to the user. Move the checking to _setup, so we
are sure it runs in the READY state, when we hope to have a pipeline
and a bus that is not flushing.
This fixes e.g. using 96 kbit/sec as a bitrate.
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_sink_event), (gst_lame_chain),
(gst_lame_change_state):
* ext/lame/gstlame.h:
On receiving EOS, we try to push a last buffer with the remaining
samples. Don't do that if we got an unclean flow return on the last
gst_pad_push(), downstream might not handle this very gracefully
(see #403168).
* gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain):
Pass flow returns upstream (helps #403168).
Original commit message from CVS:
* ext/lame/gstlame.c: (gst_lame_sink_setcaps), (gst_lame_chain):
warn when outgoing sample rate is different from incoming
Original commit message from CVS:
Based on patch by: Roland Kay <roland.kay at ox compsoc net>
* ext/lame/gstlame.c: (gst_lame_init), (gst_lame_chain),
(gst_lame_setup):
* ext/lame/gstlame.h:
Fix leak (by calling lame_init_params() before lame_close()); handle
NULL return from lame_init() more gracefully. Fixes#385311.
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:
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:
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/cdio/gstcdio.c: (gst_cdio_get_cdtext):
* ext/cdio/gstcdio.h:
* ext/cdio/gstcdiocddasrc.c: (gst_cdio_cdda_src_open):
Move CD-TEXT utility function into common file so it can also be
used by a future cdioparanoiasrc.
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:
* 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:
* ext/mpeg2dec/gstmpeg2dec.c: (handle_slice):
* ext/mpeg2dec/gstmpeg2dec.h:
Add some debugging to timestamp handling.
Make sure we don't convert invalid timestamps.