mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-04-26 06:54:49 +00:00
ext/ffmpeg/gstffmpegenc.c: Unref after encode (#162905).
Original commit message from CVS: * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_chain_video): Unref after encode (#162905).
This commit is contained in:
parent
006e7999fd
commit
b7411c3e84
2 changed files with 8 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2005-01-16 Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
||||||
|
|
||||||
|
* ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_chain_video):
|
||||||
|
Unref after encode (#162905).
|
||||||
|
|
||||||
2005-01-16 Luca Ognibene <luogni@tin.it>
|
2005-01-16 Luca Ognibene <luogni@tin.it>
|
||||||
|
|
||||||
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
Reviewed by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
|
||||||
|
|
|
@ -458,15 +458,13 @@ gst_ffmpegenc_link (GstPad * pad, const GstCaps * caps)
|
||||||
static void
|
static void
|
||||||
gst_ffmpegenc_chain_video (GstPad * pad, GstData * _data)
|
gst_ffmpegenc_chain_video (GstPad * pad, GstData * _data)
|
||||||
{
|
{
|
||||||
GstBuffer *inbuf = GST_BUFFER (_data);
|
|
||||||
GstFFMpegEnc *ffmpegenc = (GstFFMpegEnc *) (gst_pad_get_parent (pad));
|
GstFFMpegEnc *ffmpegenc = (GstFFMpegEnc *) (gst_pad_get_parent (pad));
|
||||||
|
GstBuffer *inbuf = GST_BUFFER (_data), *old_cache = ffmpegenc->cache;
|
||||||
GstFFMpegEncClass *oclass =
|
GstFFMpegEncClass *oclass =
|
||||||
(GstFFMpegEncClass *) (G_OBJECT_GET_CLASS (ffmpegenc));
|
(GstFFMpegEncClass *) (G_OBJECT_GET_CLASS (ffmpegenc));
|
||||||
gint ret_size = 0;
|
gint ret_size = 0;
|
||||||
|
|
||||||
/* FIXME: events (discont (flush!) and eos (close down) etc.) */
|
/* FIXME: events (discont (flush!) and eos (close down) etc.) */
|
||||||
if (NULL != ffmpegenc->cache)
|
|
||||||
gst_buffer_unref (ffmpegenc->cache);
|
|
||||||
|
|
||||||
ffmpegenc->cache = gst_buffer_new_and_alloc (ffmpegenc->buffer_size);
|
ffmpegenc->cache = gst_buffer_new_and_alloc (ffmpegenc->buffer_size);
|
||||||
|
|
||||||
|
@ -481,6 +479,8 @@ gst_ffmpegenc_chain_video (GstPad * pad, GstData * _data)
|
||||||
ret_size = avcodec_encode_video (ffmpegenc->context,
|
ret_size = avcodec_encode_video (ffmpegenc->context,
|
||||||
GST_BUFFER_DATA (ffmpegenc->cache),
|
GST_BUFFER_DATA (ffmpegenc->cache),
|
||||||
GST_BUFFER_MAXSIZE (ffmpegenc->cache), ffmpegenc->picture);
|
GST_BUFFER_MAXSIZE (ffmpegenc->cache), ffmpegenc->picture);
|
||||||
|
if (old_cache)
|
||||||
|
gst_buffer_unref (old_cache);
|
||||||
|
|
||||||
if (ret_size < 0) {
|
if (ret_size < 0) {
|
||||||
GST_ELEMENT_ERROR (ffmpegenc, LIBRARY, ENCODE, (NULL),
|
GST_ELEMENT_ERROR (ffmpegenc, LIBRARY, ENCODE, (NULL),
|
||||||
|
|
Loading…
Reference in a new issue