Commit graph

98 commits

Author SHA1 Message Date
Mark Nauwelaerts
8a6c490962 faad: reflow opening and closing decoder
In particular, this reconfigures quite forcefully when renegotiation is needed.

Fixes #631501.
2010-10-14 11:27:17 +02:00
Mark Nauwelaerts
7499f2b09b faad: cater for renegotiation
At least, whenever either stream (e.g. ADTS) or upstream provides necessary
info for doing so.

Fixes #631501.
2010-10-12 18:19:54 +02:00
Mark Nauwelaerts
de97a994ba faad: reverse playback; cater for decoder delay
... thereby actually using the gather and decode queues.
2010-09-29 11:30:06 +02:00
Mark Nauwelaerts
636d1caf0d faad: tweak output buffer timestamping
In particular, avoid packetised input leading to initial to non-0 output ts.
2010-09-29 11:30:00 +02:00
Benjamin Otte
775c7584fd gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 22:46:41 +01:00
Tim-Philipp Müller
26e7e93bfd faad: guard against codec_data field with a NULL buffer in caps
Fixes #609478.
2010-02-16 16:49:39 +00:00
Stefan Kost
d8fd8ea9e9 docs: unify doc style
Use gtkdoc syntax and add short desc for the examples.
2010-02-16 09:49:05 +02:00
Mark Nauwelaerts
68b644a437 faad: add documentation 2010-02-11 22:22:52 +01:00
Mark Nauwelaerts
5a3ab64407 faad: remove some redundant code
... and move and modify some debug logging.
2010-02-11 22:22:52 +01:00
Mark Nauwelaerts
83f1b71613 faad: drain sync pending frames when appropriate 2010-02-11 22:22:51 +01:00
Mark Nauwelaerts
5e3cdd233a faad: send tags exactly once when init'ed 2010-02-11 22:22:51 +01:00
Mark Nauwelaerts
96ad733207 faad: refactor some partial stream reset 2010-02-11 22:22:51 +01:00
Mark Nauwelaerts
f6ea217792 faad: correctly estimate average bps
Count consumed bytes and corresponding duration atomically,
rather than letting bytecount run ahead of what has been decoded.

Fixes #440476.
2010-02-11 22:22:51 +01:00
Mark Nauwelaerts
2230469113 faad: give up after some number of decoding failures 2010-02-11 22:22:51 +01:00
Mark Nauwelaerts
b4739124dc faad: do not attempt to sync indefinitely 2010-02-11 22:22:51 +01:00
Mark Nauwelaerts
159fe8a1a0 faad: use adapter rather than temporary buffer 2010-02-11 22:22:50 +01:00
Mark Nauwelaerts
cca1fad250 faad: objectify debug statements and adjust some levels 2010-02-11 22:22:50 +01:00
Mark Nauwelaerts
6407329deb faad: refactor src caps (re)negotiation and reflow some error exits 2010-02-11 22:22:50 +01:00
Mark Nauwelaerts
50e4914edc faad: remove defunct and otherwise obsolete code 2010-02-11 22:22:50 +01:00
Mark Nauwelaerts
94928e44a4 faad: refactor reset 2010-02-11 22:22:49 +01:00
Mark Nauwelaerts
b3e8ded46e faad: use an in struct segment rather than a separately allocated one 2010-02-11 22:22:35 +01:00
Peter Christoffersen
7eb553e2de faad2: Don't leak element reference in the setcaps function
Fixes bug #598139.
2009-10-13 16:01:26 +02:00
Josep Torra
d1f931630d faad: fixes warning in macosx snow leopard 2009-10-12 12:30:22 +02:00
Edward Hervey
bdc9c5618a faad: Use the public headers if faad2 >= 2.7. Fixes #573369
Since faad2-2.7, the public function prototypes are in sync with the
actual function prototypes used internally in libfaad.
2009-03-06 12:42:50 +01:00
LRN
ccaa8de5aa faad: use gint8 instead of int8_t
Use gint8 instead of int8_t to fix compilation.
Fixes #573851.
2009-03-04 11:14:18 +01:00
Stefan Kost
2af1d512c4 Log aac details found in codec_data. 2009-01-23 16:00:10 +02:00
Wim Taymans
f638d690fe ext/faad/gstfaad.c: Always drain before activating the new segment.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_sink_event):
Always drain before activating the new segment.
2008-06-02 17:06:34 +00:00
Wim Taymans
eea50a9a85 ext/faad/gstfaad.*: Add basic reverse playback support.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_dispose), (clear_queued),
(flush_queued), (gst_faad_drain), (gst_faad_do_raw_seek),
(gst_faad_src_event), (gst_faad_sink_event), (gst_faad_chain),
(gst_faad_change_state):
* ext/faad/gstfaad.h:
Add basic reverse playback support.
Clear decoder state after disconts.
Remove some unused code.
Mark output buffers with a discont after a decoding error.
2008-06-02 10:18:25 +00:00
Stefan Kost
e868ac2c3a ext/faad/gstfaad.c: Don't leak GstAudioChannelPosition. Fixes #529378.
Original commit message from CVS:
* ext/faad/gstfaad.c:
Don't leak GstAudioChannelPosition. Fixes #529378.
2008-04-22 15:07:35 +00:00
Andy Wingo
603b409c33 ext/faad/gstfaad.c (gst_faad_chain): Fix a bad format argument, and a potential int overflow.
Original commit message from CVS:
2008-03-18  Andy Wingo  <wingo@pobox.com>

