Sreerenj Balachandran [Tue, 2 Dec 2014 08:10:39 +0000 (10:10 +0200)]
h264parse: expose compatible profiles to downstream
Some video bitstreams report a too restrictive set of profiles. If a video
decoder was to strictly follow the indicated profile, it wouldn't support that
stream, whereas it could in theory and in practice. So we should relax the
profile restriction for allowing the decoder to get connected with parser.
https://bugzilla.gnome.org/show_bug.cgi?id=739992
Chun-wei Fan [Wed, 1 May 2013 03:17:02 +0000 (11:17 +0800)]
dshowvideosink: Port to 1.0 and new GLib threading API
This updates the dshowvideosink to work with the GStreamer 1.0.x APIs, and
avoids the use of deprecated GLib threading API that are now used since
GLib 2.32+
https://bugzilla.gnome.org/show_bug.cgi?id=699364
Thiago Santos [Thu, 4 Dec 2014 04:46:43 +0000 (01:46 -0300)]
mssdemux: add live support
Implement the functions of adaptivedemux to have live support
enabled. This allows mssdemux to refresh the Manifest periodically
Matthew Bader [Thu, 4 Dec 2014 20:52:44 +0000 (15:52 -0500)]
dshowdecwrapper: Port to 1.x
https://bugzilla.gnome.org/show_bug.cgi?id=740945
Reynaldo H. Verdejo Pinochet [Mon, 1 Dec 2014 19:40:24 +0000 (16:40 -0300)]
vcdsrc: port to 1.
https://bugzilla.gnome.org/show_bug.cgi?id=547661
Thiago Santos [Thu, 4 Dec 2014 15:21:04 +0000 (12:21 -0300)]
mssdemux: fix getting current position in segments when after last one
For live streams this makes a difference when resyncing after a
Manifest refresh, otherwise it doesn't know where to restart
Thiago Santos [Wed, 3 Dec 2014 02:27:29 +0000 (23:27 -0300)]
mssdemux: support manifests with repetition fragments
Read the "r" attribute from fragments to support fragments nodes
that use repetition to have a shorter Manifest xml.
Instead of doing:
<c d="100" />
<c d="100" />
You can use:
<c d="100" r="2" />
Thiago Santos [Sat, 22 Nov 2014 04:01:50 +0000 (01:01 -0300)]
mssdemux: port to adaptivedemux base class
Matthew Bader [Wed, 3 Dec 2014 21:13:17 +0000 (16:13 -0500)]
dshowsrcwrapper: Fixed null caps comparison
https://bugzilla.gnome.org/show_bug.cgi?id=741086
Flávio Ribeiro [Thu, 4 Dec 2014 04:12:08 +0000 (02:12 -0200)]
hlssink: remove unnecessary title on EXTINF tag
According to the HLS spec the remainder of the line following
the comma on EXTINF tag is not required. This patch removes
the fake title and saves some bytes on the playlist.
https://bugzilla.gnome.org/show_bug.cgi?id=741096
Ramprakash Jelari [Thu, 4 Dec 2014 15:07:51 +0000 (20:37 +0530)]
gl: Rename gst-launch-0.10 to gst-launch-1.0 in docs
Sebastian Dröge [Thu, 4 Dec 2014 14:42:55 +0000 (15:42 +0100)]
decklink: Fix make distcheck
And properly dist all headers and source files.
Thiago Santos [Wed, 3 Dec 2014 21:31:06 +0000 (18:31 -0300)]
adaptivedemux: release threads waiting for manifest update on shutdown
For live streams, also unblock threads that might be waiting for a manifest
update when stopping the pipeline.
Also add some more debug messages
Thiago Santos [Wed, 3 Dec 2014 16:52:07 +0000 (13:52 -0300)]
adaptivedemux: use gst_task_stop instead of gst_task_pause
To avoid race conditions with gst_task_stop(); gst_task_join() with
another thread doing gst_task_pause(), the joining thread would be
waiting for the task to stop but it would never happen. So just
use gst_task_stop() everywhere to prevent more mutexes
Thiago Santos [Wed, 3 Dec 2014 15:48:42 +0000 (12:48 -0300)]
adaptivedemux: fix deadlock when stopping streams
Remember to unlock the manifest's lock when leaving the download task.
Sebastian Dröge [Wed, 3 Dec 2014 15:01:11 +0000 (16:01 +0100)]
decklink: Fix compiler warnings with gcc in the dispatcher
Philippe Normand [Wed, 3 Dec 2014 14:30:43 +0000 (15:30 +0100)]
glsyncmeta: add G_END_DECLS
Sebastian Dröge [Wed, 3 Dec 2014 14:07:16 +0000 (15:07 +0100)]
decklink: Update Windows SDK headers to 10.3.1
No idea where the DecklinkAPIDispatch.cpp comes from on Windows,
but this should still work. Will just become a problem once we
use other parts of the API.
Sebastian Dröge [Wed, 3 Dec 2014 13:42:43 +0000 (14:42 +0100)]
decklink: Update OS X SDK headers to 10.3.1
Sebastian Dröge [Wed, 3 Dec 2014 13:39:13 +0000 (14:39 +0100)]
decklink: Update Linux SDK headers to 10.3.1
Thiago Santos [Wed, 3 Dec 2014 13:06:09 +0000 (10:06 -0300)]
adaptivedemux: remove unused error variable
CID #1256556
Thiago Santos [Wed, 3 Dec 2014 12:45:58 +0000 (09:45 -0300)]
adaptivedemux: remove more get_duration checks
Subclasses must implement get_duration function. If they do not know
the duration they can return GST_CLOCK_TIME_NONE
Thiago Santos [Wed, 3 Dec 2014 12:40:34 +0000 (09:40 -0300)]
adaptivedemux: all subclasses must implement get_duration
CID #1256557
Thiago Santos [Wed, 3 Dec 2014 02:29:20 +0000 (23:29 -0300)]
adaptivedemux: make sure to always stop the stream on EOS
For On-Demand streams, always stop the tasks for streams that reached
EOS
Julien Isorce [Wed, 3 Dec 2014 08:02:58 +0000 (08:02 +0000)]
glcontext: try cgl before glx
It was already done by commit
f506e80686eedc66912583db11914ec3f713b478
but it has been broken by commit
45ec777cea0e69b2597d1ec02b18ec31d618c920
Julien Isorce [Wed, 3 Dec 2014 07:46:50 +0000 (07:46 +0000)]
tests: add glimagesink unit test to .gitignore
Thiago Santos [Tue, 2 Dec 2014 18:52:54 +0000 (15:52 -0300)]
dashdemux: fix double unref of object
the datetime is already released by the end of the function
David Waring [Fri, 10 Oct 2014 10:24:08 +0000 (11:24 +0100)]
dashdemux: Find the current period in a live stream
Start from the correct period on a live stream
https://bugzilla.gnome.org/show_bug.cgi?id=737421
David Waring [Tue, 2 Dec 2014 10:06:00 +0000 (10:06 +0000)]
dashdemux: Fix period selection for live streams
Fix period selection and properly error out when update cannot be done
https://bugzilla.gnome.org/show_bug.cgi?id=725298
Edward Hervey [Wed, 9 Jul 2014 08:11:40 +0000 (10:11 +0200)]
mpegtbase: Improve last PCR detection
When dealing with random-access content (such as files), we initially
search for the last PCR in order to figure out duration and to handle
other position estimation such as those used in seeking.
Previously, the code looking for that last PCR would search in the last
640kB of the file going forward, and stop at the first PCR encountered.
The problem with that was two-fold:
* It wouldn't really be the last PCR (it would be the first one within
those last 640kB. In case of VBR files, this would put off duration
and seek code slightly.
* It would fail on files with bitrates higher than 52Mbit/s (not common)
Instead this patch modifies that code by:
* Scanning over the last 2048kB (allows to cope with streams up to 160Mbit/s)
* Starts by the end of the file, going over chunks of 300 MPEG-TS packets
* Doesn't stop at the first PCR detected in a chunk, but instead records all
of them, and only stop searching if there was "at least" one PCR within
that chunk
This should improve duration reporting and seeking operations on VBR files
https://bugzilla.gnome.org/show_bug.cgi?id=708532
Edward Hervey [Mon, 1 Dec 2014 10:47:29 +0000 (11:47 +0100)]
tsdemux: Only activate warning for real streams
streams with stream_type 0xff are PCR-only streams, it's normal not
to have a pad for them.
Jürgen Slowack [Mon, 1 Dec 2014 11:14:20 +0000 (12:14 +0100)]
x265enc: add qp property
QP property enables CQP mode and sets the QP for P slices.
Thijs Vermeir [Mon, 1 Dec 2014 09:59:32 +0000 (10:59 +0100)]
gl/cocoa: Fix example on Mac OS X 10.10
Using NSApp directly seems to confuse something, as the compiler
was expecting an id<NSFileManagerDelegate>. Switched to using
[NSApplication sharedApplication], and specified the delegate
protocol on the window class as well.
Similar to https://bugzilla.gnome.org/show_bug.cgi?id=738740
Edward Hervey [Mon, 1 Dec 2014 09:27:43 +0000 (10:27 +0100)]
gst-libs: Fix dependency build
adaptivedemux depends on uridownloader and video depends on base
Thomas Klausner [Mon, 1 Dec 2014 08:48:41 +0000 (09:48 +0100)]
configure: Do comparisons in a portable way with = instead of ==
https://bugzilla.gnome.org/show_bug.cgi?id=740953
Thiago Santos [Mon, 1 Dec 2014 00:54:38 +0000 (21:54 -0300)]
adaptivedemux: reworking live manifest update wait
Check if the stream is live before checking if it is EOS as a live
stream might be considered EOS when it just needs to wait for a manifest
update to proceed with the next fragments
Thiago Santos [Sat, 29 Nov 2014 13:28:09 +0000 (10:28 -0300)]
adaptivedemux: fix manifest update locking
To avoid unlocking a not locked mutex
Thiago Santos [Sat, 29 Nov 2014 13:27:25 +0000 (10:27 -0300)]
adaptivedemux: Fix segment for manifests that won't start at 0
For live streams, the manifest might start at an advanced position. Avoid
using segment start=0 to have playback start immediately
Thiago Santos [Sat, 29 Nov 2014 13:26:31 +0000 (10:26 -0300)]
dashdemux: replace the streams with the new mpd client's streams
Otherwise it won't update with the new segment info from the playlist
update
Thiago Santos [Sat, 29 Nov 2014 13:25:45 +0000 (10:25 -0300)]
dashdemux: when updating the manifest, set the uri
This will allow dashdemux to create the correct full path URIs to
continue downloading fragments
Thiago Santos [Tue, 26 Aug 2014 19:45:46 +0000 (16:45 -0300)]
dashdemux: port to adaptive demux
Thiago Santos [Sat, 22 Nov 2014 20:27:03 +0000 (17:27 -0300)]
adaptivedemux: also clear flushing state on pads before restarting
During flushing seeks the flushing flow return will propagate up to the
source element and all pads are going to have the flushing flag set.
So before restarting also remove that flag together with the EOS one.
We don't do that when pushing the flush stop event because our event
handler for the proxypad will drop all events.
Thiago Santos [Fri, 21 Nov 2014 23:42:09 +0000 (20:42 -0300)]
adaptivedemux: add adaptivedemux base class
https://bugzilla.gnome.org/show_bug.cgi?id=735848
Tim-Philipp Müller [Sat, 29 Nov 2014 13:16:56 +0000 (13:16 +0000)]
gdppay: minor caps event payloading optimisation
Avoid creation of buffer we're just going to throw
away two lines later anyway.
Tim-Philipp Müller [Sat, 29 Nov 2014 13:15:36 +0000 (13:15 +0000)]
gdppay: fix some memory leaks
Matthew Waters [Sat, 29 Nov 2014 13:42:17 +0000 (00:42 +1100)]
glcontext: require GL_ARB_ES2_compatibility for opengl3
until we generate gl3 compliant shaders
https://bugzilla.gnome.org/show_bug.cgi?id=740012
Matthew Waters [Sat, 29 Nov 2014 13:18:55 +0000 (00:18 +1100)]
glimagesink: properly handle the !opengl3 case
https://bugzilla.gnome.org/show_bug.cgi?id=740012
Sebastian Dröge [Fri, 28 Nov 2014 16:31:07 +0000 (17:31 +0100)]
decklinksink: Drop too late frames and start scheduled playback at the correct time
Tim-Philipp Müller [Fri, 28 Nov 2014 16:04:54 +0000 (16:04 +0000)]
glfilterapp: fix unused variable compiler warning
When GST_GL_HAVE_OPENGL is 0 or unset.
Sebastian Dröge [Fri, 28 Nov 2014 14:06:42 +0000 (15:06 +0100)]
decklinksrc: For the source, unsetting the callback already deletes it
Sebastian Dröge [Fri, 14 Nov 2014 10:19:45 +0000 (11:19 +0100)]
decklinksink: Wait for the pipeline clock instead of the decklink clock
Otherwise we're going to starve other elements if the decklink clock
is slower than the pipeline clock, or starts much later.
Of course this will still cause problems if the decklink clock and ours are
completely out of sync, or running at a very different rate. But this at least
works better now.
Sebastian Dröge [Fri, 14 Nov 2014 09:58:53 +0000 (10:58 +0100)]
decklinksink: Schedule video frames according to their timestamps, not according to a frame counter
Sebastian Dröge [Fri, 14 Nov 2014 10:02:01 +0000 (11:02 +0100)]
decklinksink: Add some FIXME comments about synchronization
Sebastian Dröge [Fri, 14 Nov 2014 09:38:33 +0000 (10:38 +0100)]
decklinksrc: Sample the pipeline clock for the timestamps instead of coming up with our own
If we just count the frames and calculate timestamps from that, all frames
will arrive late in the sink as we have a live source here. Instead take
the pipeline clock at capture time as reference.
Sebastian Dröge [Fri, 28 Nov 2014 13:50:18 +0000 (14:50 +0100)]
decklinksrc: Handle callback/delegate object the same way as in the sink
Potentially fixes crashes.
Sebastian Dröge [Fri, 28 Nov 2014 13:46:06 +0000 (14:46 +0100)]
decklinksink: Don't crash when going to READY another time
We have to handle the callback object a bit different:
a) it needs a virtual destructor
b) we need to set the callback to NULL when we're done with the output
c) create a new one every time
https://bugzilla.gnome.org/show_bug.cgi?id=740616
Sebastian Dröge [Fri, 28 Nov 2014 09:23:55 +0000 (10:23 +0100)]
compositor: Failure to map a video frame is not just a warning
Also add some warning debug output if mapping a output buffer fails
Sebastian Dröge [Fri, 28 Nov 2014 09:22:44 +0000 (10:22 +0100)]
videoaggregator: Failure to map a video frame is not just a warning
Matthew Waters [Fri, 28 Nov 2014 03:08:40 +0000 (14:08 +1100)]
glfilterapp is now available on gles2 as well so build it
Matthew Waters [Fri, 28 Nov 2014 02:04:21 +0000 (13:04 +1100)]
gl: fixup compat definition for GLuint64 for OS X
Matthew Waters [Fri, 28 Nov 2014 00:56:10 +0000 (11:56 +1100)]
gl: add compat definition for GLuint64 for android
../../../../gst-libs/gst/gl/glprototypes/sync.h:41:23: error: unknown type name 'GLuint64'
GLuint64 timeout))
Danny Song [Thu, 27 Nov 2014 17:21:49 +0000 (02:21 +0900)]
basecamerasrc: fix typo in docs
https://bugzilla.gnome.org/show_bug.cgi?id=740815
Matthew Waters [Fri, 28 Nov 2014 00:11:43 +0000 (11:11 +1100)]
glsync: fix build with desktop gl
Matthew Waters [Fri, 28 Nov 2014 00:04:22 +0000 (11:04 +1100)]
gl: fix typo in #if
GST_GL_API_HAVE_OPENGL doesn't exist
Matthew Waters [Thu, 27 Nov 2014 23:59:46 +0000 (10:59 +1100)]
gl: fix various build errors without desktop gl
Matthew Waters [Thu, 27 Nov 2014 23:03:18 +0000 (10:03 +1100)]
gldisplay: fix build error
gstgldisplay.c:234:541: error: 'return' with no value, in function returning non-void [-Werror]
g_return_if_fail (GST_IS_GL_DISPLAY (display));
Matthew Waters [Thu, 27 Nov 2014 10:05:45 +0000 (21:05 +1100)]
gldisplay: implement runtime GL api filtering
Needed so that the pipeline/application can limit the choice of GL api
to what it supports
Matthew Waters [Thu, 27 Nov 2014 05:17:50 +0000 (16:17 +1100)]
gl: remove the use of glu
Matthew Waters [Fri, 17 Oct 2014 13:22:24 +0000 (15:22 +0200)]
gl: add a sync meta for synchronizing across GL contexts
A context can create a GLsync object that can be waited on in order
to ensure that GL resources created in one context are able to be
used in another shared context without any chance of reading invalid
data.
This meta would be placed on buffers that are known to cross from
one context to another. The receiving element would then wait
on the sync object to ensure that the data to be used is complete.
Matthew Waters [Fri, 17 Oct 2014 13:08:29 +0000 (15:08 +0200)]
glprototypes: add sync function definitions
Matthew Waters [Mon, 17 Nov 2014 07:06:20 +0000 (18:06 +1100)]
glfilterapp: port to gles2 and gl3
Matthew Waters [Fri, 14 Nov 2014 12:24:48 +0000 (23:24 +1100)]
gloverlay: support gl3
Matthew Waters [Thu, 13 Nov 2014 13:20:10 +0000 (00:20 +1100)]
glvideomixer: add support for gl3
Matthew Waters [Thu, 13 Nov 2014 10:30:38 +0000 (21:30 +1100)]
glfiltercube: add a gl3 code path
Matthew Waters [Thu, 13 Nov 2014 04:09:04 +0000 (15:09 +1100)]
glfiltershader: support gl3
Matthew Waters [Thu, 13 Nov 2014 01:12:46 +0000 (12:12 +1100)]
gltransformation: support gl3
Matthew Waters [Wed, 12 Nov 2014 12:48:32 +0000 (23:48 +1100)]
gleffects: support gl3 whereever gles2 is supported
Matthew Waters [Wed, 12 Nov 2014 12:47:13 +0000 (23:47 +1100)]
glcolorscale: support gl3
Matthew Waters [Wed, 12 Nov 2014 11:49:11 +0000 (22:49 +1100)]
glfilter: add a gl3 code path using vao's and vbo's
Matthew Waters [Wed, 12 Nov 2014 11:48:04 +0000 (22:48 +1100)]
glframebuffer: add support for gl3
Matthew Waters [Thu, 23 Oct 2014 11:35:20 +0000 (22:35 +1100)]
glcolorconvert: add support for gl3
Matthew Waters [Tue, 21 Oct 2014 11:18:51 +0000 (22:18 +1100)]
glimagesink: use vbo's and vao's for gl3
Matthew Waters [Tue, 21 Oct 2014 08:30:38 +0000 (19:30 +1100)]
glshader add support for gl3
Matthew Waters [Sun, 19 Oct 2014 04:09:37 +0000 (08:09 +0400)]
glx: ask for a GL3 core context
Sebastian Dröge [Thu, 27 Nov 2014 20:22:44 +0000 (21:22 +0100)]
videoaggregator: Minor cleanup
Sebastian Dröge [Wed, 26 Nov 2014 14:02:14 +0000 (15:02 +0100)]
compositor: Implement rescaling of the input via pad properties
compositor has now the same interface as glvideomixer.
Sebastian Dröge [Thu, 27 Nov 2014 19:34:25 +0000 (20:34 +0100)]
videoaggregator: Copy over more fields from the relevant video-info
gst_video_info_set_format() will reset the complete video-info, but
we want to keep values like the PAR, colorimetry and chroma site.
Otherwise we risk setting different values on the srcpad caps than
what is actually inside the buffers.
Sebastian Dröge [Thu, 27 Nov 2014 19:25:29 +0000 (20:25 +0100)]
videoaggregator: Directly use the converters video-info instead of recalculating it
Sebastian Dröge [Thu, 27 Nov 2014 18:52:20 +0000 (19:52 +0100)]
videoaggregator: Do source pad negotiation only from the aggregated function
Otherwise we might negotiate from the sinkpad streaming threads at
the same time as on the srcpad streaming thread, and then all kinds
of crazy bugs happen that don't make any sense at all.
Thibault Saunier [Thu, 27 Nov 2014 17:46:03 +0000 (18:46 +0100)]
videoconvert: Hide all conversion related fields
And do not delay the setting of the conversion_info
https://bugzilla.gnome.org/show_bug.cgi?id=740768
Thibault Saunier [Thu, 27 Nov 2014 15:43:39 +0000 (16:43 +0100)]
audiomixer: Do not try to resize a buffer to a negative size on EOS
Thibault Saunier [Wed, 26 Nov 2014 17:24:05 +0000 (18:24 +0100)]
videoaggregator: Expose vmethods to set converters and prepare/clean frames
This gives more flexibility to the subclasses and permits to remove the
GstVideoAggregatorClass->disable_frame_conversion ugly API.
WARNING: This breaks the API as it removes the disable_frame_conversion
field
API:
+ GstVideoAggregatorClass->find_best_format
+ GstVideoAggregatorPadClass->set_format
+ GstVideoAggregatorPadClass->prepare_frame
+ GstVideoAggregatorPadClass->clean_frame
- GstVideoAggregatorClass->disable_frame_conversion
https://bugzilla.gnome.org/show_bug.cgi?id=740768
Thibault Saunier [Wed, 26 Nov 2014 14:41:37 +0000 (15:41 +0100)]
watchdog: Handle FLUSHING seek events even in PAUSED state
https://bugzilla.gnome.org/show_bug.cgi?id=740757
Thibault Saunier [Wed, 26 Nov 2014 14:43:12 +0000 (15:43 +0100)]
watchdog: Properly handle PAUSED state
In PAUSED state we should just preroll, so get one buffer
and stop monitoring.
https://bugzilla.gnome.org/show_bug.cgi?id=740757
Thibault Saunier [Fri, 31 Oct 2014 10:01:47 +0000 (11:01 +0100)]
videoaggregator: Let a full renegotiation happen after removing the last pad
With the current code, we will end up setting the preferred downstream
format as the srcpad format, and it might not be accepted by the next
sinkpad to be added. We should instead let the next sinkpad reconfigure
everything.
Alessandro Decina [Thu, 27 Nov 2014 12:40:56 +0000 (13:40 +0100)]
vtenc: add quality property
Alessandro Decina [Thu, 27 Nov 2014 12:33:07 +0000 (13:33 +0100)]
vtenc: set profile and level in caps
Sebastian Dröge [Thu, 27 Nov 2014 17:09:58 +0000 (18:09 +0100)]
glcolorconvert: Unref buffer with the correct function
Sebastian Dröge [Thu, 27 Nov 2014 17:09:14 +0000 (18:09 +0100)]
glmemory: Handle failure of memory allocation gracefully
Sebastian Dröge [Thu, 27 Nov 2014 17:04:58 +0000 (18:04 +0100)]
glmemory: Use g_try_malloc() in the appropriate places
g_malloc() aborts if allocation fails, it's pointless to check against NULL
afterwards. That's why g_try_malloc() exists.