Because current GstEGLImageMemory does not inherit GstGLMemory, GLUpload
allocates additional GLMemory and upload the decoded contents from the decoder
which uses EGLImage (e.g. gst-omx in RPi).
This work adds GstGLMemoryEGL to avoid this overhead. Decoders allocate
GstGLMemoryEGL and decode its contents to the EGLImage of GstGLMemoryEGL. And
GLUpload uses this memory without allocation of additional textures and blit
operations.
[Matthew Waters]: gst-indent the sources and fix a critical retreiving the egl
display from the memory.
https://bugzilla.gnome.org/show_bug.cgi?id=760916
Allows creating wrapped memories with GstGLAllocationParams.
The wrapped pointers will be set in the parameters before being passed
to the memory allocation function.
The device name and descriptions returned are in the locale encoding, not
UTF8. Our device name property is in UTF8 though, so we need to convert.
https://bugzilla.gnome.org/show_bug.cgi?id=756948
Some platforms provide an old version of GLES2/gl2.h and GLES2/gl2ext.h that
will fail when including GLES3/gl3.h due to missing typedef's.
Seen on the RPi.
The only mandatory frontend information for our use case
is its status. Make sure we output what we know instead
of choking at the first error getting SNR, BER or any of
the other informational parameters.
1.Porting the exist deinterlace shader and OpenGL callback
to be compatible with OpenGL ES.
2.Add a our blur vertical shader to gldeinterlace.
3.Add a property named “method” to let user choose which
deinterlace function to use. Default to choose blur vertical
method for better performance.
[Matthew Waters]: fix name of greedyh in method property (was greedhy) and port
to git master.
https://bugzilla.gnome.org/show_bug.cgi?id=764873
Adds a new function to mpegts lib to create a iso639 language
descriptor from a language and use it in mpegtsmux to add
a language descriptor to audio streams that have a language set.
https://bugzilla.gnome.org/show_bug.cgi?id=763647
This fixes a race where we check if there is a clock, then it get
removed and we endup calling gst_clock_new_single_shot_id() with a NULL
pointer instead of a valid clock and also calling gst_object_unref()
with a NULL pointer later.
https://bugzilla.gnome.org/show_bug.cgi?id=757548
Some cameras (IDS) have broken DirectShow drivers which incorrectly fill some
fields in the VIDEOINFOHEADER structure; comparison between suggested and
supported media types in CBaseRenderer should ignore deprecated and/or not
essential fields; additionaly explicitely setting the mediatype for the capture
pin before trying to connect it works around another IDS driver bug, and
should have been already done anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=765428
Add include path so that the cmake-generated project
is able to find gstconfig.h
Add /SAFESEH:NO to MSVC linker options so it can link with
gstreamer libraries on Windows.
https://bugzilla.gnome.org//show_bug.cgi?id=765426
When the test involves doing a seek, only check for data size after
the seek. The final segment range after seek might be different/smaller
than the threshold for doing the seek and doing the check before
seeking would fail.
Following the Don't Repeat Yourself principle, define macros
for the structures that contain the request and response headers,
so that the name is not repeated in multiple places in multiple files.
https://bugzilla.gnome.org/show_bug.cgi?id=762144
Test content protection
Configure 3 content protection sources:
- a uuid scheme/value pair
- a non uuid scheme/value pair (dash recognises only uuid schemes)
- a complex uuid scheme, with trailing spaces and capital letters in scheme uri
Only the uuid scheme should be recognised. We expect to receive 2 content protection events
https://bugzilla.gnome.org/show_bug.cgi?id=758064
Test header download error.
Let the adaptive demux download a few bytes, then instruct the
GstTestHTTPSrc element to generate an error while the fragment header
is still being downloaded.
https://bugzilla.gnome.org/show_bug.cgi?id=762144
Moved testQuery after testFragmentDownloadError so that testDownloadError
and testFragmentDownloadError are grouped together.
The commit just moved the testQueryCheckDataReceived and
GST_START_TEST (testQuery) functions but git gets confused in matching the
lines and reports a lot of changes in the patch.
https://bugzilla.gnome.org/show_bug.cgi?id=762144
To allow the adaptivedemux live stream tests to run in non-realtime, use a
GstTestClock as the system clock. This allows the unit tests to complete
more quickly than if they had to complete in real time.
https://bugzilla.gnome.org/show_bug.cgi?id=762147
There are several places in adaptivedemux where it waits for
time to pass, for example to wait until it should next download
a fragment. The problem with this approach is that it means that
unit tests are forced to execute in realtime.
This commit replaces the use of g_cond_wait_until() with single
shot GstClockID that signals the condition variable. Under normal
usage, this behaves exactly as before. A unit test can replace the
system clock with a GstTestClock, allowing the test to control the
timing in adaptivedemux.
https://bugzilla.gnome.org/show_bug.cgi?id=762147
A realtime clock is used in many places, such as deciding which
fragment to select at start up and deciding how long to sleep
before a fragment becomes available. For example dashdemux needs
sample the client's estimate of UTC when selecting where to start
in a live DASH stream.
The problem with dashdemux calculating the client's idea of UTC is
that it makes it difficult to create unit tests, because the passage
of time is a factor in the test.
This commit changes dashdemux and adaptivedemux to use the
GstSystemClock, so that a unit test can replace the system clock when
it needs to be able to control the clock.
This commit makes no change to the behaviour under normal usage, as
GstSystemClock is based upon the system time.
https://bugzilla.gnome.org/show_bug.cgi?id=762147