Commit graph

1039 commits

Author SHA1 Message Date
Reynaldo H. Verdejo Pinochet
86b0a0d6d0 gstaudiobasesink: Refactor alignment computation for clarity 2013-12-19 18:05:44 -03:00
Todd Agulnick
38d8fa12a5 Some compiler warning fixes to satisfy XCode compiler
https://bugzilla.gnome.org/show_bug.cgi?id=720513
2013-12-16 16:51:29 +01:00
Wim Taymans
df3718ea2b audiobasesink: handle the RESYNC flag
Also resync when a buffer with the RESYNC flag is seen.
2013-12-05 16:27:35 +01: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
Sebastian Dröge
400d4baf92 audiodecoder: Use FALSE instead of 0 2013-12-05 11:37:09 +01:00
Mark Nauwelaerts
6e639b73ff audiodecoder: no fallback to segment start for reverse playback
See https://bugzilla.gnome.org/show_bug.cgi?id=709965
2013-12-04 19:24:25 +01:00
Mark Nauwelaerts
387e5f0c14 audiodecoder: use segment start as fallback ts if no other available
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=709965
2013-12-02 20:36:21 +01:00
Sebastian Dröge
f8477e6b88 audiodecoder: error out if no frames are decoded before eos
Raise an error in case no frames are decoded before EOS and we
have input, meaning that data was received but it was somehow invalid.

Based on the videodecoder change, merged here for consistency.

https://bugzilla.gnome.org/show_bug.cgi?id=711094
2013-11-26 12:29:30 +01:00
Sebastian Dröge
b0788ce054 audiodecoder: Allow using -1 for infinite tolerated errors
Allows using -1 to make audiodecoder never post an error message
after decoding errors.

Based on the videodecoder change, merged here for consistency.

https://bugzilla.gnome.org/show_bug.cgi?id=711094
2013-11-26 12:20:33 +01:00
Mark Nauwelaerts
b13a722746 audioencoder: also set output buffer DTS 2013-11-16 15:25:38 +01:00
Sebastian Dröge
3fb235c53c audio: Update ORC dist files 2013-11-03 15:58:35 +01:00
Sebastian Dröge
081f009e25 audio-format: Use ORC for filling memory with silence samples 2013-11-03 15:58:35 +01:00
Takashi Iwai
6d659e3c6f audioringbuffer: Don't clear need_reorder flag too early
gst_audio_ring_buffer_set_channel_positions() checks whether the given
positions are identical with the current setup and returns
immediately if so.  But it also clears need_reorder flag before this
comparison, thus this flag might be wrongly cleared if the function is
called twice with the same channel positions.

Move the flag clearance after the check.

https://bugzilla.gnome.org/show_bug.cgi?id=709754
2013-10-09 19:00:33 +02:00
Johannes Dewender
019ef0747d audiocdsrc: Don't consider trailing data tracks for MusicBrainz disc id calculation
MusicBrainz removes trailing data tracks from releases on the server
and also for the calculation of the MusicBrainz Disc ID.

https://bugzilla.gnome.org/show_bug.cgi?id=708991
2013-10-01 22:24:22 +02:00
David Svensson Fors
09d628f8f1 audioringbuffer: check if acquired in set_timestamp
Also use GST_OBJECT_LOCK when accessing object data in set_timestamp.

https://bugzilla.gnome.org/show_bug.cgi?id=702230
2013-10-01 22:12:07 +02:00
Matej Knopp
dbaf1bf0a3 audio: change buffer timestamp when clipping even if data hasn't been trimmed
https://bugzilla.gnome.org/show_bug.cgi?id=708952
2013-09-28 11:39:43 +02:00
Wim Taymans
c9ff3e4f98 audiobasesink: do big correction for large drift
If we are using skew slaving and we drift more than twice the allowed amount, do
a big correction to get back on track more quickly.
2013-09-25 16:03:07 +02: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
Wim Taymans
d3641943b3 docs: fix some doc blocks 2013-09-09 15:52:05 +02:00
Mathieu Duponchelle
d1cb9c994b video/audio: #define metadata strings.
For instance "orientation" becomes GST_VIDEO_ORIENTATION_METADATA.
2013-09-09 15:37:02 +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
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
Tim-Philipp Müller
6b070784c4 audio: make direct includes work again
Not nice to break people's code if we can avoid it. Could
add a warning in the next cycle, and then require single
includes in the cycle after.

