| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Handling slice_offset in avviddec is resulting in invalid memory read.
Since rv decoders anyways handle slice_offset, removing the same to fix
memory mishandlings
https://bugzilla.gnome.org/show_bug.cgi?id=758726
|
|
|
|
|
|
|
|
| |
In ffmpeg this is the same as FRONT_CENTER, but we distinguish between
FRONT_CENTER and MONO in GStreamer. Add an explicit mapping for this special
case in the translations functions.
https://bugzilla.gnome.org/show_bug.cgi?id=759846
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
configured on it for pushing buffers downstream
If downstream does not provide a (usable) pool, we would use our internal
pool. But the internal pool might be configured with a different width/height
because of padding, which then will cause problems if we push buffers from it
directly downstream.
Instead create a new pool if the width/height is different.
This prevents crashes with vaapisink and d3dvideosink for example.
Based on the debugging results and discussions with
Nicolas Dufresne <nicolas.dufresne@collabora.com>
https://bugzilla.gnome.org/show_bug.cgi?id=758344
|
|
|
|
|
|
|
| |
gst_structure_copy already takes a reference for config_copy.
No need to take another reference while setting it to buffer pool
https://bugzilla.gnome.org/show_bug.cgi?id=758512
|
| |
|
|
|
|
|
|
|
| |
Allocation should keep working, falling back causes the stride to
change which is not supported in direct rendering.
https://bugzilla.gnome.org/show_bug.cgi?id=756028
|
|
|
|
|
|
| |
The frame being passed to handle_frame should be unref'ed in all cases
https://bugzilla.gnome.org/show_bug.cgi?id=757453
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=757454
|
| |
|
|
|
|
| |
Also free the config in two code paths where we leaked it before.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since gst_buffer_pool_set_config() takes ownership of the config structure,
it is only necessary to free the structure before using it when the true
branch of if (gst_buffer_pool_config_validate_params) hasn't run.
gst_buffer_pool_set_config() always takes ownership of the structure
regardless of success or failure. Which means the return, checked with
if (!working_pool), has no relation to the state of the structure.
CID #1320708
|
|
|
|
|
|
|
| |
Multithreaded encoders are going to free this dummy codec data twice, e.g.
with this pipeline
gst-launch-1.0 videotestsrc num-buffers=40 ! \
videoconvert ! avenc_mjpeg ! fakesink
|
|
|
|
|
|
|
| |
Fixes crash with e.g.
gst-launch-1.0 videotestsrc num-buffers=40 ! \
videoconvert ! avenc_huffyuv ! fakesink
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Change default alignment from 16 to 32 bytes, which fixes crashes
when decoding H.265 using AVX2-based decoder code paths and when
using ximagesink/glimagesink.
https://bugzilla.gnome.org/show_bug.cgi?id=754120
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ximagesink/glimagesink
Make sure the alignment requirement in GstAllocationParams
matches the GstVideoAlignment requirements. This fixes
issues with avdec_h265 crashing in the avx2 code path when
used with playbin and ximagesink/glimagesink as videosink.
The internal video pool would allocate buffers with an
alignment of 15 even though GstVideoAlignment specified
a stride_align requirement of 31 (which comes from ffmpeg).
https://bugzilla.gnome.org/show_bug.cgi?id=754120
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=754920
|
|
|
|
|
|
| |
Add the codec name and bitrate into the output for informational
purposes. Bitrate in particular is now used by flvmux to set
videodatarate and audiodatarate in the resulting stream
|
|
|
|
|
|
|
|
|
|
| |
Some check where incorect and also unsafe. The only reliable information
in get_buffer2 is the picture width/height really. The side effect is
that the width/height of the internal pool endup padded, so when we
switch we also need to switch to the a new width/height, hence we save
the pool info.
https://bugzilla.gnome.org/show_bug.cgi?id=753869
|
| |
|
|
|
|
|
|
|
| |
This is achieved by using a tempory internal pool. We can then switch to a
downstream pool if the downstream pool buffer have matching strides.
https://bugzilla.gnome.org/show_bug.cgi?id=752802
|
|
|
|
|
| |
It is faster than doing a query that propagates downstream and
should be enough
|
|
|
|
|
|
|
| |
use template subset check for accept-caps
It is faster than doing a query that propagates downstream and
should be enough
|
|
|
|
| |
It just calls the exact same function as the default handler
|
|
|
|
| |
It just calls the exact same function as the default handler
|
|
|
|
| |
Avoids repeating the same handling in many decoders
|
|
|
|
| |
Avoids repeating the same handling in many decoders
|
| |
|
|
|
|
|
|
|
| |
Avoid doing downstream caps queries when accept-caps should just
do a shallow caps check on the element itself
https://bugzilla.gnome.org/show_bug.cgi?id=753623
|
|
|
|
|
|
|
| |
Avoid doing downstream caps queries when accept-caps should just
do a shallow caps check on the element itself
https://bugzilla.gnome.org/show_bug.cgi?id=753623
|
|
|
|
|
|
|
|
| |
Update to the metadata API ffmpeg has had in
place for a long time now, and reenable output
of GStreamer tags from the demuxer.
https://bugzilla.gnome.org/show_bug.cgi?id=566605
|
|
|
|
| |
This parameter has been always false for a long time.
|
|
|
|
|
|
|
| |
The size in the AVFrame in get_buffer2 don't match the output size,
instead they match ffmpeg's memory requirements, so we can't compare
them from the values of the output AVFrame. Those are comparable to
the values in the passed AVCodecContext.
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=753189
|
|
|
|
|
|
|
|
|
|
|
| |
ffmpeg doesn't provide the final's image width & height in the get_buffer2()
callback, so it's not possible to create an output state for GstVideoDecoder
at this stage. So only try to do direct rendering if the buffer pool has already
been negotiated based on the final decoded size.
This partially reverts the effects of 2e621f8db
https://bugzilla.gnome.org/show_bug.cgi?id=752802
|
|
|
|
|
|
|
|
|
| |
flags"
This reverts commit ac3437153dc6cb3d82cdda0d1f60ffc5600fdf67.
Doesn't actually make sense as it will put the (uninstalled) library paths
into the installed .la files. How does this all work?
|
| |
|
|
|
|
|
| |
Code was executed only on the first iteration, so just pull it out
of the loop entirely. This makes it clear it has nothing to do with the loop.
|
|
|
|
|
|
|
| |
If it is created earlier and the stride is invalid, then the frame
will be freed and it won't be possible to use it in the fallback path.
Not doing this causes a segfault because it will try to use
already freed memory.
|
| |
|
|
|
|
|
|
|
| |
If there is no layout, just read the channel count from the
channels field.
https://bugzilla.gnome.org/show_bug.cgi?id=752186
|