summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Schmidt <thaytan@mad.scientist.com>2007-07-05 11:19:21 +0000
committerJan Schmidt <thaytan@mad.scientist.com>2007-07-05 11:19:21 +0000
commit5f02c0eb85d6eec2b9a9ce6914f5e994d98b555e (patch)
tree82c29bbc0c7da3b22256f0ba9e9ba8ff249a1a67
parentb0aa56c7960dfb529502fb39fbddf599d4a387b7 (diff)
ext/ffmpeg/gstffmpegenc.c: Fix the encoders by actually copying the encoded output data from the working area into th...
Original commit message from CVS: * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_chain_video), (gst_ffmpegenc_flush_buffers): Fix the encoders by actually copying the encoded output data from the working area into the output buffer. Fixes: #453135.
-rw-r--r--ChangeLog8
m---------common0
-rw-r--r--ext/ffmpeg/gstffmpegenc.c2
3 files changed, 10 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index e37f404..b33e80f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-07-05 Jan Schmidt <thaytan@mad.scientist.com>
+
+ * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_chain_video),
+ (gst_ffmpegenc_flush_buffers):
+ Fix the encoders by actually copying the encoded output data from the
+ working area into the output buffer.
+ Fixes: #453135.
+
2007-06-22 Jan Schmidt <thaytan@mad.scientist.com>
* ext/ffmpeg/gstffmpegenc.c: (ffmpegenc_setup_working_buf),
diff --git a/common b/common
-Subproject 14c5a68981278f642e4ca5fd5ca08554fc78b34
+Subproject 5167bced491ffe62251c62d6c5e7b9a7541e97e
diff --git a/ext/ffmpeg/gstffmpegenc.c b/ext/ffmpeg/gstffmpegenc.c
index fefd4a9..05f34fe 100644
--- a/ext/ffmpeg/gstffmpegenc.c
+++ b/ext/ffmpeg/gstffmpegenc.c
@@ -634,6 +634,7 @@ gst_ffmpegenc_chain_video (GstPad * pad, GstBuffer * inbuf)
GST_ERROR_SYSTEM);
outbuf = gst_buffer_new_and_alloc (ret_size);
+ memcpy (GST_BUFFER_DATA (outbuf), ffmpegenc->working_buf, ret_size);
GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (inbuf);
GST_BUFFER_DURATION (outbuf) = GST_BUFFER_DURATION (inbuf);
if (!ffmpegenc->context->coded_frame->key_frame)
@@ -778,6 +779,7 @@ gst_ffmpegenc_flush_buffers (GstFFMpegEnc * ffmpegenc, gboolean send)
inbuf = g_queue_pop_head (ffmpegenc->delay);
outbuf = gst_buffer_new_and_alloc (ret_size);
+ memcpy (GST_BUFFER_DATA (outbuf), ffmpegenc->working_buf, ret_size);
GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (inbuf);
GST_BUFFER_DURATION (outbuf) = GST_BUFFER_DURATION (inbuf);