Commit graph

3818 commits

Author SHA1 Message Date
Jan Schmidt
f0b655e1ad audiobasesrc: Avoid unnecessary configuration
Port a change from audiobasesink from def07410, to ignore setcaps
when the caps don't actually change, and avoid a reconfiguration
and reset of the ringbuffer in that case.
2014-01-03 02:20:39 +11:00
Stéphane Cerveau
9f3becdf52 riff: Add id3 tag
Add id3 tag for wavparse

https://bugzilla.gnome.org/show_bug.cgi?id=721241
2013-12-31 10:38:44 +01:00
Edward Hervey
b08598da1c encoding-profile: Add missing break statement
And do a minor cleanup

COVERITY CID 1139753
2013-12-30 17:30:15 +01:00
Stefan Sauer
bc8213e21e riff: add two chunk-ids for samples instruments
Wav files can have 'smpl' and 'inst' chunks.
2013-12-30 14:40:35 +01:00
Edward Hervey
213596cc85 riff-media: Fix array read
nbchannels ranges from 1 to 8, therefore use '- 1' to get the proper
array value.
2013-12-30 13:46:34 +01:00
George Kiagiadakis
6108407db1 gstrtpbasepayload: use the session's suggested ssrc after a collision, if the session provides one
Conflicts:
	gst-libs/gst/rtp/gstrtpbasepayload.c
2013-12-30 13:13:35 +01:00
Sebastian Dröge
58592a2af3 audio/video-info: Properly initialize the info structures in set_format()
And don't assume in other code that set_format() preserves any fields at
all. These assumptions were already made here for fields that were changed
by set_format().
2013-12-30 10:53:24 +01:00
Sebastian Dröge
65732d9c97 audio/video-info: Initialize the complete struct to 0 in the beginning
Instead of only initializing some parts in some code paths. Also
makes it easier to use the reserved bits of the structs later.

https://bugzilla.gnome.org/show_bug.cgi?id=720810
2013-12-30 10:15:20 +01:00
Reynaldo H. Verdejo Pinochet
5f07c1ed4e audiobasesrc: Bunch of cosmetic/grammar fixes 2013-12-27 01:36:09 -03:00
Reynaldo H. Verdejo Pinochet
0a6d6e1fff audiobasesrc: Retarget FIXME to 2.0
Properly fixing this one would break API.
2013-12-27 01:36:09 -03:00
Reynaldo H. Verdejo Pinochet
aa1883d5d7 audiobase*: Drop trailing withespaces 2013-12-27 01:36:09 -03:00
Reynaldo H. Verdejo Pinochet
d1b3454299 audiobasesrc: Break some too long lines 2013-12-27 01:36:09 -03:00
Reynaldo H. Verdejo Pinochet
6b17d86692 audiobasesrc: Add FIXME for times in NSECONDS
Timebase is in nanoseconds pretty much everywhere else
2013-12-27 01:36:09 -03:00
Jan Schmidt
c24a1254c9 audiodecoder: Choose a default initial caps before sending GAP
If there are no caps from the audio decoder when handling a GAP
event - as when one is received right at the start on a DVD without
initial audio - then choose any default caps for downstream and
then send the GAP, so the audio sink has a configured format in
which to start the ringbuffer.

