| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
in render()
This seems to allow to schedule audio samples correctly at their right
times already.
https://bugzilla.gnome.org/show_bug.cgi?id=790114
|
|
|
|
|
|
|
|
|
|
|
| |
Not only if the video sink is set to PLAYING so far. Also give more
useful debug output about why we don't start, and don't start if already
started.
Also refactor the function to early-return instead of having a huge
if-else block over the whole function.
https://bugzilla.gnome.org/show_bug.cgi?id=790114
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=790114
|
|
|
|
|
|
|
|
|
|
| |
too much
The buffer level as reported by the Decklink driver is completely
unreliable, and we could otherwise easily run ahead >1s if we're
unlucky.
https://bugzilla.gnome.org/show_bug.cgi?id=790114
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=790114
|
|
|
|
|
|
|
|
|
|
|
|
| |
The Decklink and GstAudioBaseSink APIs don't fit very well together,
which causes various problems due to inaccuracies in the clock
calculations and the actual ringbuffer and GStreamer's copy getting of
sync.
Problems are audio drop-outs and A/V sync getting wrong after
pausing/seeking.
https://bugzilla.gnome.org/show_bug.cgi?id=790114
|
|
|
|
|
| |
vtenc.c:564:20: error: incompatible pointer types passing 'GstVTEnc *' (aka 'struct _GstVTEnc *')
to parameter of type 'GstVideoEncoder *' (aka 'struct _GstVideoEncoder *')
|
|
|
|
|
|
|
| |
We copy the meta's from the original buffer to the wrapper or copied
buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=790473
|
|
|
|
|
|
|
|
| |
When we cannot scale, we need to enforce the pixel aspect ratio.
This was partly implemented in the previous patch. Doing this
simplify some of the code.
https://bugzilla.gnome.org/show_bug.cgi?id=784599
|
|
|
|
|
|
|
|
|
| |
continuing
Otherwise we might "start" again, just to get finally stopped and then
getting errors all over the place.
https://bugzilla.gnome.org/show_bug.cgi?id=790114
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
from getOutputBuffer
1. Similar to 880f3d8, don't consider not getting an output buffer as
an error during flushing. I've seen the following sometimes when
encoding:
W GStreamer+amcvideoenc: java.lang.IllegalStateException
W GStreamer+amcvideoenc: at android.media.MediaCodec.getBuffer(Native Method)
W GStreamer+amcvideoenc: at android.media.MediaCodec.getOutputBuffer(MediaCodec.java:2886)
2. For amcvideodec/enc, call _find_nearest_frame (which grabs a fresh
reference on a GstVideoCodecFrame) after we have an output buffer,
so as to not leak the reference, in case getting an output buffer
fails.
Otherwise, if we get an error grabbing the output buffer, we leak
the reference to the frame. This can cause issues with a
v4l2bufferpool feeding the encoder not being able to clean itself
up properly due to buffers still being marked as in-use.
https://bugzilla.gnome.org/show_bug.cgi?id=791258
|
|
|
|
|
|
|
|
|
|
|
| |
This is to be used with gst_video_overlay_set_render_rectangle()
so the application can calculate a rectangle that fits inside
the display. The property changes are notify in a way that you
can watch either notify::display-width or notify::display-height
and both will be up-to-data when this is called back. Before the
element is started, the size will be 0x0.
https://bugzilla.gnome.org/show_bug.cgi?id=784599
|
|
|
|
|
|
|
|
|
| |
Implement videooverlay interface in kmssink, divided into two cases:
when driver supports scale, then we do refresh in show_frame(); if
not, send a reconfigure event to upstream and re-negotiate, using the
new size.
https://bugzilla.gnome.org/show_bug.cgi?id=784599
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=784599
|
|
|
|
|
|
|
| |
And use warnings/returns like for other calls
CID #1373414
CID #1373417
|
|
|
|
|
|
|
| |
Should continue draining so that it could try to
discard the rest of pending frames even if a finish_task fails.
https://bugzilla.gnome.org/show_bug.cgi?id=790312
|
|
|
|
| |
strlen on strings (and not sizeof) *sigh*
|
|
|
|
|
|
|
| |
It was great checking that the string was not too big ... but
it's better if we actually copy the proper amount of bytes :)
CID #206004
|
|
|
|
| |
CID #1416131
|
|
|
|
|
|
|
| |
It will return FALSE if a timeout happened. So don't check if we
timed out afterwards, just use the return value.
CID #1416347
|
|
|
|
|
|
|
| |
The code is meant to check the *peer* state change return value
(and not the sink's one).
CID #1416128
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=790312
|
|
|
|
|
|
|
|
|
| |
If the driver requires more data, just unref the frame at the moment
then retreive/finish the frame after encoding is finished.
This also fixes a memory leak.
https://bugzilla.gnome.org/show_bug.cgi?id=790312
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes outputted frame sequence when performing a seek
i.e. when seeking backwards, the first frame after the seek was a frame
from the future. This would result in GstVideoDecoder essentially
marking all the timestamps as essentially bogus and the base class would
attempt to compensate. A visible indication of this was 'decreasing timestamp'
warning after a seek.
https://bugzilla.gnome.org/show_bug.cgi?id=790478
|
| |
|
|
|
|
|
|
|
|
|
| |
top-bottom
Ideally this would be supported directly in the Intel MediaSDK but
that's not the case nowadays.
https://bugzilla.gnome.org/show_bug.cgi?id=774920
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=789847
|
|
|
|
|
|
| |
By doing conversion with VPP to NV12 before the actual encoding.
https://bugzilla.gnome.org/show_bug.cgi?id=789847
|
|
|
|
| |
We are ignoring all its flags anyway, so let's remove it altogether.
|
|
|
|
|
|
|
|
|
|
| |
The "fields" flag is ignored because currently GStreamer doesn't support
having only top or only bottom fields inside a frame. The "drop frame"
flag is ignored because some occurrences have been spotted where it
wasn't set while it should have been. In practice, when we have 29.97 or
59.94 FPS, it's always drop-frame.
https://bugzilla.gnome.org/show_bug.cgi?id=790112
|
|
|
|
|
| |
If the return value isn't OK, it means we might be getting data that
points to an invalid memory address. That shouldn't make us crash.
|
|
|
|
|
|
| |
This reverts commit c1294e10f99adf04a104397da735904634400464.
Was not ready to be pushed yet.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we receive a video or audio buffer, we calculate the next stream
time based on the current stream time + buffer duration. If the next
buffer's stream time is after that, we issue a warning.
This happens because the stream time incoming from Decklink should be
really constant and without gaps. If there is a gap, it means that
something went wrong, e.g. the internal buffer pool is empty (too many
buffers queued up downstream).
https://bugzilla.gnome.org/show_bug.cgi?id=781776
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=789751
|
|
|
|
|
|
| |
The sun_path field needs to be NULL-terminated
CID #206004
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=789751
|
|
|
|
| |
E.g. from https://github.com/lu-zero/mfx_dispatch
|
|
|
|
| |
Removes a reference count loop
|
|
|
|
|
|
| |
fix a memory leak if the decoder shut down before EOS
https://bugzilla.gnome.org/show_bug.cgi?id=787311
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=787311
|
|
|
|
|
|
|
| |
finish encoding and clean buffers queue on flush. This avoid a memory leak
if the element shuts down before EOS
https://bugzilla.gnome.org/show_bug.cgi?id=787311
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=788510
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=788243
|
|
|
|
|
|
|
|
| |
If we drop many frames at once, printing one message per video frame and
one per audio packet would cause a lot of disk IO. Just print a total at
the end.
https://bugzilla.gnome.org/show_bug.cgi?id=788780
|
|
|
|
|
|
|
|
| |
Now that we are doing lazy allocation, we may endup calling _stop()
before the allocator was created. As a side effect, we need to nul-check
the pointer before calling it's method (_clear_cache()).
https://bugzilla.gnome.org/show_bug.cgi?id=787593
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
DRM_RDWR was not defined until libdrm 2.4.68. However,
in configure.ac we only require libdrm >= 2.4.55.
Seems silly to to bump minimum libdrm version for a simple
define. Thus, define DRM_RDWR if it's not defined.
This fixes compilation error introduced in:
commit 922031b0f98bf5c7b01f4431d1c08617f65865f7
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date: Tue Sep 12 12:07:13 2017 -0400
kms: Export DMABuf from Dumb buffer when possible
https://bugzilla.gnome.org/show_bug.cgi?id=787593
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
|
|
|
|
|
|
|
|
|
| |
When we guess the strides, we need to also update the GstVideoInfo.size
otherwise the memory size will be set to something smaller then needed.
This was causing crash with the DMABuf exportation, since we would not
mmap() a large enough buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=787593
|