Sebastian Dröge
3fb49b6053
avauddec: Finish frames if they are header buffers only and don't produce any output
...
Otherwise we will consider them as one frame of raw audio that is still
pending, and shift all timestamps by the amount of time spent with header
buffers.
https://bugzilla.gnome.org/show_bug.cgi?id=765797
2016-04-29 13:06:07 +03:00
Sebastian Dröge
00ebf95e08
avauddec: If decoding a frame failed, skip it
...
Otherwise the next successfully decoded frame will get its timestamp and we
will slowly let a/v sync drift apart.
https://bugzilla.gnome.org/show_bug.cgi?id=765797
2016-04-29 12:55:19 +03:00
Tim-Philipp Müller
9e00a37d0e
Don't use exported but undeclared core debug category symbols
...
It's not right and won't work on Windows with MSVC.
2016-02-20 12:59:38 +00:00
Tim-Philipp Müller
83ce87e7c8
av: canonicalise av plugin name more consistently in more places
...
Use g_strdelimit(), make sure to include comma as well, which
isn't included in G_STR_DELIMITERS.
https://bugzilla.gnome.org/show_bug.cgi?id=734451
2016-01-07 17:16:41 +00:00
Thiago Santos
5c56635e97
avauddec: let audiodecoder call the default pad query handler
...
Avoids repeating the same handling in many decoders
2015-08-15 13:51:35 -03:00
Thiago Santos
2b387ba827
avauddec: use template caps intersection for accept-caps
...
Avoid doing downstream caps queries when accept-caps should just
do a shallow caps check on the element itself
https://bugzilla.gnome.org/show_bug.cgi?id=753623
2015-08-14 09:14:11 -03:00
Olivier Crete
3b6c656e25
avauddec: Read channels from the channels field
...
If there is no layout, just read the channel count from the
channels field.
https://bugzilla.gnome.org/show_bug.cgi?id=752186
2015-07-27 14:18:32 -04:00
Olivier Crête
7afaf5c020
avauddec: Access field using accessors
...
Those fields are documented to only be safe to access using
accessors as their position is not part of the ABI.
2015-07-25 03:06:10 -04:00
Thomas Bluemel
30a4a28793
avauddec: Ensure input buffers have FF_INPUT_BUFFER_PADDING_SIZE padding, which is required by avcodec_decode_audio4 ()
2015-06-30 19:19:42 +02:00
Sebastian Dröge
2a445cb5f2
avauddec: Remove custom buffer allocation function
...
libav always uses planar audio formats nowadays, not much use in
us trying to allocate anything here until we add support for planar
aka non-interleaved audio formats at least in audioconvert.
2015-06-28 12:41:55 +02:00
Sebastian Dröge
4240ff2bfc
avauddec: Use undeprecated AVFrame API
2015-06-28 12:41:55 +02:00
Sebastian Dröge
0767bdda5f
avauddec: Negotiate based on the AVFrame instead of just the AVCodecContext
2015-06-28 12:41:55 +02:00
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