Commit graph

118 commits

Author SHA1 Message Date
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
daf017ced8 audiodecoder: Fix last commit and simplify code a lot 2013-08-23 19:10:48 +02:00
Edward Hervey
f9ebfd57f8 audiodecoder: Fix previous commit
(sorry)
2013-08-23 16:59:30 +02:00
Edward Hervey
cd3fe60c68 audiodecoder: Don't push out identical caps
This avoids triggering plenty of extra code/methods/overhead downstream when
we can just quickly check whenever we want to set caps whether they are
identical or not

https://bugzilla.gnome.org/show_bug.cgi?id=706600
2013-08-23 15:22:05 +02:00
Youness Alaoui
ca2a515373 audiodecoder: Clear taglist on reception of a STREAM_START event
https://bugzilla.gnome.org/show_bug.cgi?id=705109
2013-08-12 13:02:59 +02:00
Matej Knopp
197376212c audiodecoder: do not leak input caps
https://bugzilla.gnome.org/show_bug.cgi?id=704926
2013-07-26 15:37:04 +01:00
Mathieu Duponchelle
97e68b36c7 audiodecoder: Don't return not-negotiated if flushing
If the pad is flushing after a failed negotiation, return GST_FLOW_FLUSHING.

https://bugzilla.gnome.org/show_bug.cgi?id=701763
2013-06-25 12:51:55 -04: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
d1a08af605 audiodecoder: Ignore caps events if the input caps did not change 2013-04-18 09:58:36 +02:00
Wim Taymans
76d71da1c4 audiodecoder: don't make negative timestamp
Clamp timestamp interpollation to 0 to avoid going negative. This should not
happen, really, but until the interpolation is improved this seems better.
2013-03-31 13:46:30 +02:00
Wim Taymans
03f658dda2 audiodecoder: forward stream-start immediately 2013-03-30 19:14:37 +01: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
Sebastian Dröge
d209727644 audiodecoder: Reset error count to 0 after successfully decoding a frame 2012-11-09 16:48:54 +01: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
Mark Nauwelaerts
45d802b63f audiodecoder: track forced decoding state 2012-10-24 14:46:22 +02:00
Tim-Philipp Müller
277ca04976 audiodecoder: don't leak message strings when error is not fatal
https://bugzilla.gnome.org/show_bug.cgi?id=681192
2012-10-20 11:38:10 +01:00
Josep Torra
d8d9f0db97 audiodecoder: set of base_ts for segment formats other than time
Fixes setting of converted segment start as base_ts when estimate rate
is allowed.
2012-10-11 13:17:01 +02:00
Sebastian Dröge
e779002cfd audiodecoder: Don't unref caps twice
Thanks to Josep Torra for noticing.
2012-10-10 15:50:31 +02:00
Mark Nauwelaerts
c629a44162 replace gst_tag_list_free with gst_tag_list_unref 2012-09-14 17:53:21 +02:00
Sebastian Dröge
6e33f2d464 audiodecoder: Don't output an (unreffed) buffer in error cases 2012-09-14 14:54:22 +02: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
Jan Schmidt
5dafecad31 audiodecoder: Handle GAP events in place of segment updates
Use them to trigger generation of an empty output buffer or
to send pending events downstream and trigger pre-roll
2012-08-31 12:42:12 -07:00
Víctor Manuel Jáquez Leal
f7f0c55e5f audiodecoder: getter for allocator
Sometimes the decoder 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:34 +02:00
Sebastian Dröge
e9fbba63b5 audiodecoder: Let global tag events be handled the same way as other events 2012-08-09 16:55:19 +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
513d4f7cd1 audiodecoder: 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:10:05 +02:00
Sebastian Dröge
e1702d62a0 audiodecoder: Decouple setting of output format and downstream negotiation
This makes the audio decoder base class more similar to the video
decoder base class.
2012-08-09 15:02:27 +02:00
Sebastian Dröge
99d73c94e9 tag: Update for taglist/tag event API changes 2012-07-28 00:35:02 +02:00
Wim Taymans
683a38ad65 update for new variable names 2012-07-27 15:24:43 +02:00
Mark Nauwelaerts
c91615bd82 audio{de,en}coder: delay input caps processing until processing data
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680614
2012-07-26 14:35:30 +02:00
Mark Nauwelaerts
473371f943 audiodecoder: hold caps ref while needed 2012-07-25 11:58:26 +02:00
Mark Nauwelaerts
65ea6dee60 audiodecoder: only arrange to reconfigure if data provided
... otherwise audio format need not be known already.
2012-07-24 14:48:59 +02:00
Mark Nauwelaerts
d63a4024b8 audiodecoder: minor doc fix 2012-07-24 12:30:21 +02:00
Sebastian Dröge
d55d7fdc38 audio: Renegotiate if necessary
And also correct usage of the base class stream lock.
2012-07-23 12:01:12 +02:00
Sebastian Dröge
7b06c34868 audiodecoder: Handle allocation query 2012-07-23 11:42:22 +02:00
Sebastian Dröge
0814d38e98 audiodecoder: Add propose_allocation, decide_allocation vfuncs and functions to allocate buffers with information from the allocation query results 2012-07-23 10:28:05 +02:00
Edward Hervey
55f692eff6 audiodecoder: Don't assert on pad caps not being set
The decoder might have been de-activated in the meantime (resulting
in NULL pad caps).

