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
Sebastian Dröge [Mon, 9 Mar 2015 21:01:43 +0000 (22:01 +0100)]
avviddec: Error out if we try to allocate a buffer without being negotiated
Otherwise we just run into assertions because we should've errored out
already.
Luis de Bethencourt [Thu, 5 Mar 2015 14:25:16 +0000 (14:25 +0000)]
avdemux: remove duplicate goto block
Luis de Bethencourt [Thu, 5 Mar 2015 14:23:44 +0000 (14:23 +0000)]
avdemux: check AVIO Context has been allocated
Jan Schmidt [Sat, 7 Feb 2015 18:35:19 +0000 (05:35 +1100)]
Add drain() vfunc implementation that does the same as finish()
finish() is called at EOS, drain() is called at all other times
when the decoder should be drained out. gst-libav decoder behaviour
is the same in both cases, so use the same implementation
See https://bugzilla.gnome.org/show_bug.cgi?id=734617
Jan Schmidt [Thu, 11 Dec 2014 10:07:44 +0000 (21:07 +1100)]
avviddec: Implement SKIP and new SKIP_KEY_UNITS_ONLY flags
Respect any skip flags set in the incoming segment.
https://bugzilla.gnome.org/show_bug.cgi?id=735666
Sebastian Dröge [Sat, 17 Jan 2015 21:13:36 +0000 (22:13 +0100)]
libav: Update to v11.2
Stefan Sauer [Mon, 12 Jan 2015 15:13:15 +0000 (16:13 +0100)]
Automatic update of common submodule
From f2c6b95 to bc76a8b
Sebastian Dröge [Thu, 18 Dec 2014 09:56:03 +0000 (10:56 +0100)]
Automatic update of common submodule
From ef1ffdc to f2c6b95
Sebastian Dröge [Fri, 12 Dec 2014 08:57:35 +0000 (09:57 +0100)]
libav: Update to v11.1
Aurélien Zanelli [Thu, 27 Nov 2014 19:44:31 +0000 (20:44 +0100)]
av: use GMutex instead of deprecated GStaticMutex
https://bugzilla.gnome.org/show_bug.cgi?id=740822
Edward Hervey [Thu, 27 Nov 2014 16:12:26 +0000 (17:12 +0100)]
Automatic update of common submodule
From 7bb2bce to ef1ffdc
Nicolas Dufresne [Sun, 16 Nov 2014 21:11:53 +0000 (16:11 -0500)]
videodec: Ensure update_pool is initialized
This was probably not causing any issues, but we would randomly
and needlessly update the pool in the query due to uninitialized
variable.
Sebastian Dröge [Mon, 27 Oct 2014 17:00:07 +0000 (18:00 +0100)]
Automatic update of common submodule
From 84d06cd to 7bb2bce
Tim-Philipp Müller [Tue, 21 Oct 2014 12:03:27 +0000 (13:03 +0100)]
Automatic update of common submodule
From a8c8939 to 84d06cd
Stefan Sauer [Tue, 21 Oct 2014 10:59:52 +0000 (12:59 +0200)]
Automatic update of common submodule
From 36388a1 to a8c8939
Aleix Conchillo Flaqué [Mon, 22 Sep 2014 21:00:07 +0000 (14:00 -0700)]
avauddec: drain samples until libav doesn't have more data
We use have_data (that comes from libav), instead of only trying 10
times, to know if there are more samples available. The old code was
machine dependent as different amount of samples could be decoded by
different type of (more powerful) machines, and 10 times was not always
sufficient.
https://bugzilla.gnome.org/show_bug.cgi?id=737144
Sebastian Dröge [Mon, 15 Sep 2014 19:50:05 +0000 (22:50 +0300)]
libav: Update to v11
IBM Thinklab [Thu, 11 Sep 2014 23:37:33 +0000 (19:37 -0400)]
avviddec: drain frames until libav doesn't have more data
We use have_data (that comes from libav), instead of only trying 10 times,
to know if there are more frames available. The old code was machine
dependant as different amount of frames could be decoded by different
type of (more powerful) machines, and 10 times was not always sufficient.
https://bugzilla.gnome.org/show_bug.cgi?id=736515
Sebastian Dröge [Wed, 27 Aug 2014 09:39:49 +0000 (12:39 +0300)]
libav: Update to v11_beta1
Sebastian Dröge [Tue, 12 Aug 2014 13:17:11 +0000 (16:17 +0300)]
libav: Minor changes to build properly with v11alpha1
Sebastian Dröge [Tue, 12 Aug 2014 12:54:04 +0000 (15:54 +0300)]
libav: Update to v11alpha1
Jan Schmidt [Fri, 8 Aug 2014 10:04:20 +0000 (20:04 +1000)]
avviddec: After draining frames, flush the libav decoder
Makes sure that there's really nothing stale left in the decoder
after draining.
https://bugzilla.gnome.org/show_bug.cgi?id=734661
Aleix Conchillo Flaqué [Mon, 11 Aug 2014 12:16:55 +0000 (14:16 +0200)]
avviddec: Don't lose frames on EOS
have_data is not propagated from gst_ffmpegviddec_video_frame to
gst_ffmpegviddec_frame. have_data is only set to 1 in
gst_ffmpegviddec_frame if a frame pointer is passed. However, this is
not true while draining, which means that have_data from libav will be
ignored.
https://bugzilla.gnome.org/show_bug.cgi?id=734608
Thibault Saunier [Wed, 6 Aug 2014 08:14:17 +0000 (10:14 +0200)]
avauddec: Bump the rank of avdec_aac so it is used by default
https://bugzilla.gnome.org/show_bug.cgi?id=676131
Sebastian Dröge [Mon, 4 Aug 2014 13:06:50 +0000 (15:06 +0200)]
libav: Update to v10.3
Edward Hervey [Fri, 1 Aug 2014 08:41:28 +0000 (10:41 +0200)]
Makefile: Add usage of build-checks step
Allows building checks without running them
Sebastian Dröge [Sat, 19 Jul 2014 16:04:49 +0000 (18:04 +0200)]
Back to development
Sebastian Dröge [Sat, 19 Jul 2014 15:49:04 +0000 (17:49 +0200)]
Release 1.4.0
Sebastian Dröge [Fri, 11 Jul 2014 09:49:03 +0000 (11:49 +0200)]
Release 1.3.91
Sebastian Dröge [Sat, 28 Jun 2014 09:44:41 +0000 (11:44 +0200)]
Release 1.3.90
Sebastian Dröge [Sat, 28 Jun 2014 07:59:49 +0000 (09:59 +0200)]
libav: Update to v10.2
Sebastian Dröge [Sun, 22 Jun 2014 17:36:14 +0000 (19:36 +0200)]
Back to development
Sebastian Dröge [Sun, 22 Jun 2014 17:27:47 +0000 (19:27 +0200)]
Release 1.3.3
Sebastian Dröge [Sat, 21 Jun 2014 16:29:32 +0000 (18:29 +0200)]
avvidenc: Make sure to fixate caps before setting them on the pad
After the recent addition of negotiation support for MPEG4 part 2
profiles via caps it can happen that the generated caps at this
point still contain multiple profiles. For example if downstream
does not care. Just fixate anything here and use those caps.
Wim Taymans [Fri, 6 Jun 2014 14:52:28 +0000 (16:52 +0200)]
avcodecmap: place supported profiles in mpeg4 caps
Place the supported profiles in the srcpad caps of the mpeg4 encoder.
Wim Taymans [Fri, 6 Jun 2014 14:25:43 +0000 (16:25 +0200)]
avcodecmap: remove deprecated media types
Remove x-xvid and x-3ivx. The last place where they were used are
in the srcpad caps of the decoder but since the decoder will never
actually output those caps we can safely remove them.
Wim Taymans [Fri, 6 Jun 2014 14:19:07 +0000 (16:19 +0200)]
codecmap: don't expose more deprecated media types
x-xvid is deprecated, we don't want to expose it on the encoder, just
leave it only exposed on the decoder.
Wim Taymans [Fri, 6 Jun 2014 14:16:27 +0000 (16:16 +0200)]
Revert "avcodecmap: do more reverse mapping of MPEG4"
This reverts commit
e066785ad05f9119e3c1eded46260bcabd556b4d.
x-xvid and x-3ivx are removed, we don't want to expose them again.
Vincent Penquerc'h [Fri, 6 Jun 2014 11:40:57 +0000 (12:40 +0100)]
avaudenc: add a comment about using -1 in _finish_frame
See https://bugzilla.gnome.org/show_bug.cgi?id=729268
Vincent Penquerc'h [Wed, 30 Apr 2014 14:30:45 +0000 (15:30 +0100)]
avaudenc: avoid using wrong number of samples
If audio_in is NULL, we'll send a NULL frame to libav, to flush
the codec. In that case, we won't know how many samples the codec
will have used, so we use -1 (for don't know) when letting the
base class know about the buffer.
Coverity 1195177
Sebastian Dröge [Mon, 2 Jun 2014 07:27:17 +0000 (09:27 +0200)]
avvidenc: Fix indention and "bracketing" of goto labels
Should fix CID 1219865, which looks like the code analysis
algorithm was just confused.
Wim Taymans [Thu, 29 May 2014 16:24:20 +0000 (18:24 +0200)]
avcodecmap: handle simple and advanced-simple profile in MPEG4
Always enable 4MV flag for MPEG4
Pare the profile property and enable more features for advanced-simple
profile.
video/x-xvid is advanced-simple profile so enable more features.
We now also support encoding of video/x-xvid so add this to the caps.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=651320
Wim Taymans [Thu, 29 May 2014 16:16:42 +0000 (18:16 +0200)]
avvidenc: do all negotiation before opening the decoder
We first want to complete negotiation before opening the encoder.
Negotiation might configure flags and other things that might be needed
when opening the encoder.