Also, make the audio sink reject a GAP without caps with a clearer
error message.

Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=603921
2013-12-27 04:04:45 +11:00
Wim Taymans
01c7fb11ba rtsptransport: add more profiles
Add support for Feedback profiles
2013-12-26 17:41:00 +01:00
Wim Taymans
f8e3a25415 video-frame: fix plane copy for index plane
Move the code to handle the index plane in the _copy_plane.
2013-12-25 10:54:55 +01:00
Lionel Landwerlin
aedca7acfc colorbalance: add missing annotation for list_channels()
https://bugzilla.gnome.org/show_bug.cgi?id=720999
2013-12-24 09:25:53 +00:00
Reynaldo H. Verdejo Pinochet
21190b9749 gstaudiobasesink: Always reset last_align
Should be done for all the reset_sync() cases. Not
only for the READY to PAUSED one.
2013-12-20 18:06:25 -03:00
Reynaldo H. Verdejo Pinochet
032779ff13 gstaudiobasesink: Reset last_align to 0, not -1
This is the expected behavior in READY -> PAUSED
2013-12-20 18:02:42 -03:00
Reynaldo H. Verdejo Pinochet
c1de7cdefb gstaudiobasesink: Always reset avg_skew on _reset
Only case in which it wasn't (READY to PAUSED) should
have had this value reseted too.
2013-12-20 17:58:43 -03:00
Reynaldo H. Verdejo Pinochet
adf800087c gstaudiobasesink: Retarget FIXME to 2.0
Properly fixing this one would break API
2013-12-20 17:48:22 -03:00
Reynaldo H. Verdejo Pinochet
d35db35258 gstaudiobasesink: Factor out reset sync routine 2013-12-20 17:47:38 -03:00
Reynaldo H. Verdejo Pinochet
b324d67586 gstaudiobasesink: Drop dead _sink_async_play() code 2013-12-20 13:58:34 -03:00
Reynaldo H. Verdejo Pinochet
2f04733a4b gstaudiobasesink: Break some too long lines 2013-12-20 13:58:33 -03:00
Reynaldo H. Verdejo Pinochet
187b106202 gstaudiobasesink: Cosmetics, grammar/spelling
- Drop repeated 'yet' from debug msg
- Drop repeated 'to' from param desc
- Some spelling
2013-12-20 13:58:33 -03:00
Edward Hervey
b97c711def audio/video: Initialize all {audio|video}info fields
Fixes "Unitialized Scalar Variable" issues reported by Coverity.

Has the added advantage of detecting whether somebody *does* use those
fields (ending up with a invalid address).

https://bugzilla.gnome.org/show_bug.cgi?id=720810
2013-12-20 14:47:22 +01:00
Reynaldo H. Verdejo Pinochet
86b0a0d6d0 gstaudiobasesink: Refactor alignment computation for clarity 2013-12-19 18:05:44 -03:00
Aleix Conchillo Flaqué
7a7ae7d5f4 sdp: parse encryption key field
* gst-libs/gst/sdp/gstsdpmessage.c: parse encryption key field (k).

  https://bugzilla.gnome.org/show_bug.cgi?id=720215
2013-12-17 16:32:06 -05:00
Stefan Sauer
51038d70aa pbutils: add typefinder and descriptions for audio/x-xi
xi files can be read by libsndfile.
2013-12-17 18:06:12 +01:00
Stefan Sauer
e09253724b descriptions: longer version of two audio codec descriptions 2013-12-17 18:06:11 +01:00
Sebastian Dröge
27c1261c72 video-format: Document usage of GST_VIDEO_FORMAT_ENCODED
This must only ever be used in caps in combination with a non-system
memory GstCapsFeatures, and where it does not make sense to specify
any of the other video formats. Examples of this would be in gst-vaapi.
2013-12-17 17:25:07 +01:00
Sebastian Dröge
8499a0e35a Revert "video: specify/restrict usage of GST_VIDEO_FORMAT_ENCODED"
This reverts commit 5fcdabd907.

Instead of making it impossible to use the ENCODED format we should
just document that it must not be used for capsfeature-less caps.

Also this commit broke API/ABI.
2013-12-17 17:23:19 +01:00
Sebastian Dröge
3e61449c86 videoencoder: Release the allocator on hard resets 2013-12-17 17:10:19 +01:00
Julien Isorce
2e38741b94 videodecoder: release buffer pool and allocator on full reset
It allows to release the buffer pool sooner (i.e. when going
to GST_STATE_READY). Previously it was released in finalize.