https://bugzilla.gnome.org/show_bug.cgi?id=695889
2013-08-16 14:14:11 +01: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
Sebastian Dröge
99ef452fc4 audio/videodecoder: Rename variable in macro from dec to __dec
Otherwise it might shadow another variable in the outside scope
and cause interesting side effects.
2013-07-25 14:11:28 +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
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
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
Ognyan Tonchev
f240d34c7e audiobasesrc: add 2 missing gst_buffer_unmap () calls
There are 2 missing calls to gst_buffer_unmap () in the error handling in
create ().

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702467
2013-06-17 16:34:26 +02:00
Sebastian Dröge
ff5d3313d4 Release 1.1.1 2013-06-05 18:31:27 +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
5065e76b1c audio: Add gst_audio_info_is_equal() 2013-05-30 23:56:52 +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
Alexander Schrab
a049b102da alsasrc: Make using driver timestamps possible
https://bugzilla.gnome.org/show_bug.cgi?id=699744
2013-05-20 11:25:17 +02:00
Sebastian Dröge
be154ee9d6 audio-info: Always pass NULL as position parameter to gst_audio_info_set_format()
https://bugzilla.gnome.org/show_bug.cgi?id=700259
2013-05-15 09:26:56 +02:00
Sebastian Dröge
b401f447d2 audio-info: For more than 64 channels don't allow a channel layout
More than 64 channels have all channels unpositioned.

https://bugzilla.gnome.org/show_bug.cgi?id=700259
2013-05-14 09:34:21 +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
Tim-Philipp Müller
f5c0d61be7 Update disted orc backup files
Generated with 0.4.17 now.
2013-04-22 13:58:33 +01:00
Sebastian Dröge
d537a21075 audioencoder: Ignore caps events if the input caps did not change 2013-04-18 09:58:36 +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
Tim-Philipp Müller
e96ca66c36 docs: add some more audio macros 2013-04-17 09:26:40 +01:00
Sebastian Dröge
98f41f1c39 audioringbuffer: Also reset segbase 2013-04-15 10:13:14 +02:00
Paul HENRYS
587b2721c8 audioringbuffer: Reset segdone when releasing audioringbuffer
https://bugzilla.gnome.org/show_bug.cgi?id=697723
2013-04-15 10:09:49 +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
Stefan Sauer
e4ee1dde02 audioencoder: api doc fixes. 2013-03-29 10:33:35 +01:00
Paul HENRYS
78a8531c75 audiobasesrc: Fix ringbuffer handling when settings caps
ringbuffer was released after setting values to its spec field
in gst_audio_base_src_setcaps(). This led to failure in case
gst_audio_base_src_setcaps() is called more than one time.

