Vincent Penquerc'h
4f1fd2687d
libav: avoid dividing by zero on insane fps/par
...
While there, fix mixup in num/den with par (copied from fps,
apparently, and fps inverts fps to time base).
Coverity 1139696
2014-04-30 18:18:50 +01:00
Vincent Penquerc'h
3529de1784
avvidenc: guard against division by zero
...
and other nonsensical time base values while we're at it.
Coverity 1139699
2014-04-30 18:18:50 +01:00
Sebastian Dröge
6d92f18d1b
avaudenc: Fix leak of AVBufferRef
...
AVPacket contains AVBufferRef which may leak unless unreffed properly.
https://bugzilla.gnome.org/show_bug.cgi?id=726814
2014-04-29 09:13:44 +02:00
Stian Selnes
245be56510
avvidenc: Fix leak of AVBufferRef
...
AVPacket contains AVBufferRef which may leak unless unreffed properly.
https://bugzilla.gnome.org/show_bug.cgi?id=726814
2014-04-29 09:07:33 +02:00
Edward Hervey
3a81f604fe
avaudenc: Fix compile without gst debug
...
We can just re-use the encoder variable
2014-04-14 13:37:02 +02:00
Edward Hervey
f70f904210
avdemux: Remove unused variable
...
CID #1139943
2014-04-08 08:05:24 +02:00
Edward Hervey
e513fad054
codecmap: Add missing break
...
CID #1139752
2014-04-08 08:00:55 +02:00
Sebastian Dröge
99ca91f3a3
avcodecmap: Add mapping for Apple Intermediate Codec
...
https://bugzilla.gnome.org/show_bug.cgi?id=727673
2014-04-06 09:05:43 +02:00
Mark Nauwelaerts
6daa80bbbe
avvidenc: discard input frame upon encoding error
2014-03-25 21:06:01 +01:00
Mark Nauwelaerts
7a8eae6ea9
avvidenc: make all properties work again
...
... as previously broken due to additional compliance property
(see 13ffed87b1
).
2014-02-23 11:40:14 +01:00
Mark Nauwelaerts
fef710efc3
avmux: stream-start and segment event before data-flow
2014-02-22 21:54:08 +01:00
Thijs Vermeir
9a1c9096dc
avviddec: rename hevc decoder element to h265 for consistency
...
We use h265 for the parser, typefinder, caps, etc. everywhere.
https://bugzilla.gnome.org/show_bug.cgi?id=724823
2014-02-22 16:10:49 +01:00
Tim-Philipp Müller
74b769751d
avvidec: don't crash on EOS when no buffers have been received
...
Fixes crash on EOS when no buffers have been received for some
reason, e.g. because the parser didn't output any.
fakesrc num-buffers=0 format=time ! avdec_h264 ! fakesink
2014-02-21 13:18:47 +00:00
Thiago Santos
845b874575
avaudenc: fix audio encoder flushing according to libav docs
...
* @param[in] frame AVFrame containing the raw audio data to be encoded.
* May be NULL when flushing an encoder that has the
* CODEC_CAP_DELAY capability set.
The AVFrame itself should be null, not the frame.data pointer
https://bugzilla.gnome.org/show_bug.cgi?id=724536
2014-02-20 17:32:12 -03:00
Dmitry Melnichenko
fe224775cf
avmux: Fix invalid address passing to av_opt_set_int()
...
https://bugzilla.gnome.org/show_bug.cgi?id=723615
2014-02-04 17:28:36 +01:00
Mark Nauwelaerts
f86fd7e29e
avvidenc: avoid busy-looping when flushing frames
...
... such as when receiving EOS event.
2014-02-01 14:40:45 +01:00
Sjoerd Simons
1b5895c936
avdemux: Don't go into pull mode when the sequential flag is set
...
When the scheduling query results has GST_SCHEDULING_FLAG_SEQUENTIAL set
in its flags don't go into pull mode to prevent over-eager seeking.
https://bugzilla.gnome.org/show_bug.cgi?id=722935
2014-01-24 22:22:48 +01:00
Tim 'mithro' Ansell
520221c47a
avmux: Force DV audio input format to 48kHz, 2 channels
...
libavformat only supports muxing 16bit, 48kHz stereo into DV containers.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=722672
2014-01-21 13:22:40 +01:00
Aleix Conchillo Flaqué
60f7b00db3
avviddec: Add output-corrupt property
...
The output-corrupt property will set the CODEC_FLAG_OUTPUT_CORRUPT flag
in the codec context. The user can now decide whether libav outputs
corrupt frames or not.
Previous libav versions had this flag always set.
https://bugzilla.gnome.org/show_bug.cgi?id=722453
2014-01-17 22:08:33 +01:00
Sebastian Dröge
d494f6f983
avauddec: Mark frames as corrupted if libav tells us they are
...
This is currently only implemented by the h264 codec and no audio codec.
https://bugzilla.gnome.org/show_bug.cgi?id=722290
2014-01-16 13:46:26 +01:00
Sebastian Dröge
b278ca55be
avviddec: Mark frames as corrupted if libav tells us they are
...
This is currently only implemented by the h264 codec.
https://bugzilla.gnome.org/show_bug.cgi?id=722290
2014-01-16 13:46:26 +01:00
Vincent Penquerc'h
ca1b5d8576
gst-libav: fix context leaks
...
A AVCodecContext needs cleaning up before being freed.
Go through all of the allocations/setups to ensure none of them
can leak a context or its contents.
2014-01-15 09:02:33 +00:00
Wim Taymans
ead14945aa
avviddec: set output chroma-site
...
Use libav provided chroma-site and place it on the output caps.
2014-01-13 16:31:05 +01:00
Wim Taymans
81cef109e2
avviddec: release buffers when not direct rendering
...
New libav will not call the release_buffer callback anymore when
avcodec_default_get_buffer() is called from get_buffer. Releasing of the
memory in a picture should now be done by registering a callback to the
avbuffer objects in the picture. There is some compatibility code to
wrap the memory we provide in get_buffer in avbuffer with a callback to
release_buffer but that is not done when avcodec_default_get_buffer()
is called.
Work around this by adding a dummy avbuffer object to the picture that
will release the frame.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=721077
2014-01-10 17:28:22 +01:00
Sebastian Dröge
1e65aac1a4
avauddec: Give MP3 decoder a MARGINAL rank too
...
There's no reason why this decoder should not be autoplugged
2014-01-10 13:17:02 +01:00
Sebastian Dröge
9887521a32
av: Enable HEVC / h265 support
2014-01-06 13:39:32 +01:00
Tim-Philipp Müller
8770f22735
avcodecmap: fix regression with wmv3 video in WMVA format
...
The VC-1 decoder should handle that. Before avdec_wmv3 handled
it, but then we added format=WMV3 to its sink pad template
caps, at which point nothing handled WMVA any longer.
https://bugzilla.gnome.org/show_bug.cgi?id=697665
2014-01-03 16:00:41 +00:00
Sebastian Dröge
1409e1692b
av: Update for CodecID -> AVCodecID related changes
2014-01-03 16:28:44 +01:00
Sebastian Dröge
fc57f7fb1b
avcfg: Update config parameters a bit to fix compilation
...
This needs a major rework and should use the new configuration
interface where useful.
2014-01-03 16:28:02 +01:00
Sebastian Dröge
0a819702c0
avenc: Stop using the removed inter_threshold field
2014-01-03 16:27:34 +01:00
Sebastian Dröge
0400f7cc28
avviddec rebase
2014-01-03 16:27:11 +01:00
Sebastian Dröge
8fc3da62c1
avauddec: Stop using AVCODEC_MAX_AUDIO_FRAME_SIZE
...
And properly use the have_data variable. It's a boolean.
2014-01-03 16:26:10 +01:00
Sebastian Dröge
28d1c135bb
avdemux: Stop using r_frame_rate field
...
It was removed and quite meaningless anyway.
Use the average framerate instead.
2014-01-03 16:25:39 +01:00
Sebastian Dröge
53966ee304
avvidenc: Port to av_encode_video2()
...
av_encode_video() is deprecated and an ugly API anyway.
2014-01-03 16:24:28 +01:00
Todd Agulnick
4cc981de37
Some compiler warning fixes to satisfy XCode compiler
...
https://bugzilla.gnome.org/show_bug.cgi?id=720513
2013-12-16 16:54:21 +01:00
Mark Nauwelaerts
47d5c2b6d6
avviddec: improve buffer handling and semantics
...
... so as to focus on providing *a* buffer rather than one (too) tied
to a frame, in particular allowing multiple allocations related to a frame.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=697806
2013-12-07 12:11:34 +01:00
Mark Nauwelaerts
1aa253cd3b
avvidenc: plug input_state leak
2013-12-07 12:11:03 +01:00
Sebastian Dröge
423d9dcd71
avviddec: Use new gst_video_decoder_set_needs_format() API
2013-12-05 11:51:27 +01:00
Mark Nauwelaerts
039b608b24
avviddec: only use upstream framerate if really specified
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=704161
2013-12-02 20:21:34 +01:00
Mark Nauwelaerts
fa5865c0cd
avviddec: discard unused input frames
...
... to avoid these piling up in list of pending frames.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693772
2013-11-26 20:57:37 +01:00
Mark Nauwelaerts
2ec4008ea5
avviddec: really release frame at proper time
...
... by also removing it from the pending list of frames,
where it may still be in if it has never been submitted to _finish.
This could happen if is a decode-only frame, or in skipped decoding
situation, ...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=693772
2013-11-26 20:55:43 +01:00
Tim-Philipp Müller
4072c40b8e
avaudec: don't put bogus 0 channel-mask on output caps for mono audio
2013-11-04 23:20:17 +00:00
Tim-Philipp Müller
e9e31ebada
avaudenc: post better error message if experimental codecs don't work
...
https://bugzilla.gnome.org/show_bug.cgi?id=691617
2013-10-26 09:34:30 +01:00
Tim-Philipp Müller
49d0c480ae
codecmap: use TRUE for boolean fields in caps
2013-10-26 09:10:03 +01:00
Greg Rutz
13ffed87b1
avenc: Add compliance property
...
Add a new property to GstFFMpegVidEnc and GstFFMpegAudEnc to supply
the "strict compliance" value to AVCodecContext
https://bugzilla.gnome.org/show_bug.cgi?id=691617
2013-10-15 09:27:03 +02:00
Matthieu Bouron
4c93bffb21
avcodecmap: Make avdec_mjpeg requires a parsed input
...
Actually avdec_mjpeg does not deal well with incomplete buffers and try
to decode incomplete frames. A parser which will also acts as
an accumulator needs to be inserted before it.
https://bugzilla.gnome.org/show_bug.cgi?id=709352
2013-10-04 10:34:25 +02:00
Sebastian Dröge
5b76550168
avcodecmap: gst_value_can_intersect() does not do what you would think
...
Check for uniqueness differently now.
2013-10-02 13:59:04 +02:00
Sebastian Dröge
3e154333de
avcodecmap: Only append values to the video/audio format lists if we don't have them already
2013-10-02 12:57:36 +02:00
Sebastian Dröge
3c77754524
avviddec: Reset some more fields in ::stop()
2013-10-02 12:52:35 +02:00
Sebastian Dröge
5f5b6f465c
avviddec: Don't believe we're negotiated if negotiation failed
...
It can happen that negotiation fails during get_buffer(), but then
we don't retry later and never return NOT_NEGOTIATED upstream...
and instead run into assertions.
2013-10-02 12:52:11 +02:00
Sebastian Dröge
9febec71c0
avauddec: Don't believe we're negotiated if negotiation failed
...
It can happen that negotiation fails during get_buffer(), but then
we don't retry later and never return NOT_NEGOTIATED upstream...
and instead run into assertions.
https://bugzilla.gnome.org/show_bug.cgi?id=708769
2013-10-02 12:52:01 +02:00
Sebastian Dröge
9becd72b60
avenc: Choose 25 fps if we don't have any in the caps
...
Some encoders require a non-zero framerate to be configured properly
and just choosing something will make them not fail completely at
least.
https://bugzilla.gnome.org/show_bug.cgi?id=708732
2013-10-01 22:38:32 +02:00
Sebastian Dröge
2daefd69b8
avcodecmap: Fix boolean expression to fix uninitialized usage of variables
2013-09-28 20:39:15 +02:00
Sebastian Dröge
677eaa6692
avviddec: Initialize strides with the ones of avcodec_default_get_buffer() if we ever call it
...
https://bugzilla.gnome.org/show_bug.cgi?id=704769
2013-09-12 13:57:41 +02:00
Sebastian Dröge
1277540b8c
avviddec: Use the correct context for negotiation
...
During get_buffer() it can happen that the main context is not
updated yet and only the context passed here has the correct
width, height, etc.
2013-09-12 12:12:23 +02:00
Sebastian Dröge
faec0142e3
avviddec: Remember initially used stride and don't allow stride changes
...
libav does not allow stride changes currently, fall back to
non-direct rendering here:
https://bugzilla.gnome.org/show_bug.cgi?id=704769
https://bugzilla.libav.org/show_bug.cgi?id=556
2013-09-12 12:11:29 +02:00
Matej Knopp
94875a34d4
avcodecmap: Add support for TechSmith Screen Capture 2
...
https://bugzilla.gnome.org/show_bug.cgi?id=707878
2013-09-11 11:04:42 +02:00
Alex Ashley
61153a5ac2
avcodecmap: exclude avc3 stream format from AV_CODEC_ID_H264
...
As part of the changes to support the "avc3" variant of the ISO-BMFF
(see bug #702004 ) a new stream-format has been created
(video/x-h264, stream-format="avc3", alignment="au") that requires
changes to gstavcodecmap to exclude this format because avdec_h264
expects the SPS and PPS to be in the codec_data.
Amendment 2 of ISO/IEC 14496-15 (AVC file format) is defining a new
structure for fragmented MP4 called "avc3". The principal difference
between AVC1 and AVC3 is the location of the codec initialisation data
(e.g. SPS, PPS). In AVC1 this data is placed in the initial MOOV box
(moov.trak.mdia.minf.stbl.stsd.avc1) but in AVC3 this data goes in the
first sample of every fragment.
https://bugzilla.gnome.org/show_bug.cgi?id=702004
2013-09-04 13:34:00 +02:00
Josep Torra
690ca42e6e
codecmap: add mapping for MSS1 and MSS2
...
Windows Media Video Screen (WMV Screen) are video formats that
specilise in screencast content.
2013-08-30 15:00:30 +02:00
Sebastian Dröge
6571196fb8
libav: avcodec_close() also resets fields like the AVCodec
...
We need to reload the defaults for the codec after closing it,
otherwise we can't access codec information like the supported
sample rates and can crash.
https://bugzilla.gnome.org/show_bug.cgi?id=707040
2013-08-29 16:53:28 +02:00
Sebastian Dröge
966b53109b
avdemux: Add support for video/x-pva
...
https://bugzilla.gnome.org/show_bug.cgi?id=158719
2013-08-22 14:23:43 +02:00
Tim-Philipp Müller
ffe85cb0ef
avvidenc: propagate flow return values upstream in finish()
2013-08-21 13:47:15 +01:00
Sebastian Dröge
ae946bab1c
libav: Use new flush vfunc of video codec base classes and remove reset implementations
2013-08-15 15:51:52 +02:00
Hans de Goede
3d628e5676
avmux: Don't fail on commas in the libav muxer type names
...
https://bugzilla.gnome.org/show_bug.cgi?id=697512
2013-08-13 12:49:54 +02:00
Sebastian Dröge
461a46f17a
avdemux: Implement SEGMENT query
2013-07-29 12:19:38 +02:00
Edward Hervey
b1dccb17e9
avcodecmap: Demote WARNING to DEBUG
...
We cover all the needed formats already. The warning was just getting
in the way.
2013-07-24 12:22:04 +02:00
Olivier Crête
2556cb325a
avviddec: Initialise opaque from the start
...
https://bugzilla.gnome.org/show_bug.cgi?id=693581
2013-07-23 14:01:32 +02:00
Sebastian Dröge
9b2577ea2b
avdemux: Add support for group-id in the stream-start event
2013-07-23 09:59:43 +02:00
Arnaud Vrac
4a2054c6aa
avviddec: increase bottom padding for output frames
...
libav can write slightly after the plane end in some SIMD optimized
functions. The extra padding value needs to be at least 16+stride_align
for each plane, so just increase the bottom padding value for the output
frame.
https://bugzilla.gnome.org/show_bug.cgi?id=694299
2013-07-18 16:24:18 +02:00
Wim Taymans
5736513eb0
codecmap: realvideo does not have systemstream property
...
realvideo does not have the systemstream property and nobody ever sets it so
better remove it here to make it link to something else.
2013-06-25 14:03:07 +02:00
Thiago Santos
dce9d85695
avviddec: reset coded_width/_height before trying to open codec
...
If coded_width/_height is supplied, the codec might use it as the
width/height and if it is wrong can lead to segfaults or video
corruption.
This is specially harmful on renegotiation scenarios where the
resolution changed. There seems to be no specific function for reseting
the AV Context in libav, so just set it directly.
https://bugzilla.gnome.org/show_bug.cgi?id=702003
2013-06-11 09:00:49 -03:00
Tim-Philipp Müller
068be939cb
CODEC_ID_* -> AV_CODEC_ID_*
2013-05-06 23:56:22 +01:00
Tim-Philipp Müller
4dd36df4f7
codecmap: add mapping for WMA Lossless
...
Only 16 bits is supported for now though.
2013-05-06 23:53:01 +01:00
Sebastian Dröge
2d2c9b1aac
avviddec: Enable FRAME based threaded decoding if upstream is not live
...
If upstream is live we don't want FRAME based threaded decoding as
it adds latency.
2013-04-23 14:20:42 +02:00
Andoni Morales Alastruey
d3b125913f
libav: fix static linking
2013-04-15 16:00:03 +02:00
Sebastian Dröge
1caa7d6161
gst: Add better support for static plugins
2013-04-15 16:00:02 +02:00
Matej Knopp
710c92d830
av: Add WMV3 format for WMV 3 caps
2013-04-15 12:42:01 +02:00
Siva Chandran P
758d7bf7ea
avvidec: Make sure to store newly set caps after resetting the decoder
...
Otherwise we'll just set the to NULL while resetting the decoder and
don't have them available anymore later.
https://bugzilla.gnome.org/show_bug.cgi?id=697548
2013-04-09 20:44:23 +02:00
David Schleef
f656d9eaf7
Use %03u instead of %u in gst_pad_create_stream_id_printf()
2013-03-25 19:01:31 -07:00
Olivier Crête
597bf61ae7
swscale: Use 1.0-style video/x-raw caps
2013-03-01 15:11:15 -05:00
David Schleef
7f2f2fb31f
Add mapping for SMPTE 302m audio
2013-02-04 18:10:42 -08:00
Tim-Philipp Müller
b7ef1faab7
Revert "avdec_aac: disable for autoplugging until it gets fixed"
...
This reverts commit c5980dc52a
.
It's fixed now.
https://bugzilla.gnome.org/show_bug.cgi?id=690940
2013-01-26 12:52:29 +00:00
Tim-Philipp Müller
879cd02e26
avauddec: fix decoding of mono audio as well
...
https://bugzilla.gnome.org/show_bug.cgi?id=690940
2013-01-26 12:52:29 +00:00
Nicolas Dufresne
76423a4ba7
avauddec: fix garbled audio decoding in some cases
...
Calculate output buffer size based on the number of
samples, channels and bytes per sample. The buffer
size was calculated based on linesize, which may
be larger than what's required.
https://bugzilla.gnome.org/show_bug.cgi?id=690940
2013-01-26 12:23:14 +00:00
Tim-Philipp Müller
ed6561bee6
avenc_aac: downgrade to RANK_NONE until it gets fixed
...
Currently just fails to initialize.
https://bugzilla.gnome.org/show_bug.cgi?id=691617
2013-01-22 12:57:41 +00:00
Tim-Philipp Müller
c5980dc52a
avdec_aac: disable for autoplugging until it gets fixed
...
Currently outputs garbled audio. Use faad in the meantime.
https://bugzilla.gnome.org/show_bug.cgi?id=690940
2013-01-22 12:53:48 +00:00
Tim-Philipp Müller
3ad2d0b0e7
Disable libswscale/avvideoscale plugin until it works at least somewhat
...
It needs some fixing.
2013-01-17 23:57:00 +00:00
Sebastian Dröge
4221ae1022
av: Remove some unused variables and function declarations
2012-12-22 10:52:47 +01:00
Sebastian Dröge
08ca549627
av: Move gst_ffmpegdata functions to gstavprotocol.h too
...
Just for consistency.
2012-12-22 10:49:52 +01:00
Thijs Vermeir
bdd7406bc4
av: Fix redefinition of typedef 'GstFFMpegPipe'
...
Move declaration of pipe function to correct headers file
2012-12-21 23:16:44 +01:00
Sebastian Dröge
adfdfebc8c
av: Use correct printf format strings for gsize
2012-12-21 11:03:27 +01:00
Sebastian Dröge
022ab84288
av: Fix some memory leaks and misuse of libav API
2012-12-17 16:35:36 +01:00
Sebastian Dröge
d69dda0391
avauddec: Use a GstBuffer instead of a GstAdapter for collecting the output buffers
...
This might cause less memcpies as the GstMemories of the buffers
are just appended into a single buffer.
2012-12-17 15:58:37 +01:00
Thiago Santos
c445b614f9
avauddec: accumulate buffers from a single input to push it all at once
...
The base audio decoder wants a 1:1 mapping for input and output
buffers, so this decoder must accumulate data in an adapter and push
it all at once after all input has been processed.
https://bugzilla.gnome.org/show_bug.cgi?id=689565
2012-12-17 15:56:03 +01:00
Sebastian Dröge
faf985e8fb
avcodecmap: Only set "formats" field on raw audio/video caps
2012-12-17 13:42:13 +01:00
Sebastian Dröge
0ec5fea211
avcodecmap: Correctly convert GStreamer channel positions to libav channel mask
2012-12-17 13:41:42 +01:00
Sebastian Dröge
a6ede95de7
avcodecmap: Add more and correct restrictions for DV
...
https://bugzilla.gnome.org/show_bug.cgi?id=600895
2012-12-17 11:11:12 +01:00
Sebastian Dröge
959d9ce553
libav: Fix some compilation errors caused by circular includes
2012-12-12 17:36:33 +00:00
Wim Taymans
60ff639cd4
avcodec: set bits_per_coded_sample for G726
...
Use the bitrate and the samplerate to set the bits_per_coded_sample for G726
because the decoder needs this.
2012-12-12 17:04:00 +01:00
Sebastian Dröge
3837abb264
avauddec: Set frame defaults for the audio decoders too
2012-12-12 15:57:19 +00:00