Fixes bug https://bugzilla.gnome.org/show_bug.cgi?id=720389
2013-12-16 16:07:05 +00: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
Sebastian Dröge
5a48fb7cdb vorbistag: Read image-type from the GstSample info struct
But for backwards compatibility keep reading it from the caps and only
use the info struct if the caps don't contain the image-type.
2013-12-16 11:35:12 +01:00
Sebastian Dröge
b5d26f3907 videodecoder: gst_video_decoder_release_frame() is available since 1.2.2 2013-12-13 14:37:24 +01:00
Julien Isorce
71788c1432 rtpbasepayload: change SSRC on GstRTPCollision event
Change our SSRC and update the caps when we receive a GstRTPCollision
event from downstream.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711560
2013-12-12 13:44:15 +01:00
Julien Isorce
6f614e1225 rtpbasepayload: implement src_event function
Add a srcpad event handler and call the src_event vmethod.
2013-12-12 13:16:01 +01:00
Edward Hervey
5fcdabd907 video: specify/restrict usage of GST_VIDEO_FORMAT_ENCODED
GST_VIDEO_FORMAT_ENCODED was added to support *extracting* video-related
information (like width, height, framerate,...) from caps.

It is __NOT__ intended to be used as a format field on video/x-raw caps.
2013-12-11 16:51:42 +01:00
Sebastian Rasmussen
c734f9fba8 rtpbuffer: Allow subbuffering of empty buffers
See https://bugzilla.gnome.org/show_bug.cgi?id=720162
2013-12-10 12:38:56 +01:00
Sebastian Dröge
9ec4eaa866 convertframe: Fix indention 2013-12-09 16:34:22 +01:00
Sebastian Dröge
729e3c8a10 videoencoder: Add sink_query() src_query() virtual functions
Based on the videodecoder change by Nicolas Dufresne and applied
here for consistency.

https://bugzilla.gnome.org/show_bug.cgi?id=720103
2013-12-09 16:34:19 +01:00
Nicolas Dufresne
09a6ca97d2 videodecoder: Add sink_query() src_query() virtual
https://bugzilla.gnome.org/show_bug.cgi?id=720103
2013-12-09 09:41:46 -05:00
Olivier Crête
d273d0c156 videocodecframe: Correct function name in doc 2013-12-06 19:27:08 -05:00
Olivier Crête
779e360352 videoencoder: Remove gst_video_encoder_set/get_discont
They've never existed outside the header file.
2013-12-06 16:24:46 -05: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
Julien Isorce
79ef75888c videodec/enc: clear reconfigure flag if negotiate succeeds
So that it avoids to send an allocation query twice.
One from an early call to gst_video_encoder_negotiate from a
subclass, then one from gst_video_encoder_allocate_output_frame.
Which means that previously gst_video_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
Sebastian Dröge
5acc099479 videodecoder: Add API to allow subclasses to specify that they needs caps before any buffers 2013-12-05 11:36:54 +01:00
Sebastian Dröge
820d7d7798 videoencoder: Return not-negotiated if we don't have caps when the first buffer arrives
Otherwise things like filesrc ! jpegenc ! fakesink just crash with
a segmentation fault because subclasses expect caps to be there.
2013-12-05 11:26:55 +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
Justin Joy
4a81e22607 convertframe: Fix trivial memory leak in debug statement
gst_element_get_name() requires the caller to g_free() the return value

https://bugzilla.gnome.org/show_bug.cgi?id=719850
2013-12-04 18:03: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
Mark Nauwelaerts
40fc306017 videodecoder: make _release_frame external API
... so subclasses can release a frame all the way (also from frame list)
without having to pass through _finish_frame or _drop_frame.
The latter may not be applicable, or may or may not have already
been called for the frame in question.

See https://bugzilla.gnome.org/show_bug.cgi?id=693772
2013-12-01 12:06:37 +01:00
Mark Nauwelaerts
614d35d795 videodecoder: fix spelling error in debug message 2013-12-01 12:06:36 +01:00
Matthew Waters
2e84acce58 videometa: add GstVideoGLTextureUploadMeta buffer pool option
allows configuration of whether GstVideoGLTextureUploadMeta is
added to buffers resulting from a buffer pool.  This is sperate
to the caps feature in that an element may want to add the upload
meta itself rather than allowing the buffer pool to.

