Commit graph

2103 commits

Author SHA1 Message Date
Sebastian Dröge
e964dcdb02 avvidenc: Set AVFrame flags for interlacing per frame and not in set_format()
They will get overridden by av_frame_unref() with the defaults.
2015-06-28 16:35:46 +02:00
Sebastian Dröge
45ab256e54 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.
2015-06-28 16:32:02 +02:00
Sebastian Dröge
6998d982c7 avvidenc: Properly wrap and free the output AVPackets generated during draining 2015-06-28 16:30:54 +02:00
Sebastian Dröge
3943cdf18a avvidenc: Make sure to keep input data alive until libav is done with it 2015-06-28 16:27:52 +02:00
Sebastian Dröge
3ca7c041b1 avaudenc: Make sure to keep input data alive until libav is done with it 2015-06-28 16:21:33 +02:00
Sebastian Dröge
d6b5fc4f34 av{aud,vid}enc: Stop using deprecated AVFrame APIs 2015-06-28 15:37:23 +02:00
Sebastian Dröge
2a445cb5f2 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.
2015-06-28 12:41:55 +02:00
Sebastian Dröge
4240ff2bfc avauddec: Use undeprecated AVFrame API 2015-06-28 12:41:55 +02:00
Sebastian Dröge
3d9816ce7f avviddec: Free frame before the codec is freed
Who knows, maybe freeing the frame calls cleanup inside the codec.
2015-06-28 12:41:55 +02:00
Sebastian Dröge
982f5262d4 avviddec: Use undeprecated AVFrame API and unref frame once we're done with it 2015-06-28 12:41:55 +02:00
Sebastian Dröge
0767bdda5f avauddec: Negotiate based on the AVFrame instead of just the AVCodecContext 2015-06-28 12:41:55 +02:00
Sebastian Dröge
523ddb5346 avviddec: Use the new get_buffer2() API instead of the deprecated APIs
And do the frame reference counting by adding AVBufferRefs to the frame.
2015-06-28 12:41:55 +02:00
Sebastian Dröge
ad7613be0d avviddec: Also proxy the data/size pointers for our wrapper AVBufferRef 2015-06-28 12:41:55 +02:00
Wim Taymans
8da0a61dc0 codecmap: add vp9 mapping 2015-06-26 17:30:25 +02:00
Sebastian Dröge
8cb8461f7e 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.
2015-06-26 16:58:55 +02:00
Sebastian Dröge
9b2c0c2dbc 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.
2015-06-26 16:58:55 +02:00
Sebastian Dröge
5b6c8ee8c9 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
2015-06-26 16:58:55 +02:00
Sebastian Dröge
ee8d33c468 Back to development 2015-06-25 00:04:23 +02:00
Sebastian Dröge
afdbe66460 Release 1.5.2 2015-06-24 23:40:51 +02:00
Nicolas Dufresne
c44f1a956f Automatic update of common submodule
From 6015d26 to f74b2df
2015-06-16 17:50:03 -04:00
Nicolas Dufresne
a33a1bf6e4 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
2015-06-11 10:23:33 -04:00
Jan Schmidt
1f1e24f63f viddec: Replicate any 3D/multiview info from input caps onto output 2015-06-11 12:25:45 +10:00
Stefan Sauer
0fc0584210 cruft: add the obsolete tmpl dir to cruft-dirs 2015-06-09 15:43:21 +02:00
Edward Hervey
2e1541798e Automatic update of common submodule
From d9a3353 to 6015d26
2015-06-09 11:30:44 +02:00
Stefan Sauer
d3211c88a1 Automatic update of common submodule
From d37af32 to d9a3353
2015-06-08 23:08:20 +02:00
Stefan Sauer
e93356d19d Automatic update of common submodule
From 21ba2e5 to d37af32
2015-06-07 23:06:58 +02:00
Stefan Sauer
83cf14e63b Automatic update of common submodule
From c408583 to 21ba2e5
2015-06-07 17:32:20 +02:00
Stefan Sauer
416ef2c35e docs: remove variables that we define in the snippet from common
This is syncing our Makefile.am with upstream gtkdoc.
2015-06-07 17:19:07 +02:00
Stefan Sauer
143e460294 Automatic update of common submodule
From c8fb372 to c408583
2015-06-07 17:16:38 +02:00
Sebastian Dröge
6194d4123f Back to development 2015-06-07 16:44:49 +02:00
Sebastian Dröge
84425e4515 Release 1.5.1 2015-06-07 11:10:59 +02:00
Sebastian Dröge
b81cb99d9f 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
2015-06-05 11:57:37 +02:00
Olivier Crête
172f9c9823 avviddec: Post error message before returning a flow error
This is required.
2015-06-02 20:48:33 -04:00
Edward Hervey
4da9692f4c 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 ...)
2015-06-02 16:32:55 +02:00
Tim-Philipp Müller
4516bad519 Make top-level 'check-torture' and 'check-valgrind' targets functional 2015-06-02 12:32:42 +01:00
Aurélien Zanelli
00ff477f29 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
2015-06-02 08:54:46 +01:00
Aurélien Zanelli
3fe87b31f6 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
2015-06-02 08:54:46 +01:00
Sebastian Dröge
c6cc7b385a avauddev: Unref decoded AVFrame after we're done with it
Otherwise we might leak some memory, like all compressed data when using
avdec_ac3.
2015-06-02 09:09:09 +02:00
Sebastian Dröge
ee7a9e000b libav: Update to v11.4 2015-05-31 21:32:07 +02:00
Tim-Philipp Müller
1caf119750 Update .gitignore 2015-04-23 17:19:21 +01:00
Tim-Philipp Müller
df3a1cf198 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
2015-04-23 17:09:36 +01:00
Tim-Philipp Müller
490a896b23 Automatic update of common submodule
From bc76a8b to c8fb372
2015-04-03 18:58:12 +01:00
Mark Nauwelaerts
2270026d82 avdemux: resurrect some flow return handling
https://bugzilla.gnome.org/show_bug.cgi?id=744572
2015-03-29 14:01:50 +02:00
Sebastian Dröge
8386e4411b libav: Update to v11.3 2015-03-14 11:26:16 +00:00
Tim-Philipp Müller
55f98c5b9a avdemux: fix double semicolon 2015-03-10 09:37:19 +00:00
Sebastian Dröge
4f7d873c4c libav: Add support for 10 bit planar AYUV formats 2015-03-10 10:18:53 +01:00
Sebastian Dröge
d3a2a9a951 libav: Change from deprecated PIX_FMT_* to AV_PIX_FMT_* 2015-03-10 10:17:45 +01:00
Sebastian Dröge
4459d706c8 avviddec: Don't copy padding if handling a frame failed
We will return an error right afterwards anyway.
2015-03-09 22:02:38 +01:00
Sebastian Dröge
099ea5f2d1 avviddec: If a flow return during draining is not OK, don't drain any further 2015-03-09 22:02:19 +01:00
Sebastian Dröge
af91ba1620 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.
2015-03-09 22:01:43 +01:00