diff options
author | Thiago Santos <thiago.sousa.santos@collabora.co.uk> | 2010-11-22 17:43:12 -0300 |
---|---|---|
committer | Thiago Santos <thiago.sousa.santos@collabora.co.uk> | 2010-11-22 17:43:53 -0300 |
commit | 7622328aab0aea21841a50e1fa4ab98b8d6389fa (patch) | |
tree | 5cd9fe9b126f3aff5c772fcbc7ecf821496f9bcf /gst/jpegformat | |
parent | 8d5cfc6511ca986f1a0511bfd28c5b4209aca803 (diff) | |
download | gstreamer-plugins-bad-7622328aab0aea21841a50e1fa4ab98b8d6389fa.tar.gz |
jpegparse: Small optimization on tags parsing
Optimize a little avoiding copying a taglist when parsing xmp/exif
data.
Diffstat (limited to 'gst/jpegformat')
-rw-r--r-- | gst/jpegformat/gstjpegparse.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/gst/jpegformat/gstjpegparse.c b/gst/jpegformat/gstjpegparse.c index 012c77f08..d22dd46ab 100644 --- a/gst/jpegformat/gstjpegparse.c +++ b/gst/jpegformat/gstjpegparse.c @@ -594,11 +594,13 @@ gst_jpeg_parse_read_header (GstJpegParse * parse, GstBuffer * buffer) if (tags) { GST_INFO_OBJECT (parse, "got exif metadata"); - if (!parse->priv->tags) - parse->priv->tags = gst_tag_list_new (); - gst_tag_list_insert (parse->priv->tags, tags, - GST_TAG_MERGE_REPLACE); - gst_tag_list_free (tags); + if (parse->priv->tags) { + gst_tag_list_insert (parse->priv->tags, tags, + GST_TAG_MERGE_REPLACE); + gst_tag_list_free (tags); + } else { + parse->priv->tags = tags; + } } GST_LOG_OBJECT (parse, "parsed marker %x: '%s' %u bytes", @@ -621,11 +623,13 @@ gst_jpeg_parse_read_header (GstJpegParse * parse, GstBuffer * buffer) if (tags) { GST_INFO_OBJECT (parse, "got xmp metadata"); - if (!parse->priv->tags) - parse->priv->tags = gst_tag_list_new (); - gst_tag_list_insert (parse->priv->tags, tags, - GST_TAG_MERGE_REPLACE); - gst_tag_list_free (tags); + if (parse->priv->tags) { + gst_tag_list_insert (parse->priv->tags, tags, + GST_TAG_MERGE_REPLACE); + gst_tag_list_free (tags); + } else { + parse->priv->tags = tags; + } } GST_LOG_OBJECT (parse, "parsed marker %x: '%s' %u bytes", |