https://bugzilla.gnome.org/show_bug.cgi?id=696540
2013-03-25 10:16:03 +01:00
Marc Leeman
0fa50b44f0 audioringbuffer: avoid division by 0 when outputting debug info
https://bugzilla.gnome.org/show_bug.cgi?id=695832
2013-03-15 09:06:07 +00:00
Akihiro Tsukada
a32877125f audio: add support for AAC pass-through
https://bugzilla.gnome.org/show_bug.cgi?id=694443
2013-02-27 00:38:05 +00:00
Stefan Sauer
b274ff7c21 audioringbuffer: log a few more details (e.g. obj-name) 2013-02-25 19:55:00 +01:00
Tim-Philipp Müller
6682215d9d audio: fix GST_AUDIO_INFO_ENDIANNESS macro 2013-02-16 13:06:54 +00:00
Tim-Philipp Müller
664adc6e19 gst-libs: use GST_*_1_0 environment variables everywhere
The _1_0 suffixed environment variables override the
non-suffixed ones, so if we're in an environment that
sets the _1_0 suffixed ones, such as jhbuild, we need
to set those to make sure ours actually always get
used.
2013-01-16 10:16:27 +00:00
Tim-Philipp Müller
b4def63f55 audio: don't use uninitialized variable in debug log
https://bugzilla.gnome.org/show_bug.cgi?id=667317
2012-12-29 14:29:53 +00:00
Wim Taymans
fe93457191 audioclock: mark as using some other clock
We need to mark our clock as using some other clock source. Alsa source uses the
clock type to decide if it can use alsa driver timestamps or not.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690465
2012-12-20 16:48:04 +01:00
Wim Taymans
5e04fcd2ef audiobasesrc: init variable
We need to initialize this variable because we can't be sure that the subclass
will set it.
2012-12-20 16:47:56 +01:00
Tim-Philipp Müller
68f366a8d3 audiobasesrc: bail out if subclass posts an error
Use new ringbuffer ERROR state to make all the various
threads bail out correctly when the subclass posts an
error. It's a bit iffy to communicate this properly
between the different bits of code.

https://bugzilla.gnome.org/show_bug.cgi?id=690197
2012-12-17 20:50:32 +00:00
Tim-Philipp Müller
4f49c7a33b audioringbuffer: add GST_AUDIO_RING_BUFFER_STATE_ERROR state
API: GST_AUDIO_RING_BUFFER_STATE_ERROR

https://bugzilla.gnome.org/show_bug.cgi?id=690197
2012-12-17 20:50:32 +00:00
Thiago Santos
929edc2572 audiobasesrc: Always resync the ringbuffer on the first buffer
In SKEW mode, use next_sample == -1 to check for the first sample
when starting to read samples so it resyncs the ringbuffer and
timestamps are ok.

Suggestion from Teemu Katajisto <teemu.katajisto@digia.com>

https://bugzilla.gnome.org/show_bug.cgi?id=648359
2012-12-17 11:47:34 +01:00
Sebastian Dröge
3f82e919dd libs: Use foo/foo.h as single-include header consistently everywhere
https://bugzilla.gnome.org/show_bug.cgi?id=688785
2012-12-12 17:13:10 +00: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
8827437b61 audio: remove bogus Since marker from docs
It was causing perl warnings in gtk-doc code.
2012-11-21 23:19:14 +00:00
Evan Nemerson
4d77fba46c libs: Add missing single include headers and use them in GIRs 2012-11-21 11:01:24 +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
32139f9a3d audio: Use new GType for GThread instead of just G_TYPE_POINTER 2012-11-12 11:45:47 +01: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
Miguel Angel Cabrera Moya
244fdcc69a audiobasesink: use the same type as the internal type to return it
https://bugzilla.gnome.org/show_bug.cgi?id=687466
2012-11-02 19:52:38 +00:00
Wim Taymans
5f44303925 audioringbuffer: reset spec on _release
Reset the caps and the audioinfo when releasing the ringbuffer.
Fixed a bug with reusing pulsesink.
2012-10-30 10:33:04 +00:00
Tim-Philipp Müller
a4f2df6341 Revert "g-i: change g-ir-scanner arg --library=libgstfoo-X.la to --library=gstfoo-X"
This reverts commit e39fbe6b7e.

Looks like we need to pass the full .la file after all in a setup
with libtool, or it might not find the library, e.g. like

  ERROR: can't resolve libraries to shared libraries: gstfft-1.0

Conflicts:
	gst-libs/gst/audio/Makefile.am
	gst-libs/gst/pbutils/Makefile.am

Also see https://bugzilla.gnome.org/show_bug.cgi?id=603710
2012-10-29 12:47:05 +00:00
Tim-Philipp Müller
973f4f09ea audio: try harder to make g-i use the build-tree libgsttag
without adding additional --library= tags, which shouldn't be there.

