tag: id3v2: Generate the image-type values correctly. Leave them out of the caps when outputting a "preview image" tag, since it ...

Original commit message from CVS:
* ext/flac/gstflacdec.c: (gst_flac_extract_picture_buffer):
* gst-libs/gst/tag/id3v2frames.c: (parse_picture_frame):
Generate the image-type values correctly. Leave them out of the caps
when outputting a "preview image" tag, since it only makes sense
to have one of those - the type is irrelevant.
* sys/sunaudio/gstsunaudiomixerctrl.c:
(gst_sunaudiomixer_ctrl_open):
If we can, mark the mixer multiple open when we use it, in case
(for some reason) the process wants to open it again elsewhere.
This commit is contained in:
Jan Schmidt 2008-01-11 21:08:59 +00:00 committed by Tim-Philipp Müller
parent 6d7fcfbcde
commit 904051e9d4

View file

@ -616,22 +616,29 @@ parse_picture_frame (ID3TagsWorking * work)
}
if (image && image_caps) {
if (pic_type > 0x14)
pic_type = GST_TAG_IMAGE_TYPE_UNDEFINED;
gst_structure_set (gst_caps_get_structure (image_caps, 0),
"image-type", GST_TYPE_TAG_IMAGE_TYPE,
(GstTagImageType) pic_type, NULL);
gst_buffer_set_caps (image, image_caps);
gst_caps_unref (image_caps);
if (pic_type == 0x01 || pic_type == 0x02) {
/* file icon of some sort */
/* file icon for preview. Don't add image-type to caps, since there
* is only supposed to be one of these. */
gst_buffer_set_caps (image, image_caps);
gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND,
GST_TAG_PREVIEW_IMAGE, image, NULL);
} else {
GstTagImageType gst_tag_pic_type = GST_TAG_IMAGE_TYPE_UNDEFINED;
/* Remap the ID3v2 APIC type our ImageType enum */
if (pic_type >= 0x3 && pic_type <= 0x14)
gst_tag_pic_type = (GstTagImageType) (pic_type - 2);
gst_structure_set (gst_caps_get_structure (image_caps, 0),
"image-type", GST_TYPE_TAG_IMAGE_TYPE, gst_tag_pic_type, NULL);
gst_buffer_set_caps (image, image_caps);
gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND,
GST_TAG_IMAGE, image, NULL);
}
gst_caps_unref (image_caps);
gst_buffer_unref (image);
}