Commit graph

21962 commits

Author SHA1 Message Date
Sebastian Dröge
09dd64bb4f decklinksrc: Keep track of a window of capture/stream time mappings and calculate relationship
Based on this we calculate the actual capture time, which should get us
rid of any capturing jitter by averaging it out.

Also add a output-stream-time property which forces the elements to
output the stream time directly instead of doing any conversion to the
pipeline clock. Use with care.

https://bugzilla.gnome.org/show_bug.cgi?id=774850
2016-11-28 14:27:51 +02:00
Sebastian Dröge
881a08671e decklinksrc: Stop using the "hardware" timestamps and directly use the pipeline clock
The hardware timestamps have no relation to when frames were produced,
only when frames arrived somewhere in the hardware. Especially there is
no guarantee that audio and video will have the same hardware timestamps
although they belong together, and even more important: the rate with
which the hardware timestamps increase is completely unrelated to the
rate with which the frames are captured!

As such we can as well use the pipeline clock directly and stop doing
complicated calculations. Also as a side effect this allows now running
without any pipeline clock, by directly making use of the stream times
as reported by the driver.

https://bugzilla.gnome.org/show_bug.cgi?id=774850
2016-11-28 14:27:51 +02:00
Sebastian Dröge
423e4593aa rawparse: Whitespace cleanup 2016-11-28 14:26:17 +02:00
Tim-Philipp Müller
de4bb6e1d4 dataurisrc: remove plugin, moved to core
https://bugzilla.gnome.org/show_bug.cgi?id=774527
2016-11-28 11:26:50 +00:00
Sebastian Dröge
674efaadd9 m3u8: Mark uri_join() function as static
We don't really want to export this, especially not without any
namespacing. This can cause problems for static builds.
2016-11-28 10:49:23 +02:00
Sebastian Dröge
b0a6b5eac8 tsdemux: Post an error message on the bus if we activated a program without pads
Otherwise decodebin and applications are going to wait forever for pads
to appear, which is never going to happen.

Happens on this stream, which probably just need support for it added:
https://samples.mplayerhq.hu/3D/AVC_codec_in_m2ts_not_recognized/AVC_codec_not_recognized_right_video_sample.m2ts
2016-11-28 10:30:11 +02:00
Matthew Waters
024e92afe7 glwindow: move g_main_context_push/pop_thread_default() to run()
Calling g_main_context_push_thread and then g_main_context_invoke()
(used by gst_gl_window_send_message_async()) in the same thread will
cause the invoked function to run immediately instead of being delayed.

This had implications for the creation of the OpenGL context not waiting
until the main loop had completely started up and as a result would
sometimes deadlock in short create/destroy scenarios.

https://bugzilla.gnome.org/show_bug.cgi?id=775171
2016-11-28 14:27:03 +11:00
Matthew Waters
25fbc6d877 glcontext: fix race between creation/shutdown
626bcccff9 removed some locks that
allowed the main loop quit to occur before the context was fully
created.

2776cef25d attempted to readd them but
missed the scop of the quit() call.

Also remove the use of g_thread_join() as that's not safe to use when
it's possible to lose the last reference from the GL thread.

https://bugzilla.gnome.org/show_bug.cgi?id=775171
2016-11-28 14:27:03 +11:00
Sebastian Dröge
2f87392ee7 rawbaseparse: Fix output buffer size trimming
For frame->buffer, baseparse is doing that automatically for us. For
frame->output_buffer it doesn't and assumes that the subclass is already
doing that. Consistency!
2016-11-27 12:40:53 +02:00
Sebastian Dröge
eef53ef6ed dash: Fix stripping of space at the beginning/end of durations
The way how strchr() was called here, it could easily read after the end
of the string. Use g_ascii_isspace() instead.

Detected by asan in the unit test.
2016-11-27 12:20:11 +02:00
Sebastian Dröge
7488a8fb35 opencv: Make the OpenCV plugin optional in the meson build 2016-11-27 11:56:18 +02:00
Sebastian Dröge
5a6b121d5b rawparse: Properly align raw audio/video output buffers
That is, aligned to the basic type for audio and to 32 bytes for video.
Fixes crashes if the raw buffers are passed to SIMD processing functions.

