summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-10-08meson: use new 'python' module instead of deprecated 'python3' oneHEADmasterTim-Philipp Müller1-1/+1
https://github.com/mesonbuild/meson/pull/4169
2018-10-09webrtc/datachannel: fix support for prenegotiated channelsMatthew Waters2-4/+108
With prenegotiated channels, the data-channel protocol is not used and instead the channel's negotiation is intended to be performed out of band in some application-specific manner. Comes with test!
2018-10-08webrtc: start in the closed stateMatthew Waters2-12/+116
This means that we will reject all operations before we've transitioned into READY. This also fixes the tests using the default GMainContext in the NULL state instead of the webrtcbin internal GMainContext and thread. Also removes a potential ordering race where on the element transitioning to READY, an operations could have been queued on two different threads and removing a guarentee on operation ordering.
2018-10-08webrtcbin: start and stop thread when changing stateAleix Conchillo Flaqué1-4/+4
It might be possible that if we set webrtcbin to the NULL state some tasks (idle sources) are still executed and they might even freeze. The freeze is caused because the webrtcbin tasks don't hold a reference to webrtcbin and if it's last unref inside the idle source itself this will not allow the main loop to finish because the main loop is waiting on the idle source to finish. We now start and stop webrtcbin thread when changing states. This will allow the idle sources to finish properly. https://bugzilla.gnome.org/show_bug.cgi?id=797251
2018-10-05glvideomixer: fix the default blend modes for unpremultipled alphaMatthew Waters1-1/+1
Alpha in GStreamer is unpremultiplied
2018-10-04avwait: Fix sending of dropping=true messagesVivia Nikolaidou1-0/+6
If the first audio buffer to be dropped started right between two video buffers (after the end of the first but before the start of the second, as is often the case with N/1001 video frame rates), we would miss sending the dropping=true message. https://bugzilla.gnome.org/show_bug.cgi?id=797248
2018-10-04tests/webrtcbin: add a couple more dependant element checksMatthew Waters1-9/+33
Without the sctp elements, all the data channel tests will fail
2018-10-04glmixerbin: add gloverlaycompositor to each input streamMatthew Waters1-1/+14
Flattens the overlay compositions into the stream before the mixer will mix them. https://bugzilla.gnome.org/show_bug.cgi?id=759867
2018-10-03glstereomix: Fix build after deprecating misnamed ↵Sebastian Dröge1-1/+1
GST_TYPE_GL_STEREO_DOWNMIX_MODE_TYPE
2018-10-02msdk: Fix building on MSVCSeungha Yang4-1/+9
And add missing #ifdef _WIN32 for MSVC build https://bugzilla.gnome.org/show_bug.cgi?id=797211
2018-10-02msdk: Fix meson buildSeungha Yang1-1/+1
gst-plugins-bad\sys\msdk\meson.build:57:4: ERROR: File msdk-enum.c does not exist. https://bugzilla.gnome.org/show_bug.cgi?id=797211
2018-09-27mpegtsmux: add custom AC-3 descriptorMathieu Duponchelle1-0/+4
tsdemux expects a custom descriptor (GST_MTS_DESC_AC3_AUDIO_STREAM) to detect a stream as AC3 and not EAC3. Note that tsdemux expects this descriptor because mpegtsmux writes a stream with a HDMV registration descriptor. Fixes: gst-launch-1.0 -v audiotestsrc ! avenc_ac3 ! ac3parse ! mpegtsmux ! \ tsdemux ! ac3parse ! avdec_ac3 ! audioconvert ! autoaudiosink https://bugzilla.gnome.org/show_bug.cgi?id=797220
2018-09-26webrtcdatachannel: take ref of data so it doesn't disappearMatthew Waters1-1/+1
2018-09-24glmixerbin: "latency" property on aggregator is uint64, not int64Sebastian Dröge1-3/+2
Also update the property description and range with aggregator's values.
2018-09-24player: fix deprecated api declarationTim-Philipp Müller2-5/+11
2018-09-24libs: fix API export/import and 'inconsistent linkage' on MSVCTim-Philipp Müller67-36/+186
For each lib we build export its own API in headers when we're building it, otherwise import the API from the headers. This fixes linker warnings on Windows when building with MSVC. The problem was that we had defined all GST_*_API decorators unconditionally to GST_EXPORT. This was intentional and only supposed to be temporary, but caused linker warnings because we tell the linker that we want to export all symbols even those from externall DLLs, and when the linker notices that they were in external DLLS and not present locally it warns. What we need to do when building each library is: export the library's own symbols and import all other symbols. To this end we define e.g. BUILDING_GST_FOO and then we define the GST_FOO_API decorator either to export or to import symbols depending on whether BUILDING_GST_FOO is set or not. That way external users of each library API automatically get the import. While we're at it, add new GST_API_EXPORT in config.h and use that for GST_*_API decorators instead of GST_EXPORT. The right export define depends on the toolchain and whether we're using -fvisibility=hidden or not, so it's better to set it to the right thing directly than hard-coding a compiler whitelist in the public header. We put the export define into config.h instead of passing it via the command line to the compiler because it might contain spaces and brackets and in the autotools scenario we'd have to pass that through multiple layers of plumbing and Makefile/shell escaping and we're just not going to be *that* lucky. The export define is only used if we're compiling our lib, not by external users of the lib headers, so it's not a problem to put it into config.h Also, this means all .c files of libs need to include config.h to get the export marker defined, so fix up a few that didn't include config.h. This commit depends on a common submodule commit that makes gst-glib-gen.mak add an #include "config.h" to generated enum/marshal .c files for the autotools build. https://bugzilla.gnome.org/show_bug.cgi?id=797185
2018-09-24docs: plugins: update for git masterTim-Philipp Müller14-26/+384
2018-09-22pkgconfig: generate sctp lib .pc file also with Meson buildTim-Philipp Müller2-3/+3
and fix up autotools definition now that it's not conditional any more.
2018-09-22pkgconfig: sctp lib does not depend on external sctp libraryTim-Philipp Müller1-2/+0
So install .pc files unconditionally.
2018-09-21libs: dist new sctp libTim-Philipp Müller1-1/+1
2018-09-21avwait: Send dropping=true message after all streams stoppedVivia Nikolaidou2-11/+77
Previously it was dispatched before the last video buffer, and audio buffers would follow afterwards. It's misleading to send the dropping=true message before both streams have really stopped, it can lead to races when someone is e.g. waiting for that message to send EOS. Also added some debug output. https://bugzilla.gnome.org/show_bug.cgi?id=797145
2018-09-21gst-libs: Always build sctp mini-libraryEdward Hervey1-7/+3
It doesn't depend on any external library
2018-09-21glvideomixer: fix constant alpha enum value for constant alphaMatthew Waters1-1/+1
2018-09-21webrtcbin: add support for data channels based on SCTPMatthew Waters15-191/+3286
Mostly follows the W3C specification https://www.w3.org/TR/webrtc/#peer-to-peer-data-api With contributions from: Mathieu Duponchelle <mathieu@centricular.com> https://bugzilla.gnome.org/show_bug.cgi?id=794351
2018-09-21webrtcbin: functionify dependent element checksMatthew Waters1-39/+54
2018-09-21webrtc/stats: rename debug category not to be ice relatedMatthew Waters1-2/+2
2018-09-21sctp elements: avoid assertions on shutdownMathieu Duponchelle2-3/+6
2018-09-21sctp*meta: fix api define in gst_sctp_buffer_get_*_meta()Matthew Waters2-2/+2
2018-09-21sctpassociation: don't join a NULL threadMatthew Waters1-1/+2
Can occur if no connection is actually made and thus no connection thread is created.
2018-09-21sctpenc: don't require caps when requesting the padMatthew Waters1-4/+8
They can be set later
2018-09-21sctpenc: start pad task after the parent has activated padsMatthew Waters1-6/+17
Fixes a race where the task could attempt to set stream-start/caps/segment before the pad was active and would be dropped resulting in a 'data-flow before stream-start' warning.
2018-09-21Update sctp plugin for the current build systemMatthew Waters9-1/+103
- Add meson build definitions - Add necessary API decorators
2018-09-21Add new SCTP plugins (sctpenc/sctpdec)George Kiagiadakis19-3/+3158
https://bugzilla.gnome.org/show_bug.cgi?id=744863
2018-09-19webrtcice: do not run host resolution from applictation threadMathieu Duponchelle1-66/+92
g_resolver_lookup_by_name is a blocking call, and should not be run when the user sets or adds a turn-server. https://bugzilla.gnome.org/show_bug.cgi?id=797012
2018-09-19webrtcbin: New add-turn-server APIMathieu Duponchelle3-55/+142
It is possible and often desirable to pass multiple ICE relays to libnice agents, the "turn-server" property, while convenient to use from the command line, does not allow that. This adds a new action signal, "add-turn-server" to address that. https://bugzilla.gnome.org/show_bug.cgi?id=797012
2018-09-19meson: add glib-checks option to disable API guards and suchTim-Philipp Müller2-0/+8
We want this enabled by default, also in releases, but people may want to disable this for performance-critical workloads or on embedded devices.
2018-09-19meson: fix missing closing bracket in option descriptionsTim-Philipp Müller1-2/+2
2018-09-19glvideomixer: Fix typo in property descriptionSebastian Dröge1-2/+2
2018-09-18ccextractor: Use gst_caps_new_simple() instead of gst_caps_from_string()Sebastian Dröge1-11/+8
2018-09-12decklinkvideosink: fix buildMatthew Waters1-3/+0
../sys/decklink/gstdecklinkvideosink.cpp:1006:11: error: ‘GstDecklinkVideoSink {aka struct _GstDecklinkVideoSink}’ has no member named ‘scheduled_stop_time’ self->scheduled_stop_time = start_time; ^
2018-09-12decklink: wait for stop with a timeoutMatthew Waters1-9/+17
Decklink sometimes does not notify us through the callback that it has stopped scheduled playback either because it was uncleanly shutdown without an explicit stop or for unknown other reasons. Wait on the cond for a short amount of time before checking if scheduled playback has stopped without notification. https://bugzilla.gnome.org/show_bug.cgi?id=797130
2018-09-12decklink: start scheduled playback in pausedMatthew Waters3-160/+156
This is part of a much larger goal to always keep the frames we schedule to decklink be always increasing. This also allows us to avoid using both the sync and async frame display functions which aren't recomended to be used together. If the output timestatmsp is not always increasing decklink seems to hold onto the latest frame and may cause a flash in the output if the played sequence has a framerate less than the video output. Scenario is play for N seconds, pause, flushing seek to some other position, play again. Each of the play sequences would normally start at 0 with the decklink time. As a result, the latest frame from the previous sequence is kept alive waiting for it's timestamp to pass before either dropping (if a subsequent frame in the new sequence overrides it) or displayed causing the out of place frame to be displayed. This is also supported by the debug logs from the decklink video sink element where a ScheduledFrameCompleted() callback would not occur for the frame until the above had happened. It was timing related as to whether the frame was displayed based on the decklink refresh cycle (which seems to be 16ms here), when the frame was scheduled by the sink and the difference between the 'time since vblank' of the two play requests (and thus start times of scheduled playback). https://bugzilla.gnome.org/show_bug.cgi?id=797130
2018-09-12decklinkaudiosink: fix debug string copy-paste errorMatthew Waters1-1/+1
Stopping != Starting
2018-09-10h265parse: Fix periodic SPS/PPS sending work after a seekSeungha Yang1-1/+5
Apply the commit ef71b61 See also https://bugzilla.gnome.org/show_bug.cgi?id=742212 https://bugzilla.gnome.org/show_bug.cgi?id=754124
2018-09-10h265parse: Add support insert parameter set per IDRSeungha Yang2-112/+132
Apply commits 0c04e00, bf0d952 and a0876aa to h265parse. See also https://bugzilla.gnome.org/show_bug.cgi?id=766803 https://bugzilla.gnome.org/show_bug.cgi?id=754124
2018-09-10h265parse: Don't discard first AU delimiterSeungha Yang1-0/+6
Apply the commit 48a1f27 https://bugzilla.gnome.org/show_bug.cgi?id=754124
2018-09-10h265parse: Consider SEI NALU as "HEADER" packetsSeungha Yang1-0/+1
Apply the commit 69c09c3 https://bugzilla.gnome.org/show_bug.cgi?id=754124
2018-09-10h265parse: Don't unref buffer that was unreffed just a few lines before alreadySeungha Yang1-1/+0
Apply the commit 9b50a12 https://bugzilla.gnome.org/show_bug.cgi?id=754124
2018-09-10h265parse: Reset the parser information when caps changesSeungha Yang1-19/+36
Apply the commit 14f6fcd https://bugzilla.gnome.org/show_bug.cgi?id=754124
2018-09-10h265parse: Fix collection of access units to preserve config headersSeungha Yang1-2/+9
Apply the commit 7d44a51 See also https://bugzilla.gnome.org/show_bug.cgi?id=732203 https://bugzilla.gnome.org/show_bug.cgi?id=754124