From: Sebastian Dröge Date: Sun, 28 Jul 2013 16:09:33 +0000 (+0200) Subject: flacenc: Fix handling of image tags X-Git-Tag: 1.19.3~509^2~5526 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c12c9e76326a8a9616d9c3221cb2ec5a5cacf7a9;p=platform%2Fupstream%2Fgstreamer.git flacenc: Fix handling of image tags The caps should be used to get the mimetype and there is only an info structure for the GstSample if the image-type is not NONE. --- diff --git a/ext/flac/gstflacenc.c b/ext/flac/gstflacenc.c index ad136df..311b5dc 100644 --- a/ext/flac/gstflacenc.c +++ b/ext/flac/gstflacenc.c @@ -615,6 +615,7 @@ gst_flac_enc_set_metadata (GstFlacEnc * flacenc, GstAudioInfo * info, if (n_images + n_preview_images > 0) { GstSample *sample; GstBuffer *buffer; + GstCaps *caps; const GstStructure *structure; GstTagImageType image_type = GST_TAG_IMAGE_TYPE_NONE; gint i; @@ -631,16 +632,22 @@ gst_flac_enc_set_metadata (GstFlacEnc * flacenc, GstAudioInfo * info, } structure = gst_sample_get_info (sample); - if (!structure) { - GST_ERROR_OBJECT (flacenc, "No image tag info"); + caps = gst_sample_get_caps (sample); + if (!caps) { + GST_FIXME_OBJECT (flacenc, "Image tag without caps"); + gst_sample_unref (sample); continue; } flacenc->meta[entries] = FLAC__metadata_object_new (FLAC__METADATA_TYPE_PICTURE); - gst_structure_get (structure, "image-type", GST_TYPE_TAG_IMAGE_TYPE, - &image_type, NULL); + if (structure) + gst_structure_get (structure, "image-type", GST_TYPE_TAG_IMAGE_TYPE, + &image_type, NULL); + else + image_type = GST_TAG_IMAGE_TYPE_NONE; + /* Convert to ID3v2 APIC image type */ if (image_type == GST_TAG_IMAGE_TYPE_NONE) image_type = (i < n_images) ? 0x00 : 0x01; @@ -655,6 +662,9 @@ gst_flac_enc_set_metadata (GstFlacEnc * flacenc, GstAudioInfo * info, /* FIXME: There's no way to set the picture type in libFLAC */ flacenc->meta[entries]->data.picture.type = image_type; + + structure = gst_caps_get_structure (caps, 0); + FLAC__metadata_object_picture_set_mime_type (flacenc->meta[entries], (char *) gst_structure_get_name (structure), TRUE);