diff --git a/ChangeLog b/ChangeLog index 963d780ec6..19cbb0e160 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2008-02-22 Sebastian Dröge + + * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_create): + Don't allocate and copy the data to a new place but instead + put the data from gmyth (which we own) into the buffers that + are passed downstream. + 2008-02-22 Sebastian Dröge * ext/timidity/gstwildmidi.c: diff --git a/ext/mythtv/gstmythtvsrc.c b/ext/mythtv/gstmythtvsrc.c index 0650e077fe..a136c272e2 100644 --- a/ext/mythtv/gstmythtvsrc.c +++ b/ext/mythtv/gstmythtvsrc.c @@ -405,10 +405,8 @@ gst_mythtv_src_create (GstPushSrc * psrc, GstBuffer ** outbuf) *outbuf = gst_buffer_new (); GST_BUFFER_SIZE (*outbuf) = buffer->len; - GST_BUFFER_MALLOCDATA (*outbuf) = g_malloc0 (GST_BUFFER_SIZE (*outbuf)); + GST_BUFFER_MALLOCDATA (*outbuf) = buffer->data; GST_BUFFER_DATA (*outbuf) = GST_BUFFER_MALLOCDATA (*outbuf); - g_memmove (GST_BUFFER_DATA ((*outbuf)), buffer->data, - GST_BUFFER_SIZE (*outbuf)); GST_BUFFER_OFFSET (*outbuf) = src->read_offset; GST_BUFFER_OFFSET_END (*outbuf) = src->read_offset + GST_BUFFER_SIZE (*outbuf); @@ -416,7 +414,7 @@ gst_mythtv_src_create (GstPushSrc * psrc, GstBuffer ** outbuf) src->read_offset += GST_BUFFER_SIZE (*outbuf); src->bytes_read += GST_BUFFER_SIZE (*outbuf); - g_byte_array_free (buffer, TRUE); + g_byte_array_free (buffer, FALSE); if (result == GMYTH_FILE_READ_NEXT_PROG_CHAIN) { GstPad *peer;