Commit graph

2608 commits

Author SHA1 Message Date
Tim-Philipp Müller
d8963a015f docs: add new JPEG codecparser API to the docs
And sprinkle some more Since markers
2015-06-21 13:55:29 +01:00
Tim-Philipp Müller
7d8f694501 codecparsers: jpeg: fix validity checking of data parsed
g_return_val_if_fail() and g_assert() are not appropriate
for checking untrusted external data.

https://bugzilla.gnome.org/show_bug.cgi?id=673925
2015-06-21 11:32:10 +01:00
Tim-Philipp Müller
0f04a61bbe codecparsers: jpeg: fix up API
- add data pointer to GstJpegSegment and pass segment
  to all parsing functions, rename accordingly
- shorten GstJpegMarkerCode enum type name to GstJpegMarker
- move function gtk-doc blurbs into .c file
- add since markers
- flesh out docs for SOF markers

https://bugzilla.gnome.org/show_bug.cgi?id=673925
2015-06-21 11:31:50 +01:00
Tim-Philipp Müller
4a85958909 codecparsers: jpeg: tweak API a little
https://bugzilla.gnome.org/show_bug.cgi?id=673925
2015-06-21 11:30:30 +01:00
Tim-Philipp Müller
441478d161 codecparsers: jpeg: hide gst_jpeg_scan_for_marker_code()
Make this function private for now, since it's unclear whether
it's actually needed seeing that gst_jpeg_parse() scans too.

https://bugzilla.gnome.org/show_bug.cgi?id=673925
2015-06-21 11:30:30 +01:00
Gwenole Beauchesne
d279e12c8f codecparsers: jpeg: fix and optimize scan for next marker code.
Fix scan for next marker code when there is an odd number of filler
(0xff) bytes before the actual marker code. Also optimize the loop
to execute with fewer instructions (~10%).

This fixes parsing for Spectralfan.mov.
2015-06-21 11:28:38 +01:00
Gwenole Beauchesne
41ed5c0266 codecparsers: jpeg: fix calculation of segment size.
The size of a marker segment is defined to be exclusive of any initial
marker code. So, fix the size for SOI, EOI and APPn segments but also
the size of any possible segment that is usually "reserved" or not
explicitly defined.

https://bugzilla.gnome.org/show_bug.cgi?id=707447
2015-06-21 11:28:38 +01:00
Wind Yuan
c83e413656 codecparsers: jpeg: fix default Huffman tables generation.
Fix build_huffman_table() to correctly fill in the associated HUFFVAL
entries to the default Huffman tables.
2015-06-21 11:28:38 +01:00
Gwenole Beauchesne
7e7b4d68f4 codecparsers: jpeg: add JPEG bitstream parser
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=673925
2015-06-21 11:28:30 +01:00
Julien Isorce
66d833fcf2 gldisplay: add gst_gl_display_create_context
It also emits a create-context signal so that an application
can provide an external GstGLContext backend.

https://bugzilla.gnome.org/show_bug.cgi?id=750310
2015-06-19 13:10:30 +01:00
Julien Isorce
b0995fcca0 glcontext: move display from priv
https://bugzilla.gnome.org/show_bug.cgi?id=750310
2015-06-19 13:09:53 +01:00
Julien Isorce
5c23b98e27 Revert "glcontext: add gst_gl_context_set_display helper"
This reverts commit 71b8103cbd.
2015-06-19 13:09:46 +01:00
Julien Isorce
5b003b68ca Revert "gl: add GstGLContextGPUProcess backend"
This reverts commit b377112ee3.
2015-06-19 13:08:49 +01:00
Nicolas Dufresne
ca950fef14 glviewconvert: Fix GLES2 compatibility 2015-06-18 18:09:55 -04:00
Nicolas Dufresne
0e1303a294 glviewconvert: Fix broken validity check 2015-06-18 18:02:21 -04:00
Jan Schmidt
1aa3911d40 gl libs: Add glviewconvert helper object
Add API for a helper object that can convert between different
stereoscopic video representations, and later do filtering
of multiple view streams.