https://bugzilla.gnome.org/show_bug.cgi?id=712798
2013-11-26 14:04:38 +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
Thiago Santos
81471099d2 videodecoder: 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.

https://bugzilla.gnome.org/show_bug.cgi?id=711094
2013-11-25 10:53:25 -03:00
Thiago Santos
0765962fbc videodecoder: allow using -1 for infinite tolerated errors
Allows using -1 to make videodecoder never post an error message
after decoding errors.

https://bugzilla.gnome.org/show_bug.cgi?id=711094
2013-11-25 10:53:14 -03:00
Mark Nauwelaerts
ee86a91957 videodecoder: avoid descending output timestamps
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=712796
2013-11-23 19:39:52 +01:00
Tim-Philipp Müller
4af1e064fe docs: cosmetic since marker fixes 2013-11-16 16:10:06 +00:00
Mark Nauwelaerts
b13a722746 audioencoder: also set output buffer DTS 2013-11-16 15:25:38 +01:00
Sebastian Dröge
76985c5e81 rtpbuffer: Fix gst_rtp_buffer_ext_timestamp() with clang 5 on iOS/ARM
The bitwise NOT operator is not defined on signed integers.
Thanks to Wim Taymans for finding the cause.

https://bugzilla.gnome.org/show_bug.cgi?id=711819
2013-11-13 20:15:02 +01:00
Sreerenj Balachandran
cd52ff313e videodecoder: try to negotiate the buffer pool even though there is no o/p format
We could have allocation query before caps event and even without caps inside
the query. In such cases , the downstream can return a bufferpool object with
out actually configuring it. This feature is helpful to negotiate the bufferpool
with out knowing the output video format. For eg: some hardware accelerated
decoders can interpret the o/p video format only after it finishes the decoding
of one buffer at least.

https://bugzilla.gnome.org/show_bug.cgi?id=687183
2013-11-11 13:28:11 +01:00
Tom Greenwood
360ac34425 appsrc: Fix deadlock that may occur when multiple threads access appsrc at once
https://bugzilla.gnome.org/show_bug.cgi?id=711550
2013-11-07 18:28:09 +01:00
Wim Taymans
b55de48843 tagdemux: accumulate buffers in adapter
Accumulate buffers in an adapter instead of appending them because append causes
a lot of memcpys.
Keep track of the last tagsize and accumulate enough data before attempting to
parse more data.

This patch implements a minimal amount of changes in order to not change the
behaviour. We should really rewrite the tag handling and trimming using
the adapter API instead of merging and trimming into a buffer.
2013-11-06 16:27:21 +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
Sebastian Dröge
b0aad9dd84 rtspconnection: Fix indention in header 2013-11-01 16:43:56 +01:00
Aleix Conchillo Flaque
53c7ad0c87 rtspconnection: allow setting tls certificate validation
Added new functions gst_rtsp_connection_set_tls_validation_flags() to
allow setting the TLS certificate validation flags when establishing a
TLS connection.
A getter is also available, gst_rtsp_connection_get_tls_validation_flags().

https://bugzilla.gnome.org/show_bug.cgi?id=711231
2013-11-01 16:42:34 +01:00
Matthieu Bouron
a4996f133b sdp: fix duplicate 'const' declaration warnings
https://bugzilla.gnome.org/show_bug.cgi?id=711258
2013-11-01 15:27:45 +01:00
Stefan Sauer
c07af869a7 discoverer: also filter 'framed' field when looking for same streams
Fixes extra streams for some mp4 files containing aac audio.
2013-10-15 11:17:56 +02:00
Stephan Sundermann
2b45196042 navigation: Add missing out parameter annotations to GstNavigation
https://bugzilla.gnome.org/show_bug.cgi?id=709938
2013-10-11 23:06:55 +02:00
Thibault Saunier
4305e1c33e encodebin: Handle changes in encoding_profile::restriction during playback
There are cases where we want to change the restrictions caps during
playback, handle that in encodebin.