* ext/faad/gstfaad.c (gst_faad_chain): Fix a bad format argument,
and a potential int overflow.

* ext/faad/gstfaad.h: Include <neaacdec.h> if faad is neaac.
Avoids a #warning about an ignored #pragma.
2008-03-18 10:12:40 +00:00
Sjoerd Simons
e92772a7e9 ext/faad/gstfaad.c: Improve the header checking to look for what faad2 looks for too. Fixes playback of same apple tr...
Original commit message from CVS:
Patch by: Sjoerd Simons <sjoerd at luon dot net>
* ext/faad/gstfaad.c: (looks_like_valid_header):
Improve the header checking to look for what faad2 looks
for too. Fixes playback of same apple trailers.
Fixes bug #469979.
2008-03-08 04:27:03 +00:00
Jan Schmidt
b3595da577 ext/faad/gstfaad.c: Fix compiler warning by making the function signature match what everyone is passing in...
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst):
Fix compiler warning by making the function signature match what
everyone is passing in...
* tests/icles/Makefile.am:
Fix the build on Solaris by removing GNU ld specific flags that
look unnecessary.
2008-01-31 15:52:18 +00:00
Jonathan Matthew
b020c43021 ext/faad/gstfaad.c: Don't set channel positions on regular mono and stereo cases.
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.
2007-09-19 21:18:27 +00:00
Wim Taymans
05eba831bd ext/faad/gstfaad.c: Don't unref the buffer when it was clipped.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_chain):
Don't unref the buffer when it was clipped.
2007-08-22 15:32:04 +00:00
Wim Taymans
7ba5df103c ext/faad/gstfaad.c: Add some debug info.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_setcaps),
(gst_faad_chanpos_to_gst):
Add some debug info.
2007-08-16 11:34:54 +00:00
Sebastian Dröge
48ca19fbd6 Use the new buffer clipping function from gstaudio here and require gst-plugins-base CVS.
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.
2007-07-24 05:15:41 +00:00
Sebastian Dröge
7da951e3d5 ext/faad/gstfaad.c: Fix buffer clipping to correctly clip to the segment stop.
Original commit message from CVS:
* ext/faad/gstfaad.c: (clip_outgoing_buffer):
Fix buffer clipping to correctly clip to the segment stop.
2007-07-16 09:19:14 +00:00
Michael Smith
d437aba4c4 ext/faad/gstfaad.c: FAAD fails to decode low (e.g. 8 kHz) sample rate AAC data in quicktime because of sample rate mi...
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.
2007-04-20 15:31:32 +00:00
Stefan Kost
5d4ad6d183 ext/faad/gstfaad.c: Also update the comment that describes the hack.
Original commit message from CVS:
* ext/faad/gstfaad.c:
Also update the comment that describes the hack.
2007-02-11 11:59:49 +00:00
Stefan Kost
8450ee444c configure.ac: Tell the code which faad it is, so that we can adjust the hacks needed.
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.
2007-02-11 11:35:47 +00:00
Wim Taymans
09624a5894 ext/faad/gstfaad.c: Some cleanups.
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.
2006-10-06 15:49:39 +00:00
Wim Taymans
a80f168832 ext/faad/gstfaad.c: Don't crash on small buffers.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_sync):
Don't crash on small buffers.
2006-07-16 14:46:02 +00:00
Edward Hervey
0050b26ee8 ext/faad/gstfaad.c: Added GstSegment to control segments.
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.
2006-05-31 13:37:27 +00:00
Tim-Philipp Müller
9b3c826eb9 ext/faad/gstfaad.c: Remove unused caps cruft from chain function altogether.
Original commit message from CVS:
* ext/faad/gstfaad.c: (gst_faad_update_caps), (gst_faad_chain):
Remove unused caps cruft from chain function altogether.
2006-05-17 09:39:53 +00:00
Edward Hervey
d47f97b0d4 ext/faad/gstfaad.c: There's no guarantee that caps was set to something, and if it did, the function called to fill t...
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).
2006-05-17 09:15:55 +00:00
Young-Ho Cha
15bae29658 ext/faad/gstfaad.*: If we encounter a decoding error, don't error out immediately, but try to resync (or see if we ha...
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.
2006-05-13 18:39:13 +00:00
Michael Smith
f910e0f4a5 ext/faad/gstfaad.c: Fix #334748: use fake_codec_data if the first bytes of the first buffer we process doesn't look l...
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.
2006-05-03 10:25:46 +00:00
Tim-Philipp Müller
2d4c661169 ext/faad/gstfaad.*: If we run into a decoding error, try re-opening the decoder with faacDecInit2() using fake codec ...
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).
2006-04-28 11:04:12 +00:00
Stefan Kost
bf3fd4f95d Define GstElementDetails as const and also static (when defined as global)
Original commit message from CVS:
* ext/amrwb/gstamrwbdec.c:
* ext/amrwb/gstamrwbenc.c:
* ext/amrwb/gstamrwbparse.c:
* ext/arts/gst_arts.c:
* ext/artsd/gstartsdsink.c:
* ext/audiofile/gstafparse.c:
* ext/audiofile/gstafsink.c:
* ext/audiofile/gstafsrc.c:
* ext/audioresample/gstaudioresample.c:
* ext/bz2/gstbz2dec.c:
* ext/bz2/gstbz2enc.c:
* ext/cdaudio/gstcdaudio.c:
* ext/directfb/dfbvideosink.c:
* ext/divx/gstdivxdec.c:
* ext/divx/gstdivxenc.c:
* ext/dts/gstdtsdec.c: (gst_dtsdec_base_init):
* ext/faac/gstfaac.c: (gst_faac_base_init):
* ext/faad/gstfaad.c:
* ext/gsm/gstgsmdec.c:
* ext/gsm/gstgsmenc.c:
* ext/hermes/gsthermescolorspace.c:
* ext/ivorbis/vorbisfile.c:
* ext/lcs/gstcolorspace.c:
* ext/libfame/gstlibfame.c:
* ext/libmms/gstmms.c: (gst_mms_base_init):
* ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init):
* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init):
* ext/nas/nassink.c: (gst_nassink_base_init):
* ext/neon/gstneonhttpsrc.c:
* ext/sdl/sdlaudiosink.c:
* ext/sdl/sdlvideosink.c:
* ext/shout/gstshout.c:
* ext/snapshot/gstsnapshot.c:
* ext/sndfile/gstsf.c:
* ext/swfdec/gstswfdec.c:
* ext/tarkin/gsttarkindec.c:
* ext/tarkin/gsttarkinenc.c:
* ext/theora/theoradec.c:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init):
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
* ext/xvid/gstxviddec.c:
* ext/xvid/gstxvidenc.c:
* gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_base_init):
* gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_base_init):
* gst/chart/gstchart.c:
* gst/colorspace/gstcolorspace.c:
* gst/deinterlace/gstdeinterlace.c:
* gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init):
* gst/festival/gstfestival.c:
* gst/filter/gstbpwsinc.c:
* gst/filter/gstiir.c:
* gst/filter/gstlpwsinc.c:
* gst/freeze/gstfreeze.c:
* gst/games/gstpuzzle.c: (gst_puzzle_base_init):
* gst/librfb/gstrfbsrc.c:
* gst/mixmatrix/mixmatrix.c:
* gst/mpeg1sys/gstmpeg1systemencode.c:
* gst/mpeg1videoparse/gstmp1videoparse.c:
* gst/mpeg2sub/gstmpeg2subt.c:
* gst/mpegaudioparse/gstmpegaudioparse.c:
* gst/multifilesink/gstmultifilesink.c:
* gst/overlay/gstoverlay.c:
* gst/passthrough/gstpassthrough.c:
* gst/playondemand/gstplayondemand.c:
* gst/qtdemux/qtdemux.c:
* gst/rtjpeg/gstrtjpegdec.c:
* gst/rtjpeg/gstrtjpegenc.c:
* gst/smooth/gstsmooth.c:
* gst/smoothwave/gstsmoothwave.c:
* gst/spectrum/gstspectrum.c:
* gst/speed/gstspeed.c:
* gst/stereo/gststereo.c:
* gst/switch/gstswitch.c:
* gst/tta/gstttadec.c: (gst_tta_dec_base_init):
* gst/tta/gstttaparse.c: (gst_tta_parse_base_init):
* gst/vbidec/gstvbidec.c:
* gst/videocrop/gstvideocrop.c:
* gst/videodrop/gstvideodrop.c:
* gst/virtualdub/gstxsharpen.c:
* gst/xingheader/gstxingmux.c: (gst_xing_mux_base_init):
* gst/y4m/gsty4mencode.c:
* sys/cdrom/gstcdplayer.c:
* sys/directdraw/gstdirectdrawsink.c:
* sys/directsound/gstdirectsoundsink.c:
* sys/glsink/glimagesink.c:
* sys/qcam/gstqcamsrc.c:
* sys/v4l2/gstv4l2src.c:
* sys/vcd/vcdsrc.c: (gst_vcdsrc_base_init):
* sys/ximagesrc/ximagesrc.c:
Define GstElementDetails as const and also static (when defined as
global)
2006-04-25 21:56:38 +00:00
j^
dacf8eaa18 Unify the long descriptions in the plugin details (#337263).
Original commit message from CVS:
Patch by: j^  <j at bootlab dot org>
* ext/amrwb/gstamrwbdec.c:
* ext/amrwb/gstamrwbenc.c:
* ext/amrwb/gstamrwbparse.c:
* ext/arts/gst_arts.c:
* ext/artsd/gstartsdsink.c:
* ext/audiofile/gstafparse.c:
* ext/audiofile/gstafsink.c:
* ext/audiofile/gstafsrc.c:
* ext/cdaudio/gstcdaudio.c:
* ext/directfb/dfbvideosink.c:
* ext/divx/gstdivxdec.c:
* ext/divx/gstdivxenc.c:
* ext/dts/gstdtsdec.c: (gst_dtsdec_base_init):
* ext/faac/gstfaac.c: (gst_faac_base_init):
* ext/faad/gstfaad.c:
* ext/gsm/gstgsmdec.c:
* ext/gsm/gstgsmenc.c:
* ext/hermes/gsthermescolorspace.c:
* ext/ivorbis/vorbisfile.c:
* ext/lcs/gstcolorspace.c:
* ext/libfame/gstlibfame.c:
* ext/libmms/gstmms.c: (gst_mms_base_init):
* ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init):
* ext/nas/nassink.c: (gst_nassink_base_init):
* ext/neon/gstneonhttpsrc.c:
* ext/polyp/polypsink.c: (gst_polypsink_base_init):
* ext/sdl/sdlaudiosink.c:
* ext/sdl/sdlvideosink.c:
* ext/shout/gstshout.c:
* ext/snapshot/gstsnapshot.c:
* ext/sndfile/gstsf.c:
* ext/tarkin/gsttarkindec.c:
* ext/tarkin/gsttarkinenc.c:
* ext/theora/theoradec.c:
* ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init):
* ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init):
* ext/xvid/gstxviddec.c:
* ext/xvid/gstxvidenc.c:
* gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_base_init):
* gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_base_init):
* gst/chart/gstchart.c:
* gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init):
* gst/festival/gstfestival.c:
* gst/filter/gstiir.c:
* gst/filter/gstlpwsinc.c:
* gst/freeze/gstfreeze.c:
* gst/games/gstpuzzle.c: (gst_puzzle_base_init):
* gst/mixmatrix/mixmatrix.c:
* gst/mpeg1sys/gstmpeg1systemencode.c:
* gst/mpeg1videoparse/gstmp1videoparse.c:
* gst/mpeg2sub/gstmpeg2subt.c:
* gst/mpegaudioparse/gstmpegaudioparse.c:
* gst/multifilesink/gstmultifilesink.c:
* gst/overlay/gstoverlay.c:
* gst/passthrough/gstpassthrough.c:
* gst/playondemand/gstplayondemand.c:
* gst/qtdemux/qtdemux.c:
* gst/rtjpeg/gstrtjpegdec.c:
* gst/rtjpeg/gstrtjpegenc.c:
* gst/smooth/gstsmooth.c:
* gst/tta/gstttadec.c: (gst_tta_dec_base_init):
* gst/tta/gstttaparse.c: (gst_tta_parse_base_init):
* gst/videocrop/gstvideocrop.c:
* gst/videodrop/gstvideodrop.c:
* gst/virtualdub/gstxsharpen.c:
* gst/xingheader/gstxingmux.c: (gst_xing_mux_base_init):
* gst/y4m/gsty4mencode.c:
Unify the long descriptions in the plugin details (#337263).
2006-04-06 11:35:26 +00:00