https://bugzilla.gnome.org/show_bug.cgi?id=611157
2015-06-19 01:49:32 +10:00
Vineeth TM
7823e6d606 nalutils: trivial patch to check if
trivial patch to add proper ( while checking for if(G_UNLIKELY())

https://bugzilla.gnome.org/show_bug.cgi?id=751087
2015-06-16 22:05:34 -04:00
Sebastian Dröge
f2617ee0ee videoaggregator: Print some debug output if we change the timestamp offset 2015-06-15 14:29:04 +02:00
Sebastian Dröge
3c9176d7e8 videoaggregator: Add some more debug output 2015-06-15 14:25:43 +02:00
Sebastian Dröge
442114c606 videoaggregator: Don't update the ts-offset before updating the actual configured caps 2015-06-15 14:19:05 +02:00
Sebastian Dröge
9533d1f165 videoaggregator: Remember if the last LATENCY query returned live or not and use the in the QoS messages 2015-06-15 14:18:39 +02:00
Mathieu Duponchelle
3c2fff7165 videoaggregator: No need to artificially bound the zorder.
It is an unsigned integer so the upper bound is G_MAXUINT.
2015-06-14 23:15:25 +02:00
Luis de Bethencourt
417db39d0d codecparsers: mpeg4: actually return full number of bits of resync marker
Switch the increment of markersize from when it is used to when it is
returned from compute_resync_marker_size.

This also makes the CHECK_REMAINING in gst_mpeg4_parse_video_packet_header
check for the actually required number of bits now and not one too few.

https://bugzilla.gnome.org/show_bug.cgi?id=739345
2015-06-13 18:03:11 +01:00
Tim-Philipp Müller
b14fb383ed Revert "codecparsers: remove ignored increment of return"
This reverts commit 916b954315.

Clearly something else was intended, and it also makes
more sense to add the extra bit. The resync marker is
N zero bits plus a 1 bit, and the pattern/mask needs to
be run on N+1 bits too.

(Even after the rever the code doesn't do that of course, so
it still needs to be fixed differently.)

https://bugzilla.gnome.org/show_bug.cgi?id=739345
2015-06-13 17:59:42 +01:00
Nirbheek Chauhan
b395c055eb videoaggregator: add "ignore-eos" property for input pads
When set, it causes videoaggregator to repeatedly aggregate the last buffer on
an EOS pad instead of skipping it and outputting silence. This is useful, for
instance, while playing back files seamless one after the other, to avoid
videoaggregator ever outputting silence (the checkerboard pattern).

It is to be noted that if all the pads on videoaggregator have this property set
on them, the mixer will never forward EOS downstream for obvious reasons. Hence,
at least one pad with 'ignore-eos' set to FALSE must send EOS to the mixer
before it will be forwarded downstream.

https://bugzilla.gnome.org/show_bug.cgi?id=748946
2015-06-12 19:44:50 +01:00
Jesper Larsen
355439206d mpegts: return early if packetizing short section
Short sections have 3 bytes of common header, while other sections
have 8 bytes of common header. If packetizing common header of short
section, we should stop after the first 3 bytes.

https://bugzilla.gnome.org/show_bug.cgi?id=735653
2015-06-12 19:21:51 +01:00
Matthew Waters
c3a47c910d glmemory: separate pbo transfer from texture transfers
When supported, the potentially longer pbo upload/download can be
initiated before the texture upload/download, potentially increasing
throughput.
2015-06-12 16:59:20 +10:00
Matthew Waters
7d8d1f8206 glmemory: implement on top of glbasebuffer
Provides convenient access to PBO usage.

Currently texture updates are coupled tightly to data transfers.
2015-06-12 16:59:20 +10:00
Matthew Waters
6e88b07cc5 gl: new glbasebuffer GstMemory object
Provides generic handling of GL buffer objects accessible using
the GL bind points (GL_ARRAY_BUFFER, GL_PIXEL_*_BUFFER).

Implementation based off the current GstGLMemory.
2015-06-12 16:59:20 +10:00
Matthew Waters
2741093c97 gl/prototypes: add some buffer function prototypes 2015-06-12 16:09:49 +10:00
Matthew Waters
ea4867dfa7 gl/window/x11: only listen on the X Display when needed
5697b6b89b causes us to possibly listen
on a toolkit provided Display connection.  We thus could eat their
precious winsys events.  Only listen if we need to
(!foreign_display or videooverlay).
2015-06-12 13:14:57 +10:00
Jan Schmidt
e2ce1eff36 gl: Add support for multiple views in upload, colour convert and download
Support multiple attached views on input/output buffers
by processing each one, not just the first.
2015-06-12 00:39:15 +10:00
Matthew Waters
5697b6b89b gl/window/x11: don't create our own X11 display
It's not needed anymore with most window operations occuring in the
GL thread.
2015-06-12 00:34:58 +10:00
Matthew Waters
e2adfb8bf2 gl/window/x11: handle_events() may be called before the window has been created
Fixes an XIO fatal error
2015-06-12 00:34:58 +10:00
Sebastian Dröge
e7ca427ddb gl: OES_vertex_array_object is improperly implemented on PowerVR SGX 544MP
https://bugzilla.gnome.org/show_bug.cgi?id=750185
2015-06-10 13:31:16 +02:00
Thiago Santos
7b8d819d18 videoaggregator: simplify aggregate returning
Rework special handling with goto/labels to only have one case
and otherwise just return normally.
2015-06-08 12:35:25 -03:00
Thiago Santos
443a3beb8f videoaggregator: refactor caps reconfigure to its own function
Makes the aggregation code shorter and easier to read
2015-06-08 12:34:23 -03:00
Thiago Santos
9f9c723f5d videoaggregator: fixing types in aggregate function
Correctly use boolean and GstFlowReturn types in the function.
2015-06-08 12:33:40 -03:00
Thiago Santos
a5e1f26385 videoaggregator: use macro to access aggregator src pad
Makes code a bit more readable
2015-06-08 12:09:51 -03:00
Thiago Santos
0a495cbea2 aggregator: add a convenience macro to get the source pad
Easier than casting or acessing the parent everywhere
2015-06-08 12:09:51 -03:00
Thiago Santos
045bfa10fe Fix a common typo: retreive -> retrieve
Seems to have been copy pasted around a few places
2015-06-05 09:43:35 -03:00
Sebastian Dröge
4dd355cea2 adaptivedemux: Error out if downloading a segment failed too often in live mode
It's true that we shouldn't consider errors fatal immediately, but if we
always ignore them we will loop infinitely on live streams with segments
that can't be downloaded at all.
2015-06-05 11:26:11 +02:00
Sebastian Dröge
fc67e1db8b adaptivedemux: Release the manifest mutex before waiting for a download
Otherwise we will hurt parallel downloads in the best case, and often cause
deadlocks.
2015-06-04 12:36:41 +02:00
Philippe Normand
53a149f5d4 gl/dispmanx: Fix build 2015-06-04 09:42:01 +02:00
Matthew Waters
050e12c62a gl/window/dispmanx: fix compiler warning 2015-06-04 15:01:16 +10:00
Matthew Waters
fbbf1ac324 gl/window: use the default main loop implementation for all backends
fixes glimagsink being unable to display.

https://bugzilla.gnome.org/show_bug.cgi?id=750337
2015-06-04 12:16:35 +10:00
Julien Isorce
b7808270ca glwindow_cocoa: use parent default implementation
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=750337
2015-06-03 21:24:59 +01:00
Jan Schmidt
840f63896f glsyncmeta: Set new sync point when copying
Set a new sync point when copying instead of
transferring the (non-refcounted) GL sync object
from the source meta.

https://bugzilla.gnome.org/show_bug.cgi?id=750279
2015-06-03 00:50:29 +10:00
Jan Schmidt
0ce8d77e54 glsyncmeta: Add some debug output 2015-06-03 00:50:28 +10:00
Matthew Waters
ab2656ebe5 glmemory: provide compatibility definition for GLES2 for GL_RGBA8 2015-06-02 17:24:18 +10:00