summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-02-13docs: add GstAudioAggregator to docsTim-Philipp Müller4-5/+49
2018-02-13docs: add audiomixer + audiointerleave to plugin docsTim-Philipp Müller7-1/+118
2018-02-13docs: update plugin docs for recent changesTim-Philipp Müller10-18/+279
2018-02-13audiomixer, audiointerleave: add to buildTim-Philipp Müller7-8/+41
https://bugzilla.gnome.org/show_bug.cgi?id=791218
2018-02-13GstAudioAggregator: hook up to buildTim-Philipp Müller5-6/+16
https://bugzilla.gnome.org/show_bug.cgi?id=791218
2018-02-13audioaggregator, audiomixer, audiointerleave: move from -bad to -baseTim-Philipp Müller13-0/+9851
https://bugzilla.gnome.org/show_bug.cgi?id=791218
2018-02-13vorbisdec: Improve "new headers while initialized" handlingEdward Hervey2-7/+106
If new headers arrive after we are initialized, we need to make sure that they are indeed valid. A vorbis bitstream always begins with three header packets and must be in order. Also some streams have unframed (invalid?) headers that might confuse and disrupt the decoding process. Therefore if ever we see new headers, we accumulate them and once we get a non-header packet we check them to make sure that: * We have at least 3 headers * They are the expected ones (identification, comments and setup) * They are in order * Any other "header" is ignored If those conditions are met, we reset and reconfigure the decoder https://bugzilla.gnome.org/show_bug.cgi?id=784530
2018-02-10playbin3: Re-enable buffering message handlingEdward Hervey1-15/+14
Buffering messages are only sent for the active group (in case there is more than one). If the inactive group posts buffering messages we keep the last one around and will post it once it becomes the playing one.
2018-02-10decodebin3: high cpu usage after eosFrançois Laignel1-4/+18
After eos, decodebin3 enters a loop sending eos events which causes high cpu usage. https://bugzilla.gnome.org/show_bug.cgi?id=792693
2018-02-10decodebin3: Handle dual-output of STREAM_START/EOSEdward Hervey1-9/+29
In order to flush out multiqueue, we send again a STREAM_START and then a EOS event. The problem was that was that we might end up pushing out on the output of multiqueue (and therefore decodebin3) a series of: * EOS / STREAM_START / EOS Apart from the uglyness of such output, If decodebin3 is used with elements such as concat on their output, they might potentially block on that second STREAM_START. In order to make sure we don't end up in that situation we send a custom STREAM_START event when refreshing multiqueue (which we drop on the output) and we don't special case EOS events on streams on which we already got EOS. At worst we now end up sending at most two EOS on the output of multiqueue (and decodebin3).
2018-02-10playbin3: Implement gapless playbackEdward Hervey1-81/+312
Similar in vein to the playbin2 architecture except that uridecodebin3 are prerolled much earlier and all streams of the same type are fed through a 'concat' element. This keeps the philosphy of having all elements connected as soon as possible. The 'about-to-finish' signal is emitted whenever one of the uridecodebin is about to finish, allowing the users to set the next uri/suburi. The notion of a group being active has changed. It now means that the uridecodebin3 has been activated, but doesn't mean it is the one currently being outputted by the sinks (i.e. curr_group and next_group). This is done via detecting GST_MESSAGE_STREAM_START emission by playsink and figuring out which group is really playing. When the current group changes, a new thread is started to deactivate the previous one and optionnaly fire 'about-to-finish'.
2018-02-10playbin3: Use uridecodebin3 and link/reconfigure immediatelyEdward Hervey1-942/+647
Apologies for the big commit, but it wasn't really possible to split it in anything smaller. * Switch to uridecodebin3 instead of managing urisourcebin and decodebin3 ourselves. No major architectural change with this. * Reconfigure sinks/outputs when needed. This is possible thanks to the various streams-related API. Instead of blocking new pads and waiting for a (fake) no-more-pads to decide what to connect, we instead reconfigure playsink and the combiners to whatever types are currently selected. All of this is done in reconfigure_output(). New pads are immediately connected to (combiners and) sinks, allowing immediate negotiation and usage. * Since elements are always connected, the "cached-duration" feature is gone and queries can reach the target elements. * The auto-plugging related code is currently disabled entirely until we get the new proper API. * Store collections at the GstSourceGroup level and not globally * And more comments a bit everywhere NOTE: gapless is still not functional, but this opens the way to be able to handle it in a streams-aware fashion (where several uridecodebin3 can be active at the same time).
2018-02-10urisourcebin: Add 'about-to-finish' signalEdward Hervey1-2/+67
With push-based sources, urisourcebin will emit this signal when the stream has been fully consumed. This signal can be used to know when the source is done providing data.
2018-02-10playback: New uridecodebin3 elementEdward Hervey5-0/+1102
In the same vein as old uridecodebin except that it also accepts a suburi and uses urisourcebin and decodebin3 internally
2018-02-10playbin3: Remove wrong 'notify'Edward Hervey1-12/+38
Those properties doesn't exist on playbin3, don't emit a notify for that
2018-02-10playbin3: Remove setting 'subtitle-encoding' on decodebinEdward Hervey1-7/+0
That property doesn't exist
2018-02-10playbin3: Clarify documentation of combiner propertiesEdward Hervey1-10/+12
2018-02-10playbin3: Remove unused defineEdward Hervey1-1/+0
2018-02-10decodebin3: Use GST_GROUP_ID_INVALIDEdward Hervey2-6/+7
2018-02-10decodebin3: Don't forward already-handling SELECT_STREAMSEdward Hervey1-0/+2
Upstream might respond negatively to the event, whereas we actually handled it.
2018-02-10decodebin3: Add new about-to-finish signalEdward Hervey1-0/+47
2018-02-10decodebin3: Remove unused definitionEdward Hervey1-2/+0
2018-02-10decodebin3: Don't take the lock when creating a new inputEdward Hervey1-2/+2
We only need to take the input lock when adding/removing inputs from the list.
2018-02-10playbin3: Remove unused variableEdward Hervey1-3/+0
The lock is never used
2018-02-10urisourcebin: Remove auto-plugging signalsEdward Hervey1-346/+0
They were never used and we need a better system
2018-02-10urisourcebin: Remove ASYNC behaviourEdward Hervey1-77/+3
It is not needed in the new streams-aware world
2018-02-10urisourcebin: Remove 'unknown-type' signalEdward Hervey1-20/+0
It was never used and makes no sense in the new streams-based world
2018-02-10playbin3: Disable autoplug-related codeEdward Hervey1-2/+32
The signals were never emitted from decodebin3. This needs switching to a new signalling system
2018-02-10playbin3: fix "no-more-pads" handlingEdward Hervey1-9/+4
That signal is never emitted by decodebin3 and is handled differently
2018-02-10playbin3: Remove duration cachingEdward Hervey1-118/+0
This is now handled directly via sinks and queries through pads
2018-02-10parsebin: Remove async behaviourEdward Hervey1-49/+4
There's no reason to do async changing
2018-02-09glimagesink: Always display with requested stereo display modeJan Schmidt1-9/+1
Even if the input is monoscopic, the app might want to display it in a different layout, to do side-by-side for VR for example, so if the app changes the output-multiview-mode always use that.
2018-02-09tcp/multihandlesink: Handle the case of no capsJan Schmidt1-8/+10
Pass data with no caps and no streamheaders without throwing a bunch of criticals
2018-02-09gl*bin: fix transfer semantics for the create-element signalMatthew Waters8-57/+693
We can either receive an element that is floating or not and need to accomodate that in the signal return values. Do so by removing the floating flag. https://bugzilla.gnome.org/show_bug.cgi?id=792597
2018-02-09gldownload: remove texture-target field from dmabuf/sysmem capsMatthew Waters1-0/+14
https://bugzilla.gnome.org/show_bug.cgi?id=792342
2018-02-08meson: make version numbers ints and fix int/string comparisonTim-Philipp Müller1-5/+5
WARNING: Trying to compare values of different types (str, int). The result of this is undefined and will become a hard error in a future Meson release.
2018-02-08gl: g-i: expose platform-specific display API in bindingsTim-Philipp Müller1-2/+11
https://bugzilla.gnome.org/show_bug.cgi?id=786391
2018-02-08rtspconnection: also add Content-Type to HTTP POST request when tunnellingSebastian Cote1-0/+2
When the GstRTSPConnection class sends a RTSP over HTTP tunnelling request, the HTTP Content-Type header is missing from the HTTP POST request. This isn't a problem with most servers, but there are servers that rejects the request without there also being a Content-Type header. RFC 1945: Any HTTP/1.0 message containing an entity body should include a Content-Type header field defining the media type of that body. Apple Dispatch 28: QuickTime Streaming uses the "application/x-rtsp-tunnelled" MIME type in both the Content-Type and Accept headers. This reflects the data type that is expected and delivered by the client and server. https://bugzilla.gnome.org/show_bug.cgi?id=793110
2018-02-08gl: remove more deprecated type aliasesMatthew Waters5-20/+0
Additions on top of https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=32a17f313494cbadaf8ec4e337d742e8d7e1b67b https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=c8b99139b1ef3f8891548b0f2607a135917c338e
2018-02-08gl/display/egl: Fix precondition in display_egl_get_from_nativeMatthew Waters1-7/+3
We don't really want type=NONE as input and it was already impossible for that to occur with the other condtions. CID #1427144
2018-02-07video: Fix GRAY10_LE32 depth informationNicolas Dufresne1-1/+2
2018-02-07video: Change struct padding from void* to gpointerSebastian Dröge3-5/+5
gobject-introspection causes inconsistent type information for the former and we use gpointer everywhere else.
2018-02-06meson: Enable libs_video unit testNicolas Dufresne1-1/+1
It does not timeout anymore, even though it's a very slow test. For the context, this test runs routines for a fixes amount of time and prints the throughput. Which means the test takes more time everytime a pixel format is added. If that becomes a problem again, we should disable the benchmarks by default.
2018-02-06video-format: Fix 10LE32 formats packing functionNicolas Dufresne1-33/+29
The source offset (soff) was not incremented for each component and then each group of 3 components were inverted. This was causing a staircase effect combined with some noise. https://bugzilla.gnome.org/show_bug.cgi?id=789876
2018-02-06glcontext: remove deprecated type aliasPhilippe Normand1-4/+0
Now for real without un-needed comments...
2018-02-06glcontext: remove deprecated type aliasPhilippe Normand1-3/+3
2018-02-05autotools: use -fno-strict-aliasing where supportedTim-Philipp Müller1-2/+6
https://bugzilla.gnome.org/show_bug.cgi?id=769183
2018-02-05gl: some annotation fixesMatthew Waters6-32/+44
2018-02-05gl/build/meson: fix gl_api variable namesMatthew Waters1-2/+2
2018-02-01tests: sdp: relicense code snippet from GPLv3 to LGPLv2.1+Tim-Philipp Müller1-22/+3
Relicense with approval from Jose and Miguel. Code snippet was supposed to be LGPL from the beginning. https://bugzilla.gnome.org/show_bug.cgi?id=697808#c14 https://bugzilla.gnome.org/show_bug.cgi?id=697808#c15