https://bugzilla.gnome.org/show_bug.cgi?id=774428
2016-11-27 11:45:33 +02:00
Luis de Bethencourt
de99cf0de1 opencv: Enable in meson build
https://bugzilla.gnome.org/show_bug.cgi?id=774223
2016-11-26 17:55:23 +00:00
Tim-Philipp Müller
555c4eb1b2 common: use https protocol for common submodule
https://bugzilla.gnome.org/show_bug.cgi?id=775110
2016-11-26 11:23:39 +00:00
Sebastian Dröge
88e060743a mxfdemux: Post an error message if we got EOS before having any source pads
Otherwise, sending an EOS event has no effect and the application waits
forever for something to happen.
2016-11-26 12:28:57 +02:00
Sebastian Dröge
55043aff12 h264parse: Fix indentation 2016-11-26 12:16:58 +02:00
Sebastian Dröge
cb4ccecc97 h265parse: Fix assertion when encountering an invalid NALU
Error out properly instead.

https://bugzilla.gnome.org/show_bug.cgi?id=775130
2016-11-26 12:16:58 +02:00
Sebastian Dröge
47bf425cba h264parse: Fix assertion when encountering an invalid NALU
Error out properly instead.

https://bugzilla.gnome.org/show_bug.cgi?id=775130
2016-11-26 12:16:58 +02:00
Edward Hervey
d58f668ece mpegtssection: Add more section size checks
The smallest section ever needs to be at least 3 bytes (i.e. just the short
header).
Non-short headers need to be at least 11 bytes long (3 for the minimum header,
5 for the non-short header, and 4 for the CRC).

https://bugzilla.gnome.org/show_bug.cgi?id=775048
2016-11-26 10:46:08 +01:00
Edward Hervey
7b12593cce mpegtssection: Fix PAT parsing
Use the estimated number of programs for parsing. Avoids over-reading.

https://bugzilla.gnome.org/show_bug.cgi?id=775120
2016-11-26 10:45:52 +01:00
Edward Hervey
9053a01e72 hlsdemux: Handle GST_SEEK_TYPE_NONE seek
When one is only updating the "stop" position (i.e. non-flushing seek,
with GST_SEEK_TYPE_NONE on the "start" (or stop in reverse) position),
we only need to store those values instead of moving the current position.

https://bugzilla.gnome.org/show_bug.cgi?id=775127
2016-11-26 10:45:52 +01:00
Sebastian Dröge
9b89f58cae ext: Fix various compiler warnings with clang
wldisplay.c:179:15: error: comparison of unsigned enum expression < 0 is always false [-Werror,-Wtautological-compare]
  if (shm_fmt < 0)
      ~~~~~~~ ^ ~

gstsegmentation.cpp:419:40: error: implicit conversion from 'int' to 'char' changes value from 255 to -1 [-Werror,-Wconstant-conversion]
          filter->cvFG->imageData[j] = 255;
                                     ~ ^~~

https://bugzilla.gnome.org/show_bug.cgi?id=775112
2016-11-25 23:47:15 +02:00
Sebastian Dröge
939528e542 gl/x11: Remove unused static function 2016-11-25 23:44:25 +02:00
Sebastian Dröge
d3b45a145f mxfdemux: Fix up another size check and prevent allocating too much memory 2016-11-25 16:46:45 +02:00
Sebastian Dröge
31a2f2d5a1 mxfdemux: Handle zero-sized KLV items better and don't assert on them 2016-11-25 15:59:44 +02:00
Sebastian Dröge
73e02f4553 mxfdemux: Fix various logic errors in error handling of footer partition parsing 2016-11-25 15:53:50 +02:00
Sebastian Dröge
9ff1ac59f3 mxfdemux: Don't try parsing empty metadata items 2016-11-25 15:53:36 +02:00
Sebastian Dröge
329fe3eea4 mxfmetadata: Add missing NULL check 2016-11-25 15:30:39 +02:00
Florent Thiéry
a0558d6e85 gldownload: fix element description (was "OpenGL uploader") 2016-11-25 16:52:35 +11:00
Sebastian Dröge
743d7bd7ec mxf: Remove mxfdms1.[ch] from the build for now
It's completely unused currently but might be used in the future.
2016-11-24 23:40:45 +02:00
Sebastian Dröge
b5bb6e3b38 mxfdemux: Add various missing bounds checks, NULL checks and integer overflow protection for error cases 2016-11-24 23:40:21 +02:00
Sebastian Dröge
2a66653bdc decklinkvideosrc: Free timecodes when done with a frame 2016-11-24 14:48:52 +02:00
Sebastian Dröge
166c5333ca timecodestamper: Remove all existing timecode metas if requested to override existing 2016-11-24 14:42:45 +02:00
Edward Hervey
d1fa342b71 mpegtssection: Don't free empty streams
Also avoids a useless assertion
2016-11-24 11:15:22 +01:00
Edward Hervey
a39dc142e6 mpegtspacketizer: Don't add existing values to group
If the last value is already identical, there is no need in adding it
yet-another-time
2016-11-24 11:15:22 +01:00
Víctor Manuel Jáquez Leal
88dbae3ab9 kmssink: include drm.h after stdlib.h
As drm.h is internal to libdrm, it expects to have already included
stdlib.h.
2016-11-23 20:13:59 +01:00
Víctor Manuel Jáquez Leal
79cd4bb44b kms: include stdlib.h
drm.h does not include all what it needs to compile, in particular
stdlib.h which defines size_t
2016-11-23 19:44:49 +01:00
Sebastian Dröge
8d8661f1f8 mpdparser: Don't set variable just to overwrite it again later
We set it to TRUE here, but later we set it to TRUE again anyway if the
parsing actually succeeded at this point. Let's keep the second one.

