Sebastian Dröge [Sat, 3 Oct 2015 17:25:35 +0000 (18:25 +0100)]
avcodecmap: Don't allocate dummy codec data anymore, it causes crashes nowadays
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
Sebastian Dröge [Sat, 3 Oct 2015 17:14:05 +0000 (18:14 +0100)]
avvidenc: Pass the correct user_data to gst_buffer_new_wrapped_full()
Fixes crash with e.g.
gst-launch-1.0 videotestsrc num-buffers=40 ! \
videoconvert ! avenc_huffyuv ! fakesink
Sebastian Dröge [Fri, 2 Oct 2015 20:02:01 +0000 (23:02 +0300)]
libav: G_CONST_RETURN is deprecated since GLib 2.30
Sebastian Dröge [Fri, 2 Oct 2015 19:26:36 +0000 (22:26 +0300)]
Add configure check for GLib for consistency with other modules
Luis de Bethencourt [Fri, 2 Oct 2015 10:49:35 +0000 (11:49 +0100)]
avviddec: only free config when pool doesn't take ownership
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.
Luis de Bethencourt [Fri, 28 Aug 2015 14:15:39 +0000 (15:15 +0100)]
avviddec: fix memory leak
Free config before overwriting.
CID #1320708
Sebastian Dröge [Fri, 25 Sep 2015 21:51:15 +0000 (23:51 +0200)]
Back to development
Sebastian Dröge [Fri, 25 Sep 2015 21:32:21 +0000 (23:32 +0200)]
Release 1.6.0
Sebastian Dröge [Fri, 18 Sep 2015 18:10:32 +0000 (20:10 +0200)]
Release 1.5.91
Tim-Philipp Müller [Fri, 28 Aug 2015 08:38:53 +0000 (09:38 +0100)]
avvidec: increase default alignment to 32 bytes
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
Tim-Philipp Müller [Fri, 11 Sep 2015 22:19:21 +0000 (23:19 +0100)]
avvideodec: ensure required mem alignment fixing avdec_h265 crashes with 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
Sebastian Dröge [Sat, 12 Sep 2015 12:06:10 +0000 (14:06 +0200)]
libav: Update to ffmpeg n2.8
https://bugzilla.gnome.org/show_bug.cgi?id=754920
Jan Schmidt [Wed, 29 Jul 2015 15:24:54 +0000 (01:24 +1000)]
avvid/audenc: Set some tags in the output for downstream's info
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
Nicolas Dufresne [Thu, 20 Aug 2015 15:02:11 +0000 (08:02 -0700)]
avviddec: Fix pool reallocation logic
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
Sebastian Dröge [Wed, 19 Aug 2015 11:12:35 +0000 (14:12 +0300)]
Release 1.5.90
Nicolas Dufresne [Sun, 16 Aug 2015 17:08:16 +0000 (19:08 +0200)]
aviddec: Re-enable direct rendering
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
Thiago Santos [Mon, 17 Aug 2015 07:36:39 +0000 (04:36 -0300)]
avvidenc: use template subset check for accept-caps
It is faster than doing a query that propagates downstream and
should be enough
Thiago Santos [Mon, 17 Aug 2015 07:35:41 +0000 (04:35 -0300)]
avaudenc: use pad template caps for accept-caps
use template subset check for accept-caps
It is faster than doing a query that propagates downstream and
should be enough
Thiago Santos [Sun, 16 Aug 2015 17:14:27 +0000 (14:14 -0300)]
avaudenc: remove useless getcaps method
It just calls the exact same function as the default handler
Thiago Santos [Sun, 16 Aug 2015 17:13:05 +0000 (14:13 -0300)]
avvidenc: remove useless getcaps method
It just calls the exact same function as the default handler
Thiago Santos [Sat, 15 Aug 2015 10:30:26 +0000 (07:30 -0300)]
avauddec: let audiodecoder call the default pad query handler
Avoids repeating the same handling in many decoders
Thiago Santos [Sat, 15 Aug 2015 10:18:07 +0000 (07:18 -0300)]
avviddec: let videodecoder call the default pad query handler
Avoids repeating the same handling in many decoders
Sebastian Dröge [Sat, 15 Aug 2015 10:51:19 +0000 (12:51 +0200)]
libav: Update to n2.7.2
Thiago Santos [Fri, 14 Aug 2015 11:22:39 +0000 (08:22 -0300)]
avviddec: use template caps intersection for accept-caps
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
Thiago Santos [Fri, 14 Aug 2015 11:21:51 +0000 (08:21 -0300)]
avauddec: use template caps intersection for accept-caps
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
Jan Schmidt [Thu, 30 Jul 2015 13:07:39 +0000 (23:07 +1000)]
Map ffmpeg metadata to GStreamer tags
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
Olivier Crête [Tue, 28 Jul 2015 21:54:23 +0000 (17:54 -0400)]
avviddec: Remove unused force parameter
This parameter has been always false for a long time.
Olivier Crête [Tue, 4 Aug 2015 01:40:12 +0000 (21:40 -0400)]
avviddec: Use caps-like size in get_buffer2()
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.
Olivier Crête [Tue, 4 Aug 2015 01:02:37 +0000 (21:02 -0400)]
avviddec: Reset current_dr on close and when not chosing it
https://bugzilla.gnome.org/show_bug.cgi?id=753189
Olivier Crête [Tue, 28 Jul 2015 20:16:10 +0000 (16:16 -0400)]
avviddec: Disable direct rendering before a frame has been produces
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
Sebastian Dröge [Tue, 28 Jul 2015 08:19:52 +0000 (11:19 +0300)]
Revert "For static builds, add the ffmpeg library directories to the linker 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?
Sebastian Dröge [Tue, 28 Jul 2015 08:02:47 +0000 (11:02 +0300)]
For static builds, add the ffmpeg library directories to the linker flags
Olivier Crête [Mon, 27 Jul 2015 22:49:49 +0000 (18:49 -0400)]
avviddec: Get code out of loop
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.
Olivier Crête [Mon, 27 Jul 2015 22:44:53 +0000 (18:44 -0400)]
avviddec: Only create the AVBuffer once the stride is validated
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.
Olivier Crête [Mon, 27 Jul 2015 19:29:49 +0000 (15:29 -0400)]
avviddec: Re-enable direct rendering
Olivier Crete [Sat, 25 Jul 2015 06:54:20 +0000 (02:54 -0400)]
avauddec: Read channels from the channels field
If there is no layout, just read the channel count from the
channels field.
https://bugzilla.gnome.org/show_bug.cgi?id=752186
Olivier Crête [Thu, 23 Jul 2015 23:15:43 +0000 (19:15 -0400)]
avviddec: Ignore negotiation error on shutdown
https://bugzilla.gnome.org/show_bug.cgi?id=752800
Olivier Crête [Sat, 25 Jul 2015 07:05:25 +0000 (03:05 -0400)]
avauddec: Access field using accessors
Those fields are documented to only be safe to access using
accessors as their position is not part of the ABI.
James Smith [Wed, 22 Jul 2015 08:44:27 +0000 (09:44 +0100)]
Add support for musepack (mpc) sv8 audio
https://bugzilla.gnome.org/show_bug.cgi?id=732682
Vineeth T M [Thu, 16 Jul 2015 09:17:05 +0000 (18:17 +0900)]
avviddec: fix slice_offset memory leak
In case of real videos, slice_offset is being allocated,
but the same is not being freed.
https://bugzilla.gnome.org/show_bug.cgi?id=752404
Tim-Philipp Müller [Thu, 16 Jul 2015 16:24:48 +0000 (17:24 +0100)]
Update mailing list in doap file
Sebastian Dröge [Tue, 7 Jul 2015 14:52:49 +0000 (17:52 +0300)]
Disable iconv support to fix Windows build
It's needed only for subtitle charset conversion, and we don't
use the ffmpeg subtitle support anyway.
Also disable d3d11va and dxva2 support, we don't use the hardware
codec support.
Stefan Sauer [Fri, 3 Jul 2015 19:59:42 +0000 (21:59 +0200)]
Automatic update of common submodule
From f74b2df to 9aed1d7
Heinrich Fink [Thu, 2 Jul 2015 13:44:45 +0000 (15:44 +0200)]
Fix OSX build: Explicitly disable VDA h264 decoder
VideoDecodeAcceleration framework is deprecated in 10.11, and currently
cuases linker errors when compiling on OSX. Oddly, --disable-hwaccels
did not also disable h264_vda already.
https://bugzilla.gnome.org/show_bug.cgi?id=751838
Sebastian Dröge [Wed, 1 Jul 2015 20:40:02 +0000 (22:40 +0200)]
Make the LGPL build the default and require --enable-gpl to build a GPL licensed version
Sebastian Dröge [Wed, 1 Jul 2015 20:11:52 +0000 (22:11 +0200)]
avmux: Blacklist some subtitle and adaptive streaming muxers
Sebastian Dröge [Tue, 30 Jun 2015 10:05:46 +0000 (12:05 +0200)]
Switch from libav v11.4 to ffmpeg n2.7.1
ffmpeg seems to be the one of the two forks, which is most widely used by
Linux distributions and in general. Also Google is using it for e.g. Chrome
and has engineers working on finding and fixing security issues in it.
https://bugzilla.gnome.org/show_bug.cgi?id=751607
Sebastian Dröge [Tue, 30 Jun 2015 17:59:54 +0000 (19:59 +0200)]
avaudenc: Remember how many samples the codec consumed for telling the base class
Thomas Bluemel [Tue, 30 Jun 2015 17:18:53 +0000 (19:18 +0200)]
avauddec: Ensure input buffers have FF_INPUT_BUFFER_PADDING_SIZE padding, which is required by avcodec_decode_audio4 ()
Sebastian Dröge [Mon, 29 Jun 2015 11:29:05 +0000 (13:29 +0200)]
avmux: Ignore stream_segment,ssegment muxer that is provided by ffmpeg
The comma confuses our code, e.g. it's not a valid element name or structure
name.
Sebastian Dröge [Sun, 28 Jun 2015 14:54:35 +0000 (16:54 +0200)]
avvidenc: Fix compiler warning
gstavvidenc.c: In function 'gst_ffmpegvidenc_flush_buffers':
gstavvidenc.c:733:7: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
GstFFMpegVidEncClass *oclass =
^
cc1: all warnings being treated as errors
Sebastian Dröge [Sun, 28 Jun 2015 14:35:46 +0000 (16:35 +0200)]
avvidenc: Set AVFrame flags for interlacing per frame and not in set_format()
They will get overridden by av_frame_unref() with the defaults.
Sebastian Dröge [Sun, 28 Jun 2015 14:32:02 +0000 (16:32 +0200)]
av{aud,vid}enc: Create wrapped output buffers with GST_MEMORY_FLAG_READONLY
libav might still have references to the buffers itself and uses a writability
system similar to ours based on reference counts.
Sebastian Dröge [Sun, 28 Jun 2015 14:30:54 +0000 (16:30 +0200)]
avvidenc: Properly wrap and free the output AVPackets generated during draining
Sebastian Dröge [Sun, 28 Jun 2015 14:27:52 +0000 (16:27 +0200)]
avvidenc: Make sure to keep input data alive until libav is done with it
Sebastian Dröge [Sun, 28 Jun 2015 14:21:33 +0000 (16:21 +0200)]
avaudenc: Make sure to keep input data alive until libav is done with it
Sebastian Dröge [Sun, 28 Jun 2015 13:37:23 +0000 (15:37 +0200)]
av{aud,vid}enc: Stop using deprecated AVFrame APIs
Sebastian Dröge [Sun, 28 Jun 2015 10:33:49 +0000 (12:33 +0200)]
avauddec: Remove custom buffer allocation function
libav always uses planar audio formats nowadays, not much use in
us trying to allocate anything here until we add support for planar
aka non-interleaved audio formats at least in audioconvert.
Sebastian Dröge [Sat, 27 Jun 2015 18:25:36 +0000 (20:25 +0200)]
avauddec: Use undeprecated AVFrame API
Sebastian Dröge [Sat, 27 Jun 2015 18:25:18 +0000 (20:25 +0200)]
avviddec: Free frame before the codec is freed
Who knows, maybe freeing the frame calls cleanup inside the codec.
Sebastian Dröge [Sat, 27 Jun 2015 18:15:20 +0000 (20:15 +0200)]
avviddec: Use undeprecated AVFrame API and unref frame once we're done with it
Sebastian Dröge [Sat, 27 Jun 2015 18:08:46 +0000 (20:08 +0200)]
avauddec: Negotiate based on the AVFrame instead of just the AVCodecContext
Sebastian Dröge [Fri, 26 Jun 2015 18:38:01 +0000 (20:38 +0200)]
avviddec: Use the new get_buffer2() API instead of the deprecated APIs
And do the frame reference counting by adding AVBufferRefs to the frame.
Sebastian Dröge [Fri, 26 Jun 2015 18:20:14 +0000 (20:20 +0200)]
avviddec: Also proxy the data/size pointers for our wrapper AVBufferRef
Wim Taymans [Fri, 26 Jun 2015 15:30:25 +0000 (17:30 +0200)]
codecmap: add vp9 mapping
Sebastian Dröge [Fri, 26 Jun 2015 14:50:16 +0000 (16:50 +0200)]
avviddec: Wrap the original AVBufferRef in our own buffer for the destroy function
Just adding a dummy buffer at the very end might not be enough as there
already might be too many buffers.
Sebastian Dröge [Fri, 26 Jun 2015 13:38:38 +0000 (15:38 +0200)]
avviddec: libav will already copy the reordered_opaque pointer for us
If we do it ourselves, it might get the wrong value if our assumptions are
broken by libav at a later time.
Sebastian Dröge [Fri, 26 Jun 2015 13:34:30 +0000 (15:34 +0200)]
avviddec: Negotiate based on the AVFrame information, not the context information
The context contains the information from the latest input frame, we're
however interested in the information from the latest output frame. As we have
to negotiate for the buffer that is about to come next.
This should fix some crashes that happened when both information got out of
sync. If that happens now, we will do fallback allocation until the output
is renegotiated too.
https://bugzilla.gnome.org/show_bug.cgi?id=750865
Sebastian Dröge [Wed, 24 Jun 2015 22:04:23 +0000 (00:04 +0200)]
Back to development
Sebastian Dröge [Wed, 24 Jun 2015 21:40:51 +0000 (23:40 +0200)]
Release 1.5.2
Nicolas Dufresne [Tue, 16 Jun 2015 21:50:03 +0000 (17:50 -0400)]
Automatic update of common submodule
From 6015d26 to f74b2df
Nicolas Dufresne [Thu, 4 Jun 2015 23:11:02 +0000 (19:11 -0400)]
avcodec: Check against codec format list
There exist few formats (deprecated though) used by mjpeg decoder
and encoder that maps to the same GStreamer format. To properly
pick the right format, also lookup each Codec list before accepting
the format. This fixes error when trying to use mjpeg encoder.
Note that this may results in faded colors. In fact, these special
format are meant to specify that this is full range YUV. Colorimetry
in gst-libav is not yet implemented, hence is ignored in general. So
I think it's fine to first fix the issue before addressing the missing
feature.
https://bugzilla.gnome.org/show_bug.cgi?id=750398
Jan Schmidt [Tue, 7 Oct 2014 05:33:07 +0000 (16:33 +1100)]
viddec: Replicate any 3D/multiview info from input caps onto output
Stefan Sauer [Tue, 9 Jun 2015 13:41:46 +0000 (15:41 +0200)]
cruft: add the obsolete tmpl dir to cruft-dirs
Edward Hervey [Tue, 9 Jun 2015 09:30:44 +0000 (11:30 +0200)]
Automatic update of common submodule
From d9a3353 to 6015d26
Stefan Sauer [Mon, 8 Jun 2015 21:08:20 +0000 (23:08 +0200)]
Automatic update of common submodule
From d37af32 to d9a3353
Stefan Sauer [Sun, 7 Jun 2015 21:06:58 +0000 (23:06 +0200)]
Automatic update of common submodule
From 21ba2e5 to d37af32
Stefan Sauer [Sun, 7 Jun 2015 15:32:20 +0000 (17:32 +0200)]
Automatic update of common submodule
From c408583 to 21ba2e5
Stefan Sauer [Sun, 7 Jun 2015 15:03:46 +0000 (17:03 +0200)]
docs: remove variables that we define in the snippet from common
This is syncing our Makefile.am with upstream gtkdoc.
Stefan Sauer [Sun, 7 Jun 2015 15:16:38 +0000 (17:16 +0200)]
Automatic update of common submodule
From c8fb372 to c408583
Sebastian Dröge [Sun, 7 Jun 2015 14:44:49 +0000 (16:44 +0200)]
Back to development
Sebastian Dröge [Sun, 7 Jun 2015 09:10:59 +0000 (11:10 +0200)]
Release 1.5.1
Sebastian Dröge [Fri, 5 Jun 2015 09:57:37 +0000 (11:57 +0200)]
avviddec: Release stream lock while calling avcodec_decode_video2()
It might call back into us from another thread and try to take the stream lock
again, e.g. to allocate a buffer.
https://bugzilla.gnome.org/show_bug.cgi?id=726020
Olivier Crête [Wed, 3 Jun 2015 00:48:33 +0000 (20:48 -0400)]
avviddec: Post error message before returning a flow error
This is required.
Edward Hervey [Tue, 2 Jun 2015 14:32:55 +0000 (16:32 +0200)]
check: Use GST_CHECK_MAIN () macro everywhere
Makes source code smaller, and ensures we go through common initialization
path (like the one that sets up XML unit test output ...)
Tim-Philipp Müller [Tue, 2 Jun 2015 11:32:42 +0000 (12:32 +0100)]
Make top-level 'check-torture' and 'check-valgrind' targets functional
Aurélien Zanelli [Fri, 12 Sep 2014 07:44:16 +0000 (09:44 +0200)]
avcodecmap: Use video/x-cavs mime type instead of video/x-gst-av-cavs
More generic mime-type which can be used by other decoders than libav.
https://bugzilla.gnome.org/show_bug.cgi?id=727731
Aurélien Zanelli [Wed, 25 Mar 2015 09:24:52 +0000 (10:24 +0100)]
configure: don't disable Chinese AVS (cavs) decoder
It enables GStreamer to decode Chinese AVS video streams.
Also fix indentation.
https://bugzilla.gnome.org/show_bug.cgi?id=727731
Sebastian Dröge [Tue, 2 Jun 2015 07:09:09 +0000 (09:09 +0200)]
avauddev: Unref decoded AVFrame after we're done with it
Otherwise we might leak some memory, like all compressed data when using
avdec_ac3.
Sebastian Dröge [Sun, 31 May 2015 19:32:07 +0000 (21:32 +0200)]
libav: Update to v11.4
Tim-Philipp Müller [Thu, 23 Apr 2015 16:12:26 +0000 (17:12 +0100)]
Update .gitignore
Tim-Philipp Müller [Thu, 23 Apr 2015 16:09:36 +0000 (17:09 +0100)]
configure: bump automake requirement to 1.14 and autoconf to 2.69
This is only required for builds from git, people can still
build tarballs if they only have older autotools.
https://bugzilla.gnome.org//show_bug.cgi?id=747624
Tim-Philipp Müller [Fri, 3 Apr 2015 17:58:12 +0000 (18:58 +0100)]
Automatic update of common submodule
From bc76a8b to c8fb372
Mark Nauwelaerts [Sun, 29 Mar 2015 12:01:50 +0000 (14:01 +0200)]
avdemux: resurrect some flow return handling
https://bugzilla.gnome.org/show_bug.cgi?id=744572
Sebastian Dröge [Sat, 14 Mar 2015 11:26:16 +0000 (11:26 +0000)]
libav: Update to v11.3
Tim-Philipp Müller [Tue, 10 Mar 2015 09:37:19 +0000 (09:37 +0000)]
avdemux: fix double semicolon
Sebastian Dröge [Tue, 10 Mar 2015 09:18:53 +0000 (10:18 +0100)]
libav: Add support for 10 bit planar AYUV formats
Sebastian Dröge [Tue, 10 Mar 2015 09:17:45 +0000 (10:17 +0100)]
libav: Change from deprecated PIX_FMT_* to AV_PIX_FMT_*
Sebastian Dröge [Mon, 9 Mar 2015 21:02:38 +0000 (22:02 +0100)]
avviddec: Don't copy padding if handling a frame failed
We will return an error right afterwards anyway.
Sebastian Dröge [Mon, 9 Mar 2015 21:02:19 +0000 (22:02 +0100)]
avviddec: If a flow return during draining is not OK, don't drain any further