mpegtspacketizer: Use gst_structure_*_take_value where applicable

Saves copying/freeing data
This commit is contained in:
Edward Hervey 2012-06-29 17:53:30 +02:00
parent 5de6fd1ff8
commit 4d4d2f6eb0

View file

@ -809,8 +809,7 @@ mpegts_packetizer_parse_pat (MpegTSPacketizer2 * packetizer,
g_value_unset (&value); g_value_unset (&value);
} }
gst_structure_id_set_value (pat_info, QUARK_PROGRAMS, &entries); gst_structure_id_take_value (pat_info, QUARK_PROGRAMS, &entries);
g_value_unset (&entries);
if (data != end - 4) { if (data != end - 4) {
/* FIXME: check the CRC before parsing the packet */ /* FIXME: check the CRC before parsing the packet */
@ -1017,8 +1016,7 @@ mpegts_packetizer_parse_pmt (MpegTSPacketizer2 * packetizer,
g_value_unset (&stream_value); g_value_unset (&stream_value);
} }
gst_structure_id_set_value (pmt, QUARK_STREAMS, &programs); gst_structure_id_take_value (pmt, QUARK_STREAMS, &programs);
g_value_unset (&programs);
g_assert (data == end - 4); g_assert (data == end - 4);
@ -1527,9 +1525,8 @@ mpegts_packetizer_parse_nit (MpegTSPacketizer2 * packetizer,
g_value_unset (&channel_value); g_value_unset (&channel_value);
current_pos += 2; current_pos += 2;
} }
gst_structure_id_set_value (transport, QUARK_CHANNELS, gst_structure_id_take_value (transport, QUARK_CHANNELS,
&channel_numbers); &channel_numbers);
g_value_unset (&channel_numbers);
} }
if ((delivery = gst_mpeg_descriptor_find (&mpegdescriptor, if ((delivery = gst_mpeg_descriptor_find (&mpegdescriptor,
DESC_DVB_FREQUENCY_LIST))) { DESC_DVB_FREQUENCY_LIST))) {
@ -1598,8 +1595,7 @@ mpegts_packetizer_parse_nit (MpegTSPacketizer2 * packetizer,
break; break;
} }
gst_structure_set_value (transport, fieldname, &frequencies); gst_structure_take_value (transport, fieldname, &frequencies);
g_value_unset (&frequencies);
} }
} }
@ -1630,8 +1626,7 @@ mpegts_packetizer_parse_nit (MpegTSPacketizer2 * packetizer,
goto error; goto error;
} }
gst_structure_id_set_value (nit, QUARK_TRANSPORTS, &transports); gst_structure_id_take_value (nit, QUARK_TRANSPORTS, &transports);
g_value_unset (&transports);
GST_DEBUG ("NIT %" GST_PTR_FORMAT, nit); GST_DEBUG ("NIT %" GST_PTR_FORMAT, nit);
@ -1827,8 +1822,7 @@ mpegts_packetizer_parse_sdt (MpegTSPacketizer2 * packetizer,
goto error; goto error;
} }
gst_structure_id_set_value (sdt, QUARK_SERVICES, &services); gst_structure_id_take_value (sdt, QUARK_SERVICES, &services);
g_value_unset (&services);
return sdt; return sdt;
@ -2291,8 +2285,7 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer2 * packetizer,
component = NULL; component = NULL;
} }
} }
gst_structure_set_value (event, "components", &components); gst_structure_take_value (event, "components", &components);
g_value_unset (&components);
g_array_free (component_descriptors, TRUE); g_array_free (component_descriptors, TRUE);
} }
@ -2320,8 +2313,7 @@ mpegts_packetizer_parse_eit (MpegTSPacketizer2 * packetizer,
goto error; goto error;
} }
gst_structure_id_set_value (eit, QUARK_EVENTS, &events); gst_structure_id_take_value (eit, QUARK_EVENTS, &events);
g_value_unset (&events);
GST_DEBUG ("EIT %" GST_PTR_FORMAT, eit); GST_DEBUG ("EIT %" GST_PTR_FORMAT, eit);