Commit graph

14513 commits

Author SHA1 Message Date
Tim-Philipp Müller
6410aba1aa rtpbuffer: optimise payload mapping for buffers with one memory
Micro-optimisation: if the buffer consist of just one memory, we
know we have already mapped that memory to read the headers, so
no need to map it another time to get to the payload data, we
can just set up the payload data details right there and then
and avoid another map call in gst_rtp_buffer_get_payload().
Adds up when receiving RTP-payloaded raw video which can easily
be thousands of packets per frame.
2015-06-01 19:01:23 +01:00
Tim-Philipp Müller
bc309a100f rtpbasedepayload: provide chain_list function on sink pad
Implement a chain_list function, which avoids lots of locking
compared to the default fallback implementation in GstPad.
We may also want to do some more sophisticated timestamp
tracking here at some point, but for now leave it up to the
jitterbuffer and/or subclasses (in case buffers in the
buffer list have no timestamp set on them, there may only
be a timestamp for the whole list on the first buffer).
This provides the exact same behaviour as the default
fallback implementation.
2015-06-01 19:00:55 +01:00
Thibault Saunier
dcfb8a83a5 encodebin: Add a way to enable/disabled a GstEncodingProfile
Summary:
So that the user can easily use the same encoding profile to render
with/without audio/video stream.

API:
  gst_encoding_profile_is_disabled
  gst_encoding_pofile_set_enabled

https://bugzilla.gnome.org/show_bug.cgi?id=749056
2015-06-01 10:22:31 +02:00
Luis de Bethencourt
22302db7fc tools: gst-play: remove unnecessary variable
The second assignment of sret is never used. We can remove the first assignment
and use the value directly instead.
2015-05-30 15:34:57 +01:00
Sebastian Dröge
8803ea2d8b id3v2frames: Fix compiler warnings
id3v2frames.c:951:20: error: unused variable 'utf16enc' [-Werror,-Wunused-const-variable]
static const gchar utf16enc[] = "UTF-16";
                   ^
id3v2frames.c:952:20: error: unused variable 'utf16leenc' [-Werror,-Wunused-const-variable]
static const gchar utf16leenc[] = "UTF-16LE";
                   ^
id3v2frames.c:953:20: error: unused variable 'utf16beenc' [-Werror,-Wunused-const-variable]
static const gchar utf16beenc[] = "UTF-16BE";
                   ^
2015-05-30 08:12:03 +02:00
Jan Schmidt
b7fd8ffb76 part-stereo-multiview-video: Add a section of open design questions 2015-05-30 01:11:47 +10:00
Jan Schmidt
4882cb9f37 video-format: Fix minor docs typo 2015-05-30 01:11:47 +10:00
Jan Schmidt
db86cff74d videotestsrc: Document the solid-color pattern 2015-05-30 01:11:47 +10:00
Jan Schmidt
b14ede9332 playback: Document GST_PLAY_FLAG_SOFT_COLORBALANCE 2015-05-30 01:11:47 +10:00
Jan Schmidt
d18aa5b741 video: Make gst_buffer_get_video_meta() a real function, Return lowest id
Instead of returning the first video meta found on a buffer, return the
one with the lowest id (which is usually the same thing, except on
multi-view buffers)
2015-05-30 01:11:47 +10:00
Tim-Philipp Müller
a24b9cd5c2 discoverer: don't crash on unknown info types when deserializing
Handle unknown info types when deserializing instead of
dereferencing NULL pointers.

Coverity CID 1302394
2015-05-29 15:30:41 +01:00
George Kiagiadakis
6ab46d8f0a sdp: prevent the sdp message parser from reading past the end of the buffer
Otherwise, a malformed SDP message could crash the application,
or even maliciously gather data from the memory located after
this buffer...

https://bugzilla.gnome.org/show_bug.cgi?id=750096
2015-05-29 15:05:31 +02:00
George Kiagiadakis
a998d380bd tests: add test for videorate caps renegotiation after a framerate has been calculated and added to caps
The original 0/1 framerate must still be allowed to be configured
on the upstream side of videorate, otherwise future caps renegotiation
is going to fail.

https://bugzilla.gnome.org/show_bug.cgi?id=750032
2015-05-29 15:03:38 +02:00
George Kiagiadakis
c84f911cee videorate: update the caps framerate only in the GST_PAD_SINK transform_caps direction
When a stream has a variable framerate, videorate calculates it and
forces it on the output caps. However, the code in _transform_caps()
currently also does that if the transform is going in the opposite
direction (GST_PAD_SRC), so during a renegotiation it tries to force
upstream to use the calculated framerate and it fails.

https://bugzilla.gnome.org/show_bug.cgi?id=750032
2015-05-29 15:03:05 +02:00
Thiago Santos
12ac087807 playsink: use queue to avoid lock in audiotee audio branches
This part of pipeline is:

tee name=t ! visualizationbin ! streamsynchronizer name=s
t. ! s.

streamsynchronizer might block and it could starve the visualization
branch of the pipeline when it is enabled.