If the decoder really isn't configured, then it will error out further
down when checking whether the GST_AUDIO_INFO_IS_VALID()

https://bugzilla.gnome.org/show_bug.cgi?id=667562
2012-07-19 10:55:53 +02:00
Edward Hervey
2817bdadc9 libs: Remove "Since" markers and minor doc fixups 2012-07-13 12:11:06 +02:00
Jan Schmidt
d9740bf9ba audio decoder: Add some debug output for bad caps from children 2012-06-12 23:52:35 +10:00
Vincent Penquerc'h
f8b8711081 audiodecoder: push queued events only when we have a first buffer
https://bugzilla.gnome.org/show_bug.cgi?id=675812
2012-06-11 11:29:13 +01:00
Wim Taymans
a2172bdb4b update for tag event change 2012-06-06 13:05:47 +02:00
Sebastian Dröge
2667d4bb82 Revert "audiodecoder: Error out earlier in a few places if something goes wrong"
This reverts commit eb68a2d5a7.

This sometimes errors out too early now, needs some more thoughts.
2012-06-04 10:01:42 +02:00
Sebastian Dröge
f609b3a627 audiodecoder: Return setcaps return value instead of always TRUE 2012-06-04 09:56:30 +02:00
Sebastian Dröge
eb68a2d5a7 audiodecoder: Error out earlier in a few places if something goes wrong 2012-06-02 17:16:13 +02:00
Alessandro Decina
ebf80977c4 audiodecoder: don't discard timestamps when consecutive input buffers have the same ts
Avoid pushing out buffers with the same timestamp only if the out buffers are
decoded from the same input buffer. Instead keep the timestamps when upstream
pushes consecutive buffers with the same ts.
2012-04-05 10:19:46 +02:00
Sebastian Dröge
a103fa85a9 audio{en,de}coder: Track input and output segments separately
They can go out of sync for some time if processing of buffers
on the old segment happens after the segment was received.
2012-03-30 13:21:09 +02:00
Sebastian Dröge
d8cb235fe4 audiodecoder: Rename ::event() to ::sink_event() and add ::src_event() 2012-03-30 12:23:13 +02:00
Sebastian Dröge
40a4f2f8aa audiodecoder: Rename _byte_time() to _estimate_rate()
Which is telling more about what this actually does and is more
consistent with the video base classes.
2012-03-30 11:51:47 +02:00