gst/mpegtsmux/mpegtsmux_aac.c: Allocate a fixed size buffer on the stack instead of using malloc().

Original commit message from CVS:
* gst/mpegtsmux/mpegtsmux_aac.c: (mpegtsmux_prepare_aac):
Allocate a fixed size buffer on the stack instead of using malloc().
* gst/mpegtsmux/tsmux/tsmux.c: (tsmux_new), (tsmux_free),
(tsmux_program_new), (tsmux_program_free):
* gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new),
(tsmux_stream_free), (tsmux_stream_consume),
(tsmux_stream_add_data):
Use GSlice.
This commit is contained in:
Sebastian Dröge 2008-09-01 17:49:59 +00:00
parent b24d38315f
commit 7ac077828f
4 changed files with 21 additions and 10 deletions

View file

@ -1,3 +1,15 @@
2008-09-01 Sebastian Dröge <sebastian.droege@collabora.co.uk>
* gst/mpegtsmux/mpegtsmux_aac.c: (mpegtsmux_prepare_aac):
Allocate a fixed size buffer on the stack instead of using malloc().
* gst/mpegtsmux/tsmux/tsmux.c: (tsmux_new), (tsmux_free),
(tsmux_program_new), (tsmux_program_free):
* gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new),
(tsmux_stream_free), (tsmux_stream_consume),
(tsmux_stream_add_data):
Use GSlice.
2008-09-01 Sebastian Dröge <sebastian.droege@collabora.co.uk> 2008-09-01 Sebastian Dröge <sebastian.droege@collabora.co.uk>
* gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream): * gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream):

View file

@ -93,7 +93,7 @@ GST_DEBUG_CATEGORY_EXTERN (mpegtsmux_debug);
GstBuffer * GstBuffer *
mpegtsmux_prepare_aac (GstBuffer * buf, MpegTsPadData * data, MpegTsMux * mux) mpegtsmux_prepare_aac (GstBuffer * buf, MpegTsPadData * data, MpegTsMux * mux)
{ {
guint8 *adts_header = g_malloc0 (7); guint8 adts_header[7] = { 0, };
GstBuffer *out_buf = gst_buffer_new_and_alloc (GST_BUFFER_SIZE (buf) + 7); GstBuffer *out_buf = gst_buffer_new_and_alloc (GST_BUFFER_SIZE (buf) + 7);
gsize out_offset = 0; gsize out_offset = 0;
guint8 rate_idx = 0, channels = 0, obj_type = 0; guint8 rate_idx = 0, channels = 0, obj_type = 0;
@ -140,7 +140,6 @@ mpegtsmux_prepare_aac (GstBuffer * buf, MpegTsPadData * data, MpegTsMux * mux)
/* Insert ADTS header */ /* Insert ADTS header */
memcpy (GST_BUFFER_DATA (out_buf) + out_offset, adts_header, 7); memcpy (GST_BUFFER_DATA (out_buf) + out_offset, adts_header, 7);
g_free (adts_header);
out_offset += 7; out_offset += 7;
/* Now copy complete frame */ /* Now copy complete frame */

View file

@ -130,7 +130,7 @@ tsmux_new ()
{ {
TsMux *mux; TsMux *mux;
mux = g_new0 (TsMux, 1); mux = g_slice_new0 (TsMux);
mux->transport_id = TSMUX_DEFAULT_TS_ID; mux->transport_id = TSMUX_DEFAULT_TS_ID;
@ -229,7 +229,7 @@ tsmux_free (TsMux * mux)
} }
g_list_free (mux->streams); g_list_free (mux->streams);
g_free (mux); g_slice_free (TsMux, mux);
} }
/** /**
@ -252,7 +252,7 @@ tsmux_program_new (TsMux * mux)
if (mux->nb_programs == TSMUX_MAX_PROGRAMS) if (mux->nb_programs == TSMUX_MAX_PROGRAMS)
return NULL; return NULL;
program = g_new0 (TsMuxProgram, 1); program = g_slice_new0 (TsMuxProgram);
program->pmt_changed = TRUE; program->pmt_changed = TRUE;
program->last_pmt_ts = -1; program->last_pmt_ts = -1;
@ -811,7 +811,7 @@ tsmux_program_free (TsMuxProgram * program)
g_return_if_fail (program != NULL); g_return_if_fail (program != NULL);
g_array_free (program->streams, TRUE); g_array_free (program->streams, TRUE);
g_free (program); g_slice_free (TsMuxProgram, program);
} }
static gboolean static gboolean

View file

@ -115,7 +115,7 @@ struct TsMuxStreamBuffer
TsMuxStream * TsMuxStream *
tsmux_stream_new (guint16 pid, TsMuxStreamType stream_type) tsmux_stream_new (guint16 pid, TsMuxStreamType stream_type)
{ {
TsMuxStream *stream = g_new0 (TsMuxStream, 1); TsMuxStream *stream = g_slice_new0 (TsMuxStream);
stream->state = TSMUX_STREAM_STATE_HEADER; stream->state = TSMUX_STREAM_STATE_HEADER;
stream->pi.pid = pid; stream->pi.pid = pid;
@ -193,7 +193,7 @@ tsmux_stream_free (TsMuxStream * stream)
{ {
g_return_if_fail (stream != NULL); g_return_if_fail (stream != NULL);
g_free (stream); g_slice_free (TsMuxStream, stream);
} }
/** /**
@ -243,7 +243,7 @@ tsmux_stream_consume (TsMuxStream * stream, guint len)
stream->cur_buffer->user_data); stream->cur_buffer->user_data);
} }
g_free (stream->cur_buffer); g_slice_free (TsMuxStreamBuffer, stream->cur_buffer);
stream->cur_buffer = NULL; stream->cur_buffer = NULL;
/* FIXME: As a hack, for unbounded streams, start a new PES packet for each /* FIXME: As a hack, for unbounded streams, start a new PES packet for each
* incoming packet we receive. This assumes that incoming data is * incoming packet we receive. This assumes that incoming data is
@ -571,7 +571,7 @@ tsmux_stream_add_data (TsMuxStream * stream, guint8 * data, guint len,
g_return_if_fail (stream != NULL); g_return_if_fail (stream != NULL);
packet = g_new (TsMuxStreamBuffer, 1); packet = g_slice_new (TsMuxStreamBuffer);
packet->data = data; packet->data = data;
packet->size = len; packet->size = len;
packet->user_data = user_data; packet->user_data = user_data;