https://bugzilla.gnome.org/show_bug.cgi?id=709588
2013-10-09 15:25:19 -03: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
Stefan Sauer
9269bee9bd videodecoder: don't overflow in bytes<->time conversion
fps_n and _d values can be large and this can overflow a uint. Also fix
copy'n'paste mistake in comments.
2013-10-08 09:15:21 +02:00
Stefan Sauer
b5bcd73015 discoverer: filter 'parsed' field when checking for same caps
We're checking the caps to see if we got more caps details after a parser got
plugged. This will also have a flipped 'parsed' field. If the field was already
present before the parse the match will fail. Add a function that will do the
check while excluding this field.
2013-10-07 23:21:05 +02:00
Stefan Sauer
82b6fff272 discoverer: don't shadow local variables 2013-10-07 22:55:46 +02:00
Stefan Sauer
9230a6af6a discoverer: early return when we have no streams 2013-10-07 22:55:46 +02:00
Stefan Sauer
2e1b1699fe discoverer: also log stream-id 2013-10-07 22:55:46 +02:00
Stefan Sauer
2af0831696 discoverer: fix quark-mismatch for toc and stream-id
Seems like a copy'n'paste from 15ee41df.
2013-10-07 21:18:54 +02:00
Stefan Sauer
b13385f96a discoverer: report depth for video
This was returning 0 in all cases. Use the data from GstVideoFormatInfo instead.
2013-10-05 21:03:33 +02:00
Hans Månsson
6bb58eec8a rtspconnection: Connect to proxy if specified
Reference: https://bugzilla.gnome.org/show_bug.cgi?id=708880
2013-10-04 07:27:12 +02:00
Stefan Sauer
20cdbc83f3 discoverer: extract some common code
Extract code to make a GstDiscovererInfo. Extracts code that sets StreamInfo.
2013-10-02 22:26:39 +02:00
Sreerenj Balachandran
9ffaaddcbe pbutils: Add codec-utility funtions to support H265
https://bugzilla.gnome.org/show_bug.cgi?id=708921
2013-10-02 11:37:39 +02:00
Sebastian Dröge
82ade7b1ea descriptions: Add description for H.265 2013-10-01 23:17:06 +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
Matej Knopp
057a44899e pbutils: Add entry for text/x-raw
https://bugzilla.gnome.org/show_bug.cgi?id=708954
2013-09-28 11:38:10 +02:00
Matej Knopp
cb70260b48 pbutils: add MPEG 2 AAC description
https://bugzilla.gnome.org/show_bug.cgi?id=708773
2013-09-25 23:13:48 +01: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
Ognyan Tonchev
02ac18b699 rtspconnection: Unset input/output_stream after freeing the GIOStream
watch->input_stream and watch->output_stream are owned by the GIOStream
and should be unset after freeing the stream.

https://bugzilla.gnome.org/show_bug.cgi?id=708689
2013-09-24 18:35:14 +02:00
Ognyan Tonchev
8ba90931ae rtspconnection: Only create writesrc when it is actually needed
Creating a GSource and not attaching it to a context will cause
a leak of it's child sources. That is why we create writesrc right
before attaching it to a context.

https://bugzilla.gnome.org/show_bug.cgi?id=708667
2013-09-24 12:10:00 +02:00
Wim Taymans
30a0cccbf6 video-frame: copy offsets from metadata
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=708606
2013-09-23 11:55:07 +02:00
Wim Taymans
ea45653db9 sdp: fix docs 2013-09-21 15:17:54 +02:00
Sebastian Dröge
9f91b2769d dmabuf: Fix compilation if no mmap is available
Also #ifdef some more code paths that don't make sense without mmap.

https://bugzilla.gnome.org/show_bug.cgi?id=708372
2013-09-19 16:34:38 +02:00