The visualization bin has queues internally but the other branch
that links the audiotee directly to the synchronizer is vulnerable
to block. Adding a queue between "t. ! s." fixes deadlocks.

https://bugzilla.gnome.org/show_bug.cgi?id=749676
2015-05-28 04:56:16 -03:00
Claudiu Florin Lazar
af7a311c1c basetextoverlay: make deltax and deltay properties controllable
This will be more useful once we have absolute direct
control bindings.

https://bugzilla.gnome.org/show_bug.cgi?id=749824
2015-05-26 09:24:16 +01:00
Guillaume Desmottes
1c10b58cce oggdemux: fix chain leak
Don't leak the building_chain when destroying.

Fix leaks with the validate.http.playback.reverse_playback.vorbis_theora_1_ogg
scenario.

https://bugzilla.gnome.org/show_bug.cgi?id=748964
2015-05-26 08:28:23 +01:00
Tim-Philipp Müller
ea5d912b9f tag: id3v2: fix parsing of UTF-16 text on systems with crippled iconv
Use g_utf16_to_utf8() instead of the more generic g_convert(), so
that we can extract text in UTF-16 format even on embedded systems
with crippled iconv support.

This code path is exercised by the id3demux test_unsync_v23
check in gst-plugins-good.

https://bugzilla.gnome.org/show_bug.cgi?id=741144
2015-05-25 22:40:17 +01:00
Tim-Philipp Müller
a5f6c4583c Add new generated rtp enum files to .gitignore 2015-05-25 22:37:06 +01:00
Tim-Philipp Müller
83463b2061 tools: gst-play: keep configured playback rate and trick mode when seeking
Instead of resetting rate to 1.0
2015-05-24 18:58:51 +01:00
Tim-Philipp Müller
4a472fe7a7 po: update for new translatable strings 2015-05-24 18:47:25 +01:00
Tim-Philipp Müller
c7893ef59f tools: gst-play: mark more strings for translation 2015-05-24 18:46:21 +01:00
danny song
bd35bf5933 tools: gst-play: add keyboard shortcut help
https://bugzilla.gnome.org/show_bug.cgi?id=749740
2015-05-24 16:12:04 +01:00
Tim-Philipp Müller
8fc0e4f55c tests: add back videoscale unit test
Has been removed in 835422b2 as part of porting
things over to the new videoscale API.
2015-05-23 12:04:15 +01:00
Tim-Philipp Müller
b74d4f972a tools: gst-play: enable interative mode by default
And change --interactive option to --no-interactive.
2015-05-21 12:38:53 +01:00
Sebastian Dröge
4a993cb316 rtp: Clean G-I files on make clean too 2015-05-21 13:07:50 +03:00
Sebastian Dröge
6dd14bb6d6 rtp: Add builddir to the include path for gobject-introspection
And also add missing headers/sources

https://bugzilla.gnome.org/show_bug.cgi?id=749632
2015-05-20 16:24:07 +03:00
Sebastian Dröge
ec21fa6dea win32: Update exports 2015-05-20 15:41:06 +03:00
Sebastian Dröge
bfc13c8e51 rtp: Add GstRTPProfile enum 2015-05-20 15:41:06 +03:00
Sebastian Dröge
2511bca11c rtsp: Add FIXME 2.0 comment about GstRTSPTransport being an enum instead of flags 2015-05-20 15:41:06 +03:00
Sebastian Dröge
1a1d8a0b61 rtsp: Use glib-mkenums to generate GstRTSPProfile and GstRTSPLowerTrans GTypes 2015-05-20 15:41:06 +03:00
Tim-Philipp Müller
0a3b584aa0 Revert "oggdemux: Prevent seeks when _SCHEDULING_FLAG_SEQUENTIAL is set"
This reverts commit 76647f2710.

Avoiding pull mode activation is a feature regression, and
demuxers should always use pull mode where that is possible,
e.g. if there's an upstream queue2 with a ring buffer or
a download buffer.

This patch made reverse playback no longer possible over http.

If the goal is to minimise seeks, then that can still be done
by making the demuxer behave differently in pull mode if
the SEQUENTIAL flag is set. If there are bugs, like the demuxer
needlessly scanning the entire file on start-up in pull mode,
then those should be fixed instead.

https://bugzilla.gnome.org/show_bug.cgi?id=746010
2015-05-20 10:28:30 +01:00
Tim-Philipp Müller
a5075a6ba8 win32: update .def file for new API 2015-05-19 19:48:54 +01:00
Tim-Philipp Müller
853951b646 rtsp: don't use soon-to-be-deprecated g_cancellable_reset()
From the API documentation: "Note that it is generally not
a good idea to reuse an existing cancellable for more
operations after it has been cancelled once, as this
function might tempt you to do. The recommended practice
is to drop the reference to a cancellable after cancelling
it, and let it die with the outstanding async operations.
You should create a fresh cancellable for further async
operations."