https://bugzilla.gnome.org/show_bug.cgi?id=679315
2012-10-28 17:59:27 +00:00
Tim-Philipp Müller
e39fbe6b7e g-i: change g-ir-scanner arg --library=libgstfoo-X.la to --library=gstfoo-X
As it should be according to the man page.

https://bugzilla.gnome.org/show_bug.cgi?id=679315
2012-10-28 17:35:57 +00:00
Mark Nauwelaerts
45d802b63f audiodecoder: track forced decoding state 2012-10-24 14:46:22 +02:00
Sebastian Dröge
1813701ef2 audiobasesink: Add explanation to the GAP event handling code 2012-10-24 11:22:29 +02:00
Sebastian Dröge
b793d0bfae audiobasesink: Properly handle GAP events
These are now converted into silence buffers if they have
a duration or cause the ringbuffer and clock to be started
if they don't have a duration.

Fixes bug #685273.
2012-10-24 11:19:05 +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
Tim-Philipp Müller
3ee2ad255b audiocdsrc: mention TOCs in docs 2012-10-17 19:59:57 +01:00
Mark Nauwelaerts
162433795a audio: properly handle clipping of empty buffer 2012-10-15 18:48:01 +02: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
Wim Taymans
3591df23b1 docs: playbin2 -> playbin 2012-10-09 12:20:10 +02:00
Andoni Morales Alastruey
8a5cf5ef4d audio/video: update documentation for vfunc's that require chaining up 2012-10-08 13:04:02 +02: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
Michael Smith
92560517e8 Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-base 2012-10-03 10:45:26 -07:00
Michael Smith
a29c4f9489 meta registration: use g_once functions to register these threadsafely. 2012-10-03 10:44:59 -07:00
Arun Raghavan
9f9718715a audio: Explicitly specify endianness for IEC 61937 payloading
This is required since some systems (DirectSound and OS X) manage the
final byte order themselves.

https://bugzilla.gnome.org/show_bug.cgi?id=678021
2012-09-19 09:15:16 +05:30
Mark Nauwelaerts
c629a44162 replace gst_tag_list_free with gst_tag_list_unref 2012-09-14 17:53:21 +02:00
Wim Taymans
a57198a0ba audio: improve property description
Improve the description of the latency-time and buffer-time properties in the
audio sink and source.
2012-09-14 16:08:50 +02:00
Sebastian Dröge
6e33f2d464 audiodecoder: Don't output an (unreffed) buffer in error cases 2012-09-14 14:54:22 +02:00
Tim-Philipp Müller
f7c6aa5abd Release 0.11.94 2012-09-14 02:47:54 +01:00
Olivier Crête
b35bc51ed6 audio: Fix annotations 2012-09-13 17:11:56 -04:00
Wim Taymans
0ce33461c8 audiosrc: check for flushing state in provide_clock
Only provide a clock when we are not flushing, this means that we have posted a
PROVIDE_CLOCK message. We used to check if we were acquired but that doesn't
work anymore now that we do the negotiation async in the streaming thread: it's
possible that we are still negotiating when the pipeline asks us for a clock.
2012-09-10 12:19:22 +02:00
Wim Taymans
44dab50b7a ringbuffer: add method to check the flushing state 2012-09-10 12:19:22 +02:00
Mark Nauwelaerts
75fe950c33 gst-libs: restore original full padding 2012-09-10 11:45:44 +02:00
Pontus Oldberg
a2f8ec4f5a ringbuffer: add support for timestamps
Make it possible for subclasses to provide the timestamp (as an absolute time
against the pipeline clock) of the last read data.
Fix up alsa to provide the timestamp received from alsa. Because the alsa
timestamps are in monotonic time, we can only do this when the monotonic clock
has been selected as the pipeline clock.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=635256
2012-09-10 11:34:14 +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
Thibault Saunier
dc5bb008a3 audio: port to the new GLib thread API 2012-09-09 20:41:06 -03:00