Commit graph

33 commits

Author SHA1 Message Date
Sebastian Dröge
c6cc7b385a avauddev: Unref decoded AVFrame after we're done with it
Otherwise we might leak some memory, like all compressed data when using
avdec_ac3.
2015-06-02 09:09:09 +02:00
Aleix Conchillo Flaqué
24780708be avauddec: drain samples until libav doesn't have more data
We use have_data (that comes from libav), instead of only trying 10
times, to know if there are more samples available. The old code was
machine dependent as different amount of samples could be decoded by
different type of (more powerful) machines, and 10 times was not always
sufficient.

https://bugzilla.gnome.org/show_bug.cgi?id=737144
2014-09-23 19:14:06 +03:00
Thibault Saunier
dc1e69dbea avauddec: Bump the rank of avdec_aac so it is used by default
https://bugzilla.gnome.org/show_bug.cgi?id=676131
2014-08-06 13:26:37 +02:00
Sebastian Dröge
d494f6f983 avauddec: Mark frames as corrupted if libav tells us they are
This is currently only implemented by the h264 codec and no audio codec.

https://bugzilla.gnome.org/show_bug.cgi?id=722290
2014-01-16 13:46:26 +01:00
Vincent Penquerc'h
ca1b5d8576 gst-libav: fix context leaks
A AVCodecContext needs cleaning up before being freed.
Go through all of the allocations/setups to ensure none of them
can leak a context or its contents.
2014-01-15 09:02:33 +00:00
Sebastian Dröge
1e65aac1a4 avauddec: Give MP3 decoder a MARGINAL rank too
There's no reason why this decoder should not be autoplugged
2014-01-10 13:17:02 +01:00
Sebastian Dröge
8fc3da62c1 avauddec: Stop using AVCODEC_MAX_AUDIO_FRAME_SIZE
And properly use the have_data variable. It's a boolean.
2014-01-03 16:26:10 +01:00
Sebastian Dröge
9febec71c0 avauddec: Don't believe we're negotiated if negotiation failed
It can happen that negotiation fails during get_buffer(), but then
we don't retry later and never return NOT_NEGOTIATED upstream...
and instead run into assertions.

https://bugzilla.gnome.org/show_bug.cgi?id=708769
2013-10-02 12:52:01 +02:00
Sebastian Dröge
6571196fb8 libav: avcodec_close() also resets fields like the AVCodec
We need to reload the defaults for the codec after closing it,
otherwise we can't access codec information like the supported
sample rates and can crash.

https://bugzilla.gnome.org/show_bug.cgi?id=707040
2013-08-29 16:53:28 +02:00
Tim-Philipp Müller
068be939cb CODEC_ID_* -> AV_CODEC_ID_* 2013-05-06 23:56:22 +01:00
Tim-Philipp Müller
b7ef1faab7 Revert "avdec_aac: disable for autoplugging until it gets fixed"
This reverts commit c5980dc52a.

It's fixed now.

https://bugzilla.gnome.org/show_bug.cgi?id=690940
2013-01-26 12:52:29 +00:00
Tim-Philipp Müller
879cd02e26 avauddec: fix decoding of mono audio as well
https://bugzilla.gnome.org/show_bug.cgi?id=690940
2013-01-26 12:52:29 +00:00
Nicolas Dufresne
76423a4ba7 avauddec: fix garbled audio decoding in some cases
Calculate output buffer size based on the number of
samples, channels and bytes per sample. The buffer
size was calculated based on linesize, which may
be larger than what's required.

https://bugzilla.gnome.org/show_bug.cgi?id=690940
2013-01-26 12:23:14 +00:00
Tim-Philipp Müller
c5980dc52a avdec_aac: disable for autoplugging until it gets fixed
Currently outputs garbled audio. Use faad in the meantime.

https://bugzilla.gnome.org/show_bug.cgi?id=690940
2013-01-22 12:53:48 +00:00
Sebastian Dröge
adfdfebc8c av: Use correct printf format strings for gsize 2012-12-21 11:03:27 +01:00
Sebastian Dröge
022ab84288 av: Fix some memory leaks and misuse of libav API 2012-12-17 16:35:36 +01:00
Sebastian Dröge
d69dda0391 avauddec: Use a GstBuffer instead of a GstAdapter for collecting the output buffers
This might cause less memcpies as the GstMemories of the buffers
are just appended into a single buffer.
2012-12-17 15:58:37 +01:00
Thiago Santos
c445b614f9 avauddec: accumulate buffers from a single input to push it all at once
The base audio decoder wants a 1:1 mapping for input and output
buffers, so this decoder must accumulate data in an adapter and push
it all at once after all input has been processed.

https://bugzilla.gnome.org/show_bug.cgi?id=689565
2012-12-17 15:56:03 +01:00
Sebastian Dröge
3837abb264 avauddec: Set frame defaults for the audio decoders too 2012-12-12 15:57:19 +00:00
Sebastian Dröge
21ac746f33 avdec: Improve src template caps 2012-12-12 15:42:09 +00:00
Sebastian Dröge
1bec18edce avauddec: Properly handle planar audio formats with more than AV_NUM_DATA_POINTERS channels 2012-12-12 13:04:38 +00:00
Sebastian Dröge
64a2a8bdae avcodecmap: Take channel layout constraints into account if possible 2012-12-11 17:25:41 +00:00
Sebastian Dröge
9945ae7adc avauddec: Close context when it was opened 2012-12-11 15:14:10 +00:00
Sebastian Dröge
2d7ebf9514 av: Correctly populate the codec context with the defaults 2012-12-05 19:25:37 +01:00
Sebastian Dröge
d840211412 av: Use av_codec_is_{en,de}coder() API instead of private struct fields 2012-12-05 10:52:34 +01:00
Sebastian Dröge
aa4a238506 avauddec: release_buffer is not supposed to be used for audio
And calling it causes crashes in some situations.
2012-12-04 22:09:05 +01:00
Sebastian Dröge
e092f3d411 avauddec: Add support for planar audio formats 2012-12-04 20:45:28 +01:00
Sebastian Dröge
f5c112990f av: Port remaining simple bits 2012-12-04 18:36:56 +01:00
Sebastian Dröge
0f206124b6 av: Remove palette support for now
It was never ported to the way how paletted color formats work
in 1.0 anyway and the API changed in libav upstream.
2012-12-04 18:36:37 +01:00
Luca Barbato
5f03a7d869 av: update to use AVOption variants. 2012-12-04 18:36:30 +01:00
Sebastian Dröge
9456fb86c7 avauddec: Port to non-deprecated avcodec_decode_audio4() API
Fixes bug #666435.
2012-11-20 11:40:10 +01:00
Sebastian Dröge
ef408ada57 avauddec: Port to audio base classes 2012-11-19 14:11:52 +01:00
Sebastian Dröge
c784ec9fa5 av: Put declarations in header files and rename audio codec files 2012-11-19 10:30:37 +01:00
Renamed from ext/libav/gstavdec.c (Browse further)