Havard Graff
0826fb95b7
audio: video: Optimize by using cached quark for meta tag
...
Avoid taking the global quark lock for every single buffer.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/295 >
2020-06-27 09:23:10 +00:00
Guillaume Desmottes
545d0b144f
audio: annotate @buf in finish_frame methods
2020-03-18 15:38:25 +01:00
Jonas Holmberg
af909c6d82
audioencoder: fix segment event leak
...
Segment event was leaked if format != _TIME.
2019-12-20 12:43:35 +00:00
Thibault Saunier
909baa2360
Pass the code through codespell
2019-08-30 13:05:36 +00:00
Tim-Philipp Müller
fae8c24590
audio: Update for g_type_class_add_private() deprecation in recent GLib
...
https://gitlab.gnome.org/GNOME/glib/merge_requests/7
2018-06-23 21:49:48 +02:00
Edward Hervey
22c9e5f7c1
libs: Documentation cleanup
...
* Fix wrong naming, wrong types and typos
* Add missing sections
* Add missing documentation for entries
* Explicitely mark private structure entries
* Remove items that never existed
2018-04-02 08:53:28 +02:00
Matthew Waters
06aba17d19
Revert "audioencoder: flush encoder in transition PAUSED->READY"
...
This reverts commit 2dcdd13512
.
2017-10-22 01:00:06 +11:00
Nicola Murino
2dcdd13512
audioencoder: flush encoder in transition PAUSED->READY
...
https://bugzilla.gnome.org/show_bug.cgi?id=787311
2017-10-20 01:55:04 +11:00
Reynaldo H. Verdejo Pinochet
e81c334ca9
Use proper GtkDoc notation for NULL/FALSE/TRUE
2017-10-03 14:31:18 -07:00
Mark Nauwelaerts
00fa39befa
audioencoder: also adjust sample count upon discont to avoid ts overflow
...
Only adjusting the base_ts might lead to a negative ts and as such integer
overflow into a huge timestamp which then propagates into the granulepos
and so on. Instead, resync to incoming buffer timestamp using both base_ts
and sample count rather than only base_ts.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=785948
2017-08-09 09:32:55 +02:00
Sebastian Dröge
a3656ba29b
libs: Check if meta transform_func is NULL before using it
...
https://bugzilla.gnome.org/show_bug.cgi?id=782050
2017-05-02 14:31:14 +03:00
Thibault Saunier
099ac9faf2
docs: Convert gtkdoc comments to markdown
...
Modernizing the documentation, making it simpler to read an
modify and allowing us to possibly switch to hotdoc in the
future.
2017-03-10 18:19:17 -03:00
Jan Schmidt
1840b0233a
audio: Don't answer BYTES queries
...
Refuse to answer BYTES queries ourselves. The only
time they make sense is on raw elementary streams,
in which case upstream would already have answered.
They especially don't make sense for encoders to answer
based on upstream values - although perhaps later
we could make it do TIME->BYTES conversion on the source
pad based on bitrate.
https://bugzilla.gnome.org/show_bug.cgi?id=757631
2016-11-16 00:14:47 +11:00
Havard Graff
a32b25db6a
audioencoder: Error-handling for pushing headers
...
https://bugzilla.gnome.org/show_bug.cgi?id=773105
2016-10-20 14:12:53 +03:00
Havard Graff
63c1f4aa33
audioencoder: Plug buffer-leak
...
https://bugzilla.gnome.org/show_bug.cgi?id=773107
2016-10-20 14:09:49 +03:00
Sebastian Dröge
5cbd1a7bca
audioencoder: Protect samples_in/bytes_out and audio info with object lock
...
It might cause invalid calculations during the CONVERT query otherwise.
2016-07-04 11:12:55 +02:00
Sebastian Dröge
8d8262a00c
audioencoder/decoder: Move encoded audio conversion function to a common place
...
No need to duplicate this non-trivial function.
2016-07-04 11:12:55 +02:00
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