Víctor Manuel Jáquez Leal
37c4915109
libs: audio: split allocation query caps and pad caps
...
Since the allocation query caps contains memory size and the pad's caps
contains the display size, an audio encoder or decoder might need to allocate
a different buffer size than the size negotiated in the caps.
This patch splits this logic distinction for audiodecoder and audioencoder.
Thus the user, if needs a different allocation caps, should set it through
gst_audio_{encoder,decoder}_set_allocation_cap() before calling the negotiate()
vmethod. Otherwise the allocation_caps will be the same as the caps in the
src pad.
https://bugzilla.gnome.org/show_bug.cgi?id=764421
2016-04-05 11:37:15 +02:00
Víctor Manuel Jáquez Leal
052fe11949
audioencoder: fix gtk-doc comment format
2016-04-04 17:12:16 +02:00
Sebastian Dröge
761142e15a
audioencoder: Add note to the documentation about various settings being reset before set_format()
...
It's quite unexpected behaviour that various subclass settings are just
reset before set_format(). Unfortunately changing this now has the risk
of breaking existing code but we should reconsider this for 2.0.
2016-01-16 11:05:13 +01:00
Sebastian Dröge
b60ab758e4
Revert "audioencoder: timestamp headers same as first buffer and use duration 0"
...
This reverts commit dd4d6d9ed5
.
It breaks ogg muxing and the vorbisenc unit test.
2015-10-12 14:02:58 +03:00
Havard Graff
dd4d6d9ed5
audioencoder: timestamp headers same as first buffer and use duration 0
...
https://bugzilla.gnome.org/show_bug.cgi?id=754224
2015-10-11 11:04:53 +01:00
Sebastian Dröge
2de91c32e4
audioencoder: If there are no tags, don't try to do event handling on a NULL event
...
Fixes some crashes.
2015-08-18 15:58:57 +03:00
Tim-Philipp Müller
4c00709e22
audioencoder: fix tag handling
...
Merge upstream tags with encoder tags and update whenever
any of those changes.
https://bugzilla.gnome.org/show_bug.cgi?id=679768
2015-08-18 11:46:21 +01:00
Thiago Santos
5a0bee3f13
audioencoder: add src and sink query methods
...
Allows subclasses to do their own handling of GstQuery and still
chain up to the parent class to handle the ones that they don't want
to handle
2015-08-16 08:14:35 -03:00
Sebastian Dröge
56add20dc7
audioencoder: Don't try to get buffers from an empty adapter
2015-07-02 13:16:15 +02:00
Sebastian Dröge
f5eebb27a2
{audio,video}{en,de}oder: Also copy POOL metas and make sure to copy over metas when creating subbuffers
...
POOL meta just means that this specific instance of the meta is related to a
pool, a copy should be made when reasonable and the flag should just not be
set in the copy.
2015-07-01 10:58:07 +02:00
Sebastian Dröge
cc1719130b
audioencoder: Add transform_meta() vfunc with default implementation
...
The default implementation copies all metadata without tags, and metadata
with only the audio tag. Same behaviour as in GstAudioFilter.
https://bugzilla.gnome.org/show_bug.cgi?id=742385
2015-06-30 10:40:10 +02:00
Thiago Santos
7e39a51a50
audio: video: fix a few GI annotations
...
transfer-full -> transfer full
@Since -> Since
2015-02-19 15:51:42 -03:00
Sebastian Dröge
8547594727
Improve and fix LATENCY query handling
...
This now follows the design docs everywhere, especially the maximum latency
handling.
https://bugzilla.gnome.org/show_bug.cgi?id=744106
2015-02-11 17:53:49 +02:00
Sebastian Dröge
823cb40642
audio{enc,dec}oder: Always directly post latency messages on the bus when the subclass sets the latency
...
Instead of doing it only in setcaps for the encoder, and never at all for the
decoder.
2015-02-03 12:15:25 +01:00
Sebastian Dröge
f2a762a3a0
audio{enc,dec}oder: Handle max_latency == GST_CLOCK_TIME_NONE
...
And initialize the latencies with 0 and NONE.
2015-02-03 12:12:18 +01:00
Sebastian Dröge
aae6400962
audioencoder: Call reset() before the start() vfunc to guarantee a clean state
...
The same was done already in the decoder, and we cleaned some state just above
manually that would also be taken care of by reset().
This makes sure that the element is in the same state before start() is called
the very first time and every future call after the element was used already.
2014-12-22 11:36:58 +01:00
Thiago Santos
17a7fac1a1
video: audio: fix GI annotations for proxy caps function
...
Add the annotations to parameters that can be null and also for stating
the ownership of the returned caps
2014-12-17 19:15:24 -03:00
Thiago Santos
5e3405bd08
audioencoder: refactor getcaps proxy function to be reusable
...
Makes the audioencoder's getcaps function that proxies downstream
restriction available to other elements in the audio module to use it
2014-12-17 19:15:23 -03:00
Stefan Sauer
5f0aad6f42
audioencoder: reshuffle code in error handling
...
Move the assert to the error handling block at the end of the function so the
the logging is still triggered. Reword the logging slightly and add another
comment to hint what went wrong.
Fixes #737138
2014-09-23 11:56:33 +02:00
Ognyan Tonchev
2fff66b071
audioencoder: do not leak events when flushing them
...
https://bugzilla.gnome.org/show_bug.cgi?id=736796
2014-09-18 12:40:19 +03:00
Sebastian Rasmussen
a285f7126b
audioencoder: Mark caps argument as not being transferred
...
https://bugzilla.gnome.org/show_bug.cgi?id=734540
2014-08-10 10:45:14 +01:00
Thibault Saunier
967d1fb982
audioencoder: Keep still meaningfull pending events on FLUSH_STOP
...
Only EOS and segment should be deleted in that case.
https://bugzilla.gnome.org/show_bug.cgi?id=709868
2014-06-03 13:03:16 +02:00
Thiago Santos
e00dc5b879
audioencoder: push pending events and tags before EOS
...
if there are tags or events pending and an EOS is received, push those
events and tags before the EOS.
2014-01-29 12:33:59 -03:00
Reynaldo H. Verdejo Pinochet
aa1883d5d7
audiobase*: Drop trailing withespaces
2013-12-27 01:36:09 -03:00
Julien Isorce
e68317f070
audiodec/enc: clear reconfigure flag if negotiate succeeds
...
So that it avoids to send an allocation query twice.
One from an early call to gst_audio_encoder_negotiate from a
subclass, then one from gst_audio_encoder_allocate_output_buffer.
Which means that previously gst_audio_encoder_negotiate was not
clearing the GST_PAD_FLAG_NEED_RECONFIGURE even on success.
Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=719684
2013-12-05 15:19:16 +00:00
Mark Nauwelaerts
b13a722746
audioencoder: also set output buffer DTS
2013-11-16 15:25:38 +01:00
Sebastian Dröge
420e229829
audioencoder/decoder: Mark pads as requiring reconfiguration again if negotiation fails
...
Otherwise we might end up in non-optimal configuration, especially
when a flush happened during reconfiguration.
2013-09-12 09:42:36 +02:00
Sebastian Dröge
96ab6db422
audioencoder: Simplify pushing of pending events during negotiation
...
And also don't send the same caps twice.
2013-08-23 19:17:16 +02:00
Sebastian Dröge
50fd867a43
audioencoder: Don't return not-negotiated if flushing
...
If the pad is flushing after a failed negotiation, return
GST_FLOW_FLUSHING instead from finish_frame().
https://bugzilla.gnome.org/show_bug.cgi?id=701763
2013-06-30 18:17:42 +02:00
Jonas Holmberg
82e5ec553b
audioencoder: unref before memset
...
Unref allocator and input_caps in encoder context before memsetting the
context.
2013-06-19 13:56:28 +02:00
Sebastian Dröge
c06377b385
audioencoder: Remove private copy of gst_audio_info_is_equal()
...
And improve the public one a bit based on it.
2013-06-01 09:06:22 +02:00
Sebastian Dröge
b8c6413a8e
audio: Always provide a buffer in gst_audio_(enc|dec)oder_allocate_output_buffer()
...
We have no way of tell the caller of the exact error (e.g. if we're flushing),
so will have to wait until the caller uses API that returns a GstFlowReturn,
for example when pushing this buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=700006
2013-05-24 16:54:46 +02:00
Sebastian Dröge
351405d8a0
audio: Make sure to push pre-caps events before the caps event
2013-05-08 15:56:34 +02:00
Sebastian Dröge
d537a21075
audioencoder: Ignore caps events if the input caps did not change
2013-04-18 09:58:36 +02:00
Stefan Sauer
e4ee1dde02
audioencoder: api doc fixes.
2013-03-29 10:33:35 +01:00
Tim-Philipp Müller
fbff6c6fb1
audioencoder: add some more debug info and remove obsolete comment
2012-12-02 12:33:43 +00:00
Tim-Philipp Müller
71e46b2478
gst_adapter_prev_timestamp -> gst_adapter_prev_pts
...
https://bugzilla.gnome.org/show_bug.cgi?id=675598
2012-11-14 00:03:15 +00:00
Tim-Philipp Müller
5f59b4f7ee
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-03 23:05:09 +00:00
Tim-Philipp Müller
cdb22274e6
audioencoder: make stop() vfunc also optional
...
Just change default value, since we also don't want to fail
if we want to deactivate and aren't active or want to activate
and are already active.
https://bugzilla.gnome.org/show_bug.cgi?id=685490
2012-10-04 13:40:32 +01:00
Andoni Morales Alastruey
795d366a0c
audioencoder: don't fail if the start vfunc is not implemented
...
Fix behaviour to match documentation and decoder class behaviour.
https://bugzilla.gnome.org/show_bug.cgi?id=685490
2012-10-04 13:14:10 +01:00
Mark Nauwelaerts
c629a44162
replace gst_tag_list_free with gst_tag_list_unref
2012-09-14 17:53:21 +02:00
Olivier Crête
b35bc51ed6
audio: Fix annotations
2012-09-13 17:11:56 -04:00
Mark Nauwelaerts
a29fab200c
audio{de,en}coder: use GstClockTime parameters where appropriate
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=683672
2012-09-10 11:20:50 +02:00
Mark Nauwelaerts
c9d3f32cc9
audioencoder: plug some leaks
2012-09-06 12:16:59 +02:00
Víctor Manuel Jáquez Leal
936ec3eb8f
audioencoder: getter for allocator
...
Sometimes the encoder would use the allocator for something else than just
allocating output buffers, for example, querying different parameters.
This patch expose a getter accessor for the negotiated memory allocator.
2012-08-14 15:47:29 +02:00
Tim-Philipp Müller
2ff4d2efe3
audioencoder: return TRUE from _set_output_format() if all is good
...
Fixes not-negotiated errors in wavpackenc unit test.
2012-08-13 23:34:52 +01:00
Sebastian Dröge
62ec7f837d
audioencoder: Let global tag events be handled the same way as other events
2012-08-09 17:06:31 +02:00
Sebastian Dröge
2a1f8a4da3
audio: Merge upstream stream tags
2012-08-09 16:24:47 +02:00
Sebastian Dröge
7f0e65bb46
audio: Always keep a complete taglist around
...
Otherwise updates to the tags will cause non-updated
tags to be lost downstream.
2012-08-09 15:48:03 +02:00
Sebastian Dröge
bc4d923982
audioencoder: Add negotiate vfunc that is used to negotiate with downstream
...
The default implementation negotiates a buffer pool and allocator
with downstream.
2012-08-09 15:27:33 +02:00