CID 1374360.
2016-11-23 19:01:04 +02:00
Sebastian Dröge
95ed2cf687 wldisplay: Don't compare a guint with < 0
-1 is the "invalid" value, compare to it directly.

CID 1394490.
2016-11-23 18:45:42 +02:00
Sebastian Dröge
0acb3d87bb audiobuffersplit: New element that splits raw audio buffers into equal-sized buffers
This is useful e.g. if audio buffers should be exactly the duration of a
video frame, or if a audio buffers should never be too large because of
latency constraints.

The element is taking a fractional buffer duration, to allow working
with e.g. 1001/30000 as output duration and it accumulates rounding
errors in the buffer durations and compensates for them by making some
buffers one sample larger than the others.

https://bugzilla.gnome.org/show_bug.cgi?id=774689
2016-11-23 18:18:46 +02:00
Michael Tretter
12e82aac28 kmssink: remove dependency on libkms
libkms should not be used, because it imposes limitations on the DRM
API, especially regarding bpp and stride. Instead the DRM IOCTL should
be used directly.

Switch from libkms to the IOCTL interface. Set bpp and height for
framebuffer allocation to properly handle planar video formats.

https://bugzilla.gnome.org/show_bug.cgi?id=773473

Signed-off-by: Víctor Jáquez <vjaquez@igalia.com>
2016-11-23 16:43:28 +01:00
Tim-Philipp Müller
ad661999ad mimic: remove ancient codec
This was used by MSN messenger in prehistoric times, it's safe
to say no one needs or wants this any more these days. For
decoding old recordings there's still a decoder in ffmpeg.

https://bugzilla.gnome.org/show_bug.cgi?id=597616
2016-11-23 10:33:37 +00:00
Sebastian Dröge
43736e5c37 h265parse: Ensure codec_data has the required size when reading number of NAL arrays
https://bugzilla.gnome.org/show_bug.cgi?id=774896
2016-11-23 10:53:46 +02:00
Sebastian Dröge
1dbfef93d6 h264parse: Ensure codec_data has the required size when reading number of SPS
https://bugzilla.gnome.org/show_bug.cgi?id=774896
2016-11-23 10:53:40 +02:00
Matthew Waters
4a0214335f gl/contextglx: error out on more invalid display/window combinations
https://bugzilla.gnome.org/show_bug.cgi?id=774851
2016-11-23 17:04:34 +11:00
Matthew Waters
7ab4abb3ab gl: add necessary context_egl.h #includes to the source files 2016-11-23 15:57:05 +11:00
Matthew Waters
75d36b990d gl/memoryegl: remove access to private header gstglcontext_egl.h
It's been removed and thus compiling anything against GstGLMemoryEGL
would error with:

In file included from gstomxvideodec.c:41:0:
usr/include/gstreamer-1.0/gst/gl/egl/gstglmemoryegl.h:32:41: fatal error: gst/gl/egl/gstglcontext_egl.h: No such file or directory
 #include <gst/gl/egl/gstglcontext_egl.h>
                                         ^

https://bugzilla.gnome.org/show_bug.cgi?id=774886
2016-11-23 13:36:45 +11:00
Sebastian Dröge
ee300b6c33 mpegtspacketizer: Reset values before parsing each section 2016-11-22 13:00:21 +02:00
Sebastian Dröge
ab4bb225bd mpegtspacketizer: Make sure in all cases that we have enough data left for reading a section start
In some cases we ended up parsing sections without.
2016-11-22 12:56:03 +02:00
Philippe Renon
d130a19c89 opencv: forward declare opencv types
Forward declare opencv types to avoid exposing them in the API.

https://bugzilla.gnome.org/show_bug.cgi?id=774223
2016-11-21 17:37:46 +01:00