Original commit message from CVS:
Patch by: Jonathan Matthew <jonathan at kaolin wh9 net>
* ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst),
(gst_faad_srcgetcaps), (gst_faad_update_caps):
Don't set channel positions on regular mono and stereo cases.
Fixes#476370.
Original commit message from CVS:
* configure.ac:
* ext/faad/gstfaad.c: (gst_faad_chain), (gst_faad_change_state):
Use the new buffer clipping function from gstaudio here and
require gst-plugins-base CVS.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_open_decoder):
FAAD fails to decode low (e.g. 8 kHz) sample rate AAC data in
quicktime because of sample rate mismatches.
Reenable overriding the implicit SBR behaviour (accidently changed?)
to allow playback of these files.
Original commit message from CVS:
* configure.ac:
Tell the code which faad it is, so that we can adjust the hacks
needed.
* ext/faad/gstfaad.c:
Make our hacks dependent on the fadd lib in use.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_chain),
(gst_faad_close_decoder):
Some cleanups.
Added some more debugging.
Don't ever ignore unlinked, we're not a demuxer.
* gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream):
Activate pad before adding it to the element.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_class_init), (gst_faad_init),
(gst_faad_dispose), (gst_faad_sink_event), (clip_outgoing_buffer),
(gst_faad_chain), (gst_faad_change_state):
Added GstSegment to control segments.
Added clipping/dropping of outgoing buffers in order to have accurate
seeking working properly.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_update_caps), (gst_faad_chain):
Remove unused caps cruft from chain function altogether.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_chain):
There's no guarantee that caps was set to something, and if it did, the
function called to fill that variable actually sets the caps on the
sourcpad, so we call gst_pad_alloc_buffer_and_set_caps() using
GST_PAD_CAPS(faad->srcpad).
Original commit message from CVS:
Patch by: Young-Ho Cha <ganadist chollian net>
* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_chain),
(gst_faad_change_state):
* ext/faad/gstfaad.h:
If we encounter a decoding error, don't error out immediately,
but try to resync (or see if we have better luck with the next
buffer in case of framed input). Only error out after five
consecutive errors. Fixes#341563.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_setcaps),
(looks_like_valid_header), (gst_faad_chain):
Fix#334748: use fake_codec_data if the first bytes of the first
buffer we process doesn't look like plausible AAC data (e.g.
reserved values for rate, or channels). Fixes playback of Apple's
movie trailers.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_init), (aac_rate_idx),
(gst_faad_setcaps), (gst_faad_chain), (gst_faad_open_decoder),
(gst_faad_close_decoder), (gst_faad_change_state):
* ext/faad/gstfaad.h:
If we run into a decoding error, try re-opening the decoder
with faacDecInit2() using fake codec data created from the
data the demuxer gave us. Should fix a whole bunch of
GStreamer-faad problems incl. 'channel coupling not
implemented', 'maximum number of scalefactor bands exceeded'
etc. (#173007, #332892).
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_send_tags),
(gst_faad_setcaps), (gst_faad_do_raw_seek), (gst_faad_src_event),
(gst_faad_sink_event), (gst_faad_src_convert),
(gst_faad_src_query), (gst_faad_chain), (gst_faad_change_state):
Add query function for position/duration querying (mostly for
raw AAC streams); make seeking in raw AAC streams work; post
tags with codec name if this is a raw AAC stream.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_setcaps),
(gst_faad_chanpos_to_gst), (gst_faad_sync), (gst_faad_chain):
Handle 'framed' field in caps; Port syncing for raw streams
from 0.8 branch (for AAC+ radio streams) (#328722).
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst),
(gst_faad_update_caps):
Assume that an unknown channel mapping with 2 channels
is stereo and play it that way instead of erroring.
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
(gst_qtdemux_add_stream), (qtdemux_parse_trak):
Handle e.g. jpeg streams with 0 duration frames as having 0 framerate.
Debug fixes. Some 64 bit variable fixes
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_srcgetcaps):
Handle gracefully the consequence of "Maximum number of scalefactor
bands exceeded", which results in 0 channels with samplerates of 0.
* gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state):
Do upward transitions, then call parent state_change, then do
downward transitions.
Original commit message from CVS:
* ext/faac/gstfaac.c: (gst_faac_base_init), (gst_faac_init),
(gst_faac_sink_setcaps), (gst_faac_configure_source_pad),
(gst_faac_chain):
Set proper caps on source pad (#320532).
* ext/faad/gstfaad.c:
Don't use gtk-doc markers for comment block.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_chain):
Call functions with the correct API. Unfortunately, unless your
distribution patches upstream, the public header file for FAAD
doesn't actually declare the API accurately. So, some nastiness
ensues...
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_base_init), (gst_faad_class_init),
(gst_faad_init), (gst_faad_srcgetcaps), (gst_faad_event),
(gst_faad_chain), (gst_faad_change_state):
* ext/faad/gstfaad.h:
Do some timestamp smoothing (matroskademux apparently sends
multiple buffers in a row with the same timestamp); fix
duration on outgoing buffers; fix change state function; use
GST_DEBUG_FUNCPTR for pad functions.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_class_init), (gst_faad_setcaps):
Add debug category, remove Close() call that made it crash
whenever reusing, renegotiating or anything; Close() actually
free()s the handle and should only be called on READY->NULL.
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header):
Actually set caps on buffer (in addition to pad), also.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_base_init), (gst_faad_class_init),
(gst_faad_init), (gst_faad_setcaps), (gst_faad_srcgetcaps),
(gst_faad_event), (gst_faad_update_caps), (gst_faad_chain),
(gst_faad_change_state):
* ext/faad/gstfaad.h:
Fix negotiation (#310932) and miscellaneous other stuff. Probably
still needs some more work.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_srcgetcaps):
Fix off-by-one bug. Fixes warnings during playback of sincity.mp4
when fixating to six channels in Totem.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_chanpos_from_gst),
(gst_faad_chanpos_to_gst), (gst_faad_chain):
Set DURATION even if source buffer didn't. Also use increasing
timestamps.
* gst-libs/gst/riff/riff-media.c:
(gst_riff_create_audio_caps_with_data):
Block_align can have larger values than 8192.
Original commit message from CVS:
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
* ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_sinkconnect),
(gst_faad_chain), (gst_faad_change_state):
* ext/faad/gstfaad.h:
Allow playback of raw (unframed) MPEG AAC files (#148993).