summaryrefslogtreecommitdiff
path: root/gst/jpegformat
diff options
context:
space:
mode:
authorThiago Santos <thiago.sousa.santos@collabora.co.uk>2010-11-22 17:43:12 -0300
committerThiago Santos <thiago.sousa.santos@collabora.co.uk>2010-11-22 17:43:53 -0300
commit7622328aab0aea21841a50e1fa4ab98b8d6389fa (patch)
tree5cd9fe9b126f3aff5c772fcbc7ecf821496f9bcf /gst/jpegformat
parent8d5cfc6511ca986f1a0511bfd28c5b4209aca803 (diff)
downloadgstreamer-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.c24
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",