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
Mark Nauwelaerts
2ddc6bb63d
audiodecoder: handle downstream seeking query
...
... or not, in line with how segment events are treated.
2012-03-28 16:41:01 +02:00
Wim Taymans
32bd12dba9
Merge branch 'master' into 0.11
...
Conflicts:
.gitignore
common
configure.ac
ext/vorbis/gstvorbisdeclib.h
gst-libs/gst/audio/gstaudioencoder.c
gst-libs/gst/riff/riff-read.c
gst/playback/gstplaysink.c
gst/playback/gstplaysinkconvertbin.c
tests/check/libs/video.c
2012-03-22 11:35:13 +01:00
Sebastian Dröge
7ff608889a
audio{en,de}coder: Add optional open/close vfuncs
...
This can be used to do something in NULL->READY, like checking
if a hardware codec is actually available and to error out early.
2012-03-09 10:56:07 +01:00
Tim-Philipp Müller
29c266ccff
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
common
docs/libs/gst-plugins-base-libs.types
ext/pango/gsttextoverlay.c
ext/vorbis/gstvorbisdec.c
gst/playback/gstplaysink.c
gst/playback/gstplaysinkconvertbin.c
sys/ximage/ximagesink.c
sys/xvimage/xvimagesink.c
2012-03-08 20:31:34 +00:00
Mark Nauwelaerts
8a3f818dce
audiodecoder: add some tag handling convenience help
2012-03-06 16:17:37 +01:00
Mark Nauwelaerts
aae64c40a8
audiodecoder: plug caps leak when setting output format
2012-03-05 13:03:57 +01:00
Mark Nauwelaerts
3b0a2a60da
audiodecoder: enhance some debug statement
2012-03-05 11:04:20 +01:00
Wim Taymans
268d52fd33
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/rtsp/gstrtspconnection.c
win32/common/libgstaudio.def
2012-02-17 23:46:17 +01:00
Tim-Philipp Müller
0f6c8a27a7
docs: add new audio base class API to docs and .def file
2012-02-17 15:08:36 +00:00
Wim Taymans
e44dd9db8f
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/audio/gstaudioencoder.c
gst-libs/gst/pbutils/gstdiscoverer.c
2012-02-16 14:23:28 +01:00
Mark Nauwelaerts
439884d628
audiodecoder: add some properties to tweak baseclass behaviour
...
... so subclass can also rely upon never being bothered with some NULL buffer
it can't do any interesting with, or with any data before it received
any format configuration (and setup properly).
2012-02-16 12:35:53 +01:00
Mark Nauwelaerts
95306e8fef
audiodecoder: assert some more that subclass parsed frame has proper len
2012-02-16 12:35:40 +01:00
Wim Taymans
c7d0fb556f
audiodecoder: chain up to parent for defaults
...
Chain up to the parent instead of using the FALSE return value from
the event function (because it's otherwise impossible to return an error).
2012-02-15 13:42:19 +01:00
Wim Taymans
b2fbb2e587
audiodecoder: call default event handler
...
Call the default event handler for unknown events.
2012-02-15 13:03:59 +01:00
Mark Nauwelaerts
97d60612a4
audiodecoder: remove stray obsolete declaration
2012-02-06 22:10:28 +01:00
Sebastian Dröge
5aa6748151
audio{enc,dec}oder: Check if srcpad caps are a subset of the template caps
2012-02-01 16:32:53 +01:00
Sebastian Dröge
dbd43c7dd3
audiodecoder: Rename set_outcaps() to set_output_format() and take a GstAudioInfo as parameter
2012-02-01 16:27:47 +01:00
Sebastian Dröge
68c0790817
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/interfaces/propertyprobe.c
sys/xvimage/xvimagesink.c
2012-01-25 11:50:54 +01:00
Wim Taymans
3d42f0f6ed
port to new glib thread API
2012-01-19 11:36:17 +01:00
Mark Nauwelaerts
974c678ec8
audiodecoder: register state change function
2012-01-17 11:53:51 +01:00
Tim-Philipp Müller
d877ef13f5
docs: make gtk-doc happier
2011-12-30 19:24:09 +00:00
Edward Hervey
f562a29284
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/theora/gsttheoraenc.c
gst-libs/gst/tag/gstexiftag.c
gst/adder/gstadder.c
gst/adder/gstadder.h
gst/playback/gstdecodebin2.c
gst/playback/gstsubtitleoverlay.c
tests/check/libs/tag.c
2011-12-30 13:21:35 +01:00
Mark Nauwelaerts
9bfa65b7d3
audiodecoder: tweak documentation
2011-12-22 16:58:34 +01:00
Mark Nauwelaerts
c41f3cbef0
audiodecoder: set a non-zero default maximum tolerated errors
...
Whereas the previous default 0 was backwards compatible in that it lead
to erroring out immediately upon any error, elements that are really
ported and using the base class error macro can be assumed to intend to
improve behaviour rather than maintaining the old one. So, make it easy
on those and any future one and tolerate some errors by default, as intended.
Fixes #666579 .
2011-12-20 12:50:18 +01:00
Tim-Philipp Müller
fb6d09055a
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
ext/alsa/gstalsadeviceprobe.c
ext/alsa/gstalsamixer.c
ext/pango/gsttextoverlay.c
ext/pango/gsttextoverlay.h
gst-libs/gst/audio/gstaudiobasesink.c
gst-libs/gst/audio/gstaudioringbuffer.c
gst-libs/gst/audio/gstaudiosrc.c
gst-libs/gst/video/Makefile.am
gst-libs/gst/video/video.c
gst/encoding/gststreamcombiner.c
gst/encoding/gststreamsplitter.c
gst/playback/gstplaybasebin.c
gst/playback/gststreamsynchronizer.c
gst/playback/gstsubtitleoverlay.c
gst/playback/gsturidecodebin.c
sys/xvimage/xvimagesink.c
tests/examples/Makefile.am
win32/common/libgstvideo.def
Video overlay composition disabled for now, needs
porting to buffer meta.
2011-12-08 01:19:03 +00:00
Tim-Philipp Müller
5440ae3c18
Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
...
GStaticRecMutex is part of our API/ABI, not much we can do here
in 0.10 for most of these.
2011-12-04 20:50:25 +00:00
Tim-Philipp Müller
0c056a04fe
Merge commit '4a58223e4c824fedc024af435337a769e8ce593e' into 0.11
2011-11-28 21:20:10 +00:00
Mark Nauwelaerts
9f57d91137
audiodecoder: add some documentation
2011-11-28 11:37:27 +01:00
Mark Nauwelaerts
856a5dd581
audiodecoder: really discard NULL decoded frame altogether
...
... including any timestamp, rather than having that one influence base_ts.
2011-11-28 11:37:23 +01:00
Tim-Philipp Müller
a0639dad38
audio: remove unstable API guards from the audio decoder and encoder base classes
2011-11-25 13:11:54 +00:00
Matej Knopp
817f39608c
Fix printf format compiler warnings for OSX / 64bit
...
https://bugzilla.gnome.org/show_bug.cgi?id=662607
2011-11-22 01:00:59 +00:00
Wim Taymans
7afdff3575
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/audio/gstaudiodecoder.c
2011-11-17 17:07:41 +01:00
Wim Taymans
e302833e65
add parent to pad functions
2011-11-17 12:48:25 +01:00
Vincent Penquerc'h
f17f918b75
audiodecoder: accept dropped buffers before we know the format
...
This allows flacdec to not emit audio for headers, while allowing
the base audio decoder to keep its timestamps in sync.
2011-11-16 16:54:03 +00:00
Wim Taymans
2202511e77
add parent to query function
2011-11-16 17:25:17 +01:00
Wim Taymans
28157e6f21
_query_peer_*() -> _peer_query_*()
2011-11-15 18:04:17 +01:00
Vincent Penquerc'h
3e095382a1
audiodecoder: accept dropped buffers before we know the format
...
This allows flacdec to not emit audio for headers, while allowing
the base audio decoder to keep its timestamps in sync.
2011-11-15 13:29:31 +00:00
Robert Swain
a23dff1fbb
audio: Remove some unused variables
2011-11-14 12:49:50 +01:00
Mark Nauwelaerts
38615abdd8
audiodecoder: improve reverse playback
...
... by doing some more (reverse) timestamp interpolating and
refactoring downstream pushing.
Fixes #661983 .
2011-11-14 12:00:06 +01:00
Tim-Philipp Müller
4b0dce5148
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
gst-libs/gst/audio/Makefile.am
gst-libs/gst/audio/audio.h
tests/examples/seek/jsseek.c
tests/examples/seek/seek.c
tests/icles/test-colorkey.c
2011-11-13 13:36:29 +00:00
Tim-Philipp Müller
cd21e69913
audio: add GST_AUDIO_INFO_IS_VALID macro and use in audio decoder base class
...
API: GST_AUDIO_INFO_IS_VALID
2011-11-13 13:18:16 +00:00
Wim Taymans
372b9329b9
remove query types
2011-11-09 11:47:54 +01:00
Wim Taymans
a5fa136c0b
update for tag API removal
2011-11-02 12:11:16 +01:00
Wim Taymans
016d036137
Merge branch 'master' into 0.11
...
Conflicts:
configure.ac
gst-libs/gst/audio/gstbaseaudiosink.c
gst/audioconvert/channelmixtest.c
gst/playback/gstplaybasebin.c
gst/playback/gstsubtitleoverlay.c
tests/examples/Makefile.am
tests/examples/audio/Makefile.am
2011-10-27 15:44:58 +02:00
Mark Nauwelaerts
981070eb44
audiodecoder: having gather queue contents implies some draining is in order
...
... which ensures e.g. processing and sending last fragment of reverse playback
downstream at EOS.
2011-10-19 16:51:09 +02:00
Wim Taymans
f1088ed647
update for UNEXPECTED -> EOS flowreturn
2011-10-10 11:39:52 +02:00
Tim-Philipp Müller
ab949eebbd
audiodecoder: update to 0.11 API after merge
2011-10-09 16:15:54 +01:00
Tim-Philipp Müller
303dbaf84b
Merge remote-tracking branch 'origin/master' into 0.11
...
Conflicts:
tests/check/pipelines/vorbisdec.c
tests/check/pipelines/vorbisenc.c
2011-10-09 16:08:36 +01:00
Alessandro Decina
bc6f00becb
audioencoder: fix compile warning
2011-10-09 16:48:18 +02:00
Mark Nauwelaerts
a7ce550d04
audiodecoder: fix timestamp tolerance handling
2011-10-08 20:20:06 +02:00
Mark Nauwelaerts
d8312994aa
audiodecoder: handle empty input by discarding
2011-10-08 20:20:03 +02:00
Wim Taymans
73b894107a
Merge branch 'master' into 0.11
...
Conflicts:
ext/vorbis/gstvorbisdec.c
ext/vorbis/gstvorbisenc.c
ext/vorbis/gstvorbisenc.h
gst/audiotestsrc/gstaudiotestsrc.c
2011-10-08 10:19:06 +02:00
Mark Nauwelaerts
77069f01b1
audiodecoder: make upstream queries and events MT-safe
2011-10-07 14:52:48 +02:00
Tim-Philipp Müller
6ec5fc8d95
audio: don't use GST_PTR_FORMAT for segments
...
Avoids crashes with debugging output enabled.
2011-09-30 10:56:02 +01:00
Wim Taymans
1395378575
audiodecoder: fix refcounting error
2011-09-28 16:08:14 +02:00
Wim Taymans
f97a9bdc68
Merge branch 'master' into 0.11
2011-09-28 15:46:40 +02:00
Mark Nauwelaerts
8633eb391d
audiodecoder: really push pending events
2011-09-28 15:42:46 +02:00
Wim Taymans
19626cf27a
audiodecoder: add method to set output caps
...
Add a method to configure the output caps. Subclasses can't use
gst_pad_set_caps() anymore because then we won't see the caps.
Unbreak the padtemplate registration, the GTypeClass that is configured in the
object during _init is not the right one, we need to use the klass passed as the
argument to the init function..
2011-09-28 15:35:56 +02:00
Wim Taymans
f71511edd2
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/audio/gstaudiodecoder.c
gst-libs/gst/audio/gstaudioencoder.c
gst/encoding/gstencodebin.c
2011-09-26 19:22:05 +02:00
Sebastian Dröge
b767be2f68
audiodecoder: Fix thread safety issues if both pads have different streaming threads
2011-09-26 16:22:00 +02:00
Sebastian Dröge
d0bf465248
audiodecoder: Delay sending of serialized events to finish_frame()
2011-09-26 16:19:42 +02:00
Edward Hervey
17bfba09f1
Merge branch 'master' into 0.11
...
Conflicts:
ext/ogg/gstoggdemux.c
ext/pango/gsttextoverlay.c
gst-libs/gst/audio/gstaudioencoder.c
gst-libs/gst/audio/gstbaseaudiosrc.c
gst/playback/gstsubtitleoverlay.c
gst/videorate/gstvideorate.c
2011-09-23 18:27:11 +02:00
Edward Hervey
3f45eb1cfc
gst-libs: Temporarily remove dependency of gstaudio on gstpbutils
...
Also re-order the SUBDIRS in the higher-level Makefile so it cleanly
installs.
https://bugzilla.gnome.org/show_bug.cgi?id=657675
2011-09-23 16:17:45 +02:00
Mark Nauwelaerts
b44978befe
audiodecoder: fix documentation typo
2011-09-22 15:45:01 +02:00
Wim Taymans
7012e88090
Merge branch 'master' into 0.11
...
Conflicts:
gst-libs/gst/audio/audio.h
gst-libs/gst/audio/gstaudiodecoder.c
gst-libs/gst/audio/gstaudiodecoder.h
gst-libs/gst/audio/gstaudioencoder.c
gst-libs/gst/audio/gstbaseaudioencoder.h
gst/playback/Makefile.am
gst/playback/gstplaybin.c
gst/playback/gstplaysink.c
gst/playback/gstplaysinkvideoconvert.c
gst/playback/gstsubtitleoverlay.c
gst/videorate/gstvideorate.c
gst/videoscale/gstvideoscale.c
win32/common/libgstaudio.def
2011-09-06 15:24:32 +02:00
Tim-Philipp Müller
ba05716485
docs: some docs love
2011-09-05 23:28:20 +01:00
Tim-Philipp Müller
7563e0c9cf
docs: add GstAudioDecoder and GstAudioEncoder to documentation
2011-09-05 23:28:20 +01:00
Tim-Philipp Müller
86e6343759
audio: rename GstBaseAudioDecoder/Encoder to GstAudioDecoder/Encoder
...
API: gst_gst_audio_decoder_finish_frame()
API: gst_gst_audio_decoder_get_audio_info()
API: gst_gst_audio_decoder_get_byte_time()
API: gst_gst_audio_decoder_get_delay()
API: gst_gst_audio_decoder_get_latency()
API: gst_gst_audio_decoder_get_max_errors()
API: gst_gst_audio_decoder_get_min_latenc()y
API: gst_gst_audio_decoder_get_parse_state()
API: gst_gst_audio_decoder_get_plc()
API: gst_gst_audio_decoder_get_plc_aware()
API: gst_gst_audio_decoder_get_tolerance()
API: gst_gst_audio_decoder_get_type()
API: gst_gst_audio_decoder_set_byte_time()
API: gst_gst_audio_decoder_set_latency()
API: gst_gst_audio_decoder_set_max_errors()
API: gst_gst_audio_decoder_set_min_latency()
API: gst_gst_audio_decoder_set_plc()
API: gst_gst_audio_decoder_set_plc_aware()
API: gst_gst_audio_decoder_set_tolerance()
API: gst_gst_audio_encoder_finish_frame()
API: gst_gst_audio_encoder_get_audio_info()
API: gst_gst_audio_encoder_get_frame_max()
API: gst_gst_audio_encoder_get_frame_samples()
API: gst_gst_audio_encoder_get_hard_resync()
API: gst_gst_audio_encoder_get_latency()
API: gst_gst_audio_encoder_get_lookahead()
API: gst_gst_audio_encoder_get_mark_granule()
API: gst_gst_audio_encoder_get_perfect_timestamp()
API: gst_gst_audio_encoder_get_tolerance()
API: gst_gst_audio_encoder_get_type()
API: gst_gst_audio_encoder_proxy_getcaps()
API: gst_gst_audio_encoder_set_frame_max()
API: gst_gst_audio_encoder_set_frame_samples()
API: gst_gst_audio_encoder_set_hard_resync()
API: gst_gst_audio_encoder_set_latency()
API: gst_gst_audio_encoder_set_lookahead()
API: gst_gst_audio_encoder_set_mark_granule()
API: gst_gst_audio_encoder_set_perfect_timestamp()
API: gst_gst_audio_encoder_set_tolerance()
https://bugzilla.gnome.org/show_bug.cgi?id=642690
2011-09-05 23:28:13 +01:00