Commit graph

160 commits

Author SHA1 Message Date
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