Nicolas Dufresne
7d53a5cd0a
gl: Add dependency to gstallocators
2017-06-07 11:50:30 -04:00
Edward Hervey
2b401de91c
dashdemux: Implement a default presentation delay
...
Have a fallback presentation delay is great (if not present in the
manifest), having an actual default value is better.
https://bugzilla.gnome.org/show_bug.cgi?id=783244
2017-06-01 15:27:07 +02:00
Thiago Santos
95a2786741
mpdparser: remove duplicate free of client data
...
https://bugzilla.gnome.org/show_bug.cgi?id=783028
2017-06-01 15:27:07 +02:00
Edward Hervey
34d8ddd92d
dashdemux: Remove wrong assertion
...
This is wrong because:
* If the rate is negative we should check for the *previous* period
* adaptivedemux already does the proper checks before calling this
method
2017-05-31 11:28:08 +02:00
Edward Hervey
417c70805b
ttml: Simplify code
...
n2 can never be NULL since:
* it's in a "while (n1 && n2)" block
* and it's not modified before
CID #1405868
2017-05-26 17:55:44 +02:00
Haihua Hu
405d059a22
glframebuffer: check frame buffer status need use specific fbo target
...
https://bugzilla.gnome.org/show_bug.cgi?id=783065
2017-05-25 12:34:04 +03:00
Sebastian Dröge
64ccac4bfb
openmpt: Fix compilation with 0.2.7386 as in Debian
...
The OPENMPT_API_VERSION_AT_LEAST macro does not exist.
2017-05-24 11:47:47 +03:00
Tim-Philipp Müller
0969e8323f
wildmidi: include stdint.h for int8_t
2017-05-23 09:17:29 +01:00
Reynaldo H. Verdejo Pinochet
bbb89dd34c
wildmididec: explicitly cast buffer data to int8 in _decode()
...
Fixes compiler warning introduced in commit ff32a4297
:
gstwildmididec.c:637:47: error: pointer targets in passing argument 2 of ‘WildMidi_GetOutput’ differ in signedness
WildMidi_GetOutput (wildmidi_dec->song, (char *) (info.data), info.size);
^
wildmidi_lib.h:106:15: note: expected ‘int8_t * {aka signed char *}’ but argument is of type ‘char *’
WM_SYMBOL int WildMidi_GetOutput (midi *handle, int8_t *buffer, uint32_t size);
https://bugzilla.gnome.org/show_bug.cgi?id=768576
2017-05-23 08:44:53 +01:00
Carlos Rafael Giani
e7a5fdfde4
openmpt: Add openmptdec element
...
https://bugzilla.gnome.org/show_bug.cgi?id=768576
2017-05-22 16:34:05 +02:00
Carlos Rafael Giani
ff32a4297f
wildmidi: Port to 1.0 on top of the nonstreamaudiodecoder base class
...
https://bugzilla.gnome.org/show_bug.cgi?id=768576
2017-05-22 16:34:05 +02:00
Anders Jonsson
f3de920b12
gltestsrc: Fix typo (occured->occurred)
...
https://bugzilla.gnome.org/show_bug.cgi?id=782947
2017-05-22 13:57:37 +02:00
Olivier Crête
1e84f90bdb
glbasemixer: Remove unused negotiated member
...
This is now all handled in GstAggregator, so this code is not
called anymore.
2017-05-21 18:31:59 +02:00
Olivier Crête
1a2df0400d
gl*mixer: Use propose_allocation from the GstAggregator base class
...
https://bugzilla.gnome.org/show_bug.cgi?id=782918
2017-05-21 18:17:54 +02:00
Carlos Rafael Giani
f191bf0c11
qmlglsink: Add dummy texture that is shown as placeholder for NULL buffers
...
https://bugzilla.gnome.org/show_bug.cgi?id=782917
2017-05-21 16:52:23 +02:00
Olivier Crête
9897c5c80d
glbasemixer: Remove own decide_allocation, use GstAggregator's
...
https://bugzilla.gnome.org/show_bug.cgi?id=746529
2017-05-21 13:24:29 +02:00
Olivier Crête
d3c2ccb3dd
glbasemixer: Use aggregator for allocation handling
...
https://bugzilla.gnome.org/show_bug.cgi?id=746529
2017-05-21 13:24:29 +02:00
Olivier Crête
31bbfd6773
videoaggregator: Get the buffer from the pool if available
...
https://bugzilla.gnome.org/show_bug.cgi?id=746529
2017-05-21 13:24:29 +02:00
Matthew Waters
7c53043386
aggregator: add simple support for caps handling
...
Modelled off the videoaggregator caps handling as that seems the most
mature aggregtor-using implementation that has caps handling there is.
https://bugzilla.gnome.org/show_bug.cgi?id=776931
2017-05-20 16:21:17 +02:00
Sebastian Dröge
be465a139b
dashdemux: Use correct (sub) fragment start when clipping chunk size
...
If we didn't download anything yet, we shouldn't use fragment.start but
the start position of the current sidx entry.
2017-05-18 19:04:57 +02:00
Sebastian Dröge
d5eee31918
dashdemux: Make sure to pass the next buffer after a seek with DISCONT flag
...
When we manually seek for skipping ahead in keyunit-only trickmode, we
have to enforce that ourselves as adaptivedemux does not know about the
seeks.
2017-05-18 19:04:57 +02:00
Sebastian Dröge
d884ec2904
dashdemux: Ensure that we never ever download over the current SIDX entry
...
Even if downloading more than needed to try to get the moof and first
keyframe both together.
2017-05-18 19:04:57 +02:00
Sebastian Dröge
71259d9ad4
dashdemux: Take SIDX entry timestamp/duration into account for keyunit-only mode
...
And not the whole segment's timestamp/duration
2017-05-18 19:04:57 +02:00
Sebastian Dröge
c3fd905f11
dashdemux: Reset parsing state correctly in various places
2017-05-18 19:04:57 +02:00
Sebastian Dröge
927c158303
dashdemux: Reset previous target_time when seeking
2017-05-18 19:04:57 +02:00
Sebastian Dröge
e2a6573c7d
dashdemux: Smooth out skip distances in keyframe-only trick modes
...
This ensures smoother playback. It looks weird if we first do a big
jump, then play a couple of consecutive frames, just to again skip ahead
quite a bit because we ran late again.
2017-05-18 19:04:57 +02:00
Sebastian Dröge
ddef518701
dashdemux: Take configure max bitrate/framerate into account for keyframe skipping
...
And by default only produce up to 10 fps.
2017-05-18 19:04:57 +02:00
Sebastian Dröge
6a037a78de
dashdemux: Try harder to not run into a loop over the same fragment over and over
...
While still making sure to not jump ahead one fragment further than
needed.
2017-05-18 19:04:57 +02:00
Sebastian Dröge
ef8f194855
dashdemux: Add some debug output to the target time selection
2017-05-18 19:04:57 +02:00
Sebastian Dröge
6b6c7382c3
dashdemux: Use the current clock running time in addition to the QoS earliest time
2017-05-18 19:04:57 +02:00
Sebastian Dröge
133d1e86bd
dashdemux: Download keyframes from the current position if we're far enough ahead
...
Far enough here means more than 500ms or 4 times the average keyframe
download time. There is no need to jump ahead by one average keyframe
download time in this case.
This makes playback smooth if the network is fast enough.
2017-05-18 19:04:57 +02:00
Sebastian Dröge
4efa3185bb
dashdemux: Fix sync sample selection based on target time in reverse playback mode
2017-05-18 19:04:57 +02:00
Sebastian Dröge
b3e2657ac1
dashdemux: Snap-seek for skipping ahead and use actual keyframe distance in the current fragment if applicable
2017-05-18 19:04:57 +02:00
Sebastian Dröge
b7f87e2518
dashdemux: Don't adjust for fragment duration twice when seeking ahead in KEYUNITS mode
2017-05-18 19:04:57 +02:00
Sebastian Dröge
5d09bc04a2
dashdemux: Add current fragment duration in reverse playback mode to the position
...
We play from the end of the fragment to the beginning, not from the
beginning backwards.
2017-05-18 19:04:57 +02:00
Sebastian Dröge
9267b4a725
dashdemux: Never take more than the current fragment duration for estimations inside the fragment
...
Taking the average might give us from results.
2017-05-18 19:04:57 +02:00
Sebastian Dröge
df420cc21f
dashdemux: Don't increase current position if we just downloaded the moof in KEYUNIT mode
2017-05-18 19:04:57 +02:00
Edward Hervey
245d73e516
dashdemux: Improve key-unit trick mode downloading
...
When dealing with key-unit trick mode downloads, the goal is to
provide the best "Quality of Experience". This is achieved by:
1) maximizing the number of frames displayed per second
2) avoiding "stalling" as much as possible (i.e. not downloading and
decoding frames fast enough)
This implementation achives this by:
1) Knowing very precisely the current keyframe being download (i.e
more accurate than at the fragment level which might contain more
than one keyfram). This is the new "actual_position" variable
introduced by this commit
2) Knowing the position of downstream (provided by QoS and stored
in the adaptivedemuxstream qos_earliest_time variable)
3) Knowing how long it takes to request and fully download a keyframe
(the average_download_time variable)
Taking those 3 variables into account, whenever a keyframe has been
pushed downstream we calculate a "target time" (target_time variable)
which is the ideal next keyframe time to request so that:
1) It will be requested/downloaded/demuxed/decoded in time to be
displayed without being too late
2) It will not be too far ahead that it would cause too few frames
per second to be displayed.
How far ahead we will request is inversily proportional to how close
the actual position (actual_position) is from the downstream
position (qos_earliest_time). The more is buffered between the source
and the sink, the "closer" the target time will be, and therefore
the more frames per seconds will be displayed (up to the limit
of keyframes_per_second * absolute_rate).
2017-05-18 19:04:57 +02:00
Edward Hervey
04224ad440
dashdemux: Store average download time
...
This will be used to bound the download rate when working in
keyframe-only trick mode
2017-05-18 19:04:57 +02:00
Sebastian Dröge
2379dc3f5b
dashdemux: Collect keyunit distance and size statistics
2017-05-18 19:04:57 +02:00
Edward Hervey
d8d1fc8bc4
dashdemux: Disable bitrate switching in key-unit trick mode
...
This creates too much havoc for now
2017-05-18 19:04:57 +02:00
Edward Hervey
8f400c1343
dashdemux: Use new adaptivedemux trickmode macro
...
Reduces the lines of code, and makes it a bit more readable
2017-05-18 19:04:57 +02:00
Simon Himmelbauer
67980f27ce
qt: Use GST_GL_HAVE_PLATFORM_CGL instead of GST_GL_HAVE_PLATFORM_COCOA
...
The latter is not used/available anymore since years. Also fix a typo
in the include path for the Cocoa GL display header.
2017-05-18 15:24:13 +03:00
Dmitry Zhadinets
f0a75cf029
motioncells: delay motionmaskcoords until caps arrive
...
motionmaskcoords is not applied on start because the information
about resolution isn't available until caps arrive.
https://bugzilla.gnome.org/show_bug.cgi?id=768666
2017-05-18 13:37:03 +02:00
Tim-Philipp Müller
80d66dfec8
Fix up package name and origin in some plugins
2017-05-18 10:58:20 +01:00
Sebastian Dröge
634cd87c76
gst: Clear floating flag in constructor of all GstObject subclasses that are not owned by any parent
...
https://bugzilla.gnome.org/show_bug.cgi?id=743062
2017-05-17 10:40:23 +03:00
Haihua Hu
ea2959bd88
qml: Add EGL platform support for x11 backend
...
Add support for EGL platform when x11 is available. This can work
e.g. on imx6 platform.
https://bugzilla.gnome.org/show_bug.cgi?id=782718
2017-05-17 10:33:48 +03:00
Nicolas Dufresne
4261692187
Remove plugin specific static build option
...
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
Seungha Yang
1c6cd54477
dashdemux: Initialize sidx_position to GST_CLOCK_TIME_NONE
...
If a manifest has non-zero presentation time offset
(i.e., earliest presentation time specified by sidx box is not zero),
the initial sidx position shouldn't be zero. Since we cannot define
exact sidx position until parsing sidx box, set the value to unknown.
https://bugzilla.gnome.org/show_bug.cgi?id=782693
2017-05-16 17:44:40 +03:00
Sebastian Dröge
9eda151348
hlssink2: New HLS sink element based on splitmuxsink
...
This embeds the muxer inside the sink and accepts elementary streams
while the old HLS sink required the muxer outside. Apart from that the
interface is the same as before.
Currently only mpegtsmux is supported, but support for other muxers is
just a matter of adding a property.
The advantage of the new sink is that it reduces complexity a lot and
properly handles pre-encoded streams with appropriately spaced
keyframes.
https://bugzilla.gnome.org/show_bug.cgi?id=781496
2017-05-12 12:03:10 +02:00