Olivier Crête
431f3e0e6f
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.
2015-07-27 18:46:17 -04:00
Olivier Crête
2e621f8dbf
avviddec: Re-enable direct rendering
2015-07-27 15:29:49 -04:00
Olivier Crete
3b6c656e25
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
2015-07-27 14:18:32 -04:00
Olivier Crête
6bfe79d903
avviddec: Ignore negotiation error on shutdown
...
https://bugzilla.gnome.org/show_bug.cgi?id=752800
2015-07-27 13:58:43 -04:00
Olivier Crête
7afaf5c020
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.
2015-07-25 03:06:10 -04:00
James Smith
f92bf2618c
Add support for musepack (mpc) sv8 audio
...
https://bugzilla.gnome.org/show_bug.cgi?id=732682
2015-07-22 09:44:27 +01:00
Vineeth T M
7d3c7109ac
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
2015-07-21 11:20:07 +01:00
Sebastian Dröge
5d2e9b7b80
Make the LGPL build the default and require --enable-gpl to build a GPL licensed version
2015-07-01 22:40:02 +02:00
Sebastian Dröge
b526816cfe
avmux: Blacklist some subtitle and adaptive streaming muxers
2015-07-01 22:11:52 +02:00
Sebastian Dröge
97f58baecd
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
2015-07-01 21:40:00 +02:00
Sebastian Dröge
1dcdeb977c
avaudenc: Remember how many samples the codec consumed for telling the base class
2015-06-30 20:01:46 +02:00
Thomas Bluemel
30a4a28793
avauddec: Ensure input buffers have FF_INPUT_BUFFER_PADDING_SIZE padding, which is required by avcodec_decode_audio4 ()
2015-06-30 19:19:42 +02:00
Sebastian Dröge
626152dd6f
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.
2015-06-29 13:29:05 +02:00
Sebastian Dröge
8271b2755a
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
2015-06-28 16:54:35 +02:00
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
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
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
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
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
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
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
Luis de Bethencourt
18667c5698
avdemux: remove duplicate goto block
2015-03-05 14:27:52 +00:00
Luis de Bethencourt
e3b8a4fe23
avdemux: check AVIO Context has been allocated
2015-03-05 14:23:44 +00:00
Jan Schmidt
904b53ab0d
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
2015-02-24 01:50:11 +11:00
Jan Schmidt
5758e82eaf
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
2015-01-27 04:35:08 +11:00
Aurélien Zanelli
728444168a
av: use GMutex instead of deprecated GStaticMutex
...
https://bugzilla.gnome.org/show_bug.cgi?id=740822
2014-11-28 00:32:28 +00:00
Nicolas Dufresne
9919c274b9
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.
2014-11-16 16:11:53 -05:00