https://bugzilla.gnome.org/show_bug.cgi?id=739132
2015-05-19 18:53:01 +01:00
Tim-Philipp Müller
39cbe25df7 gio: don't use soon-to-be-deprecated g_cancellable_reset()
From the API documentation: "Note that it is generally not
a good idea to reuse an existing cancellable for more
operations after it has been cancelled once, as this
function might tempt you to do. The recommended practice
is to drop the reference to a cancellable after cancelling
it, and let it die with the outstanding async operations.
You should create a fresh cancellable for further async
operations."

https://bugzilla.gnome.org/show_bug.cgi?id=739132
2015-05-19 18:52:41 +01:00
Tim-Philipp Müller
37aa31379f tcp: don't use soon-to-be-deprecated g_cancellable_reset()
From the API documentation: "Note that it is generally not
a good idea to reuse an existing cancellable for more
operations after it has been cancelled once, as this
function might tempt you to do. The recommended practice
is to drop the reference to a cancellable after cancelling
it, and let it die with the outstanding async operations.
You should create a fresh cancellable for further async
operations."

https://bugzilla.gnome.org/show_bug.cgi?id=739132
2015-05-19 18:50:41 +01:00
Mathieu Duponchelle
7048ecdc49 gstdiscoverer: Add since annotation.
Forgot to add the since annotation to the
GstDiscovererSerializeFlags in the previous commit.
2015-05-19 18:53:09 +02:00
Mathieu Duponchelle
2e423dd129 discoverer: Add serialization methods.
[API] gst_discoverer_info_to_variant
[API] gst_discoverer_info_from_variant
[API] GstDiscovererSerializeFlags

+ Serializes as a GVariant
+ Adds a test
+ Does not serialize potential GstToc (s)

https://bugzilla.gnome.org/show_bug.cgi?id=748814
2015-05-19 18:48:07 +02:00
Sebastian Dröge
faafaaec56 rtpbasepayload: Try harder to reuse previously configured caps values and give more preference to anything set as properties
This affects the pt, ssrc, seqnum-offset and timestamp-offset properties. If
they were set from a property, or we configured caps before, we try to use
that value for them. Even if the first structure of the downstream caps
specifies a different value, we check if the value is supported by other
structures.
Only if all this fails, we use the values given by downstream in the first
structure, i.e. if no properties were set and these are the first caps we
negotiate or downstream does not support our values.

By doing this we ensure that we don't spuriously change ssrcs or other fields
in the middle of the stream (and also consider property values more). Ssrc
changes would currently happen after sending an RTX packet (thus creating a
new internal source inside the rtpsession), and then renegotiating the
payloader (which then gets the RTX ssrc from rtpsession).

https://bugzilla.gnome.org/show_bug.cgi?id=749581
2015-05-19 16:59:45 +03:00
Stefan Sauer
b3c136eb4f docs: a random set of trivial fixes for the library docs
Warnings down to 35, unused symbols doen to 112.
2015-05-18 21:16:41 +02:00
Stefan Sauer
b8a6aefa38 docs: add fdmemory to docs 2015-05-18 20:56:28 +02:00
Stefan Sauer
b364f5576d docs: a random set of trivial fixes for the library docs
All those where super straight forward from the warnings gtkdoc prints. It kind
of makes sense to apply them before the list of warnings is >100 and people
complain that gtkdoc is noisy.
2015-05-18 20:45:45 +02:00
Stefan Sauer
d67da3c5f6 mikey: fix a bunch of doc warnings
Rename header/source mismatch of parameters. Update the exposed API in
sections.txt.
2015-05-18 20:31:30 +02:00
Stefan Sauer
9b9d1a6119 Revert "doc: Workaround gtkdoc issue"
This reverts commit df7ef3c35d.

This is fixed by the gtk-doc 1.23 release.
2015-05-18 20:01:49 +02:00
Tim-Philipp Müller
8304893d06 appsrc: optimise caps changing when previously-set caps have not taken effect yet
Only negotiate/change caps once when setting caps twice and
the first-set caps have not been used yet.

Based on patch by Eunhae Choi.

https://bugzilla.gnome.org/show_bug.cgi?id=747517
2015-05-18 13:37:54 +01:00
Vineeth T M
b1bc2af766 xvimagesink: fix pool leak
During set caps when config fails, the referenced newpool
is not unref ed.

https://bugzilla.gnome.org/show_bug.cgi?id=749530
2015-05-18 10:40:37 +03:00
eunhae choi
1b755eb272 playbin: check the flags before set again
check the previous flags of playsink to avoid the reconfigure of playsink repeatedly

https://bugzilla.gnome.org/show_bug.cgi?id=749528
2015-05-18 10:01:04 +03:00
Nicolas Dufresne
df7ef3c35d doc: Workaround gtkdoc issue
With gtkdoc 1.22, the XML generator fails when a itemizedlist is
followed by a refsect2. Workaround the issue by wrapping the refsect2
into para.
2015-05-16 23:33:55 -04:00
Stefan Sauer
015bd9285a playback: use the new gst_object api
Use gst_object_has_as_anchestor instead of the now deprecated _has_ancestor.
2015-05-15 14:49:47 +02:00
Tim-Philipp Müller
4343c3bff8 docs: fix up example pipeline 2015-05-10 11:42:21 +01:00