From: <th...@ke...> - 2008-01-11 21:09:12
|
CVS Root: /cvs/gstreamer Module: gst-plugins-good Changes by: thaytan Date: Fri Jan 11 2008 21:09:14 UTC Log message: * ext/flac/gstflacdec.c: (gst_flac_extract_picture_buffer): * gst/id3demux/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. Modified files: . : ChangeLog ext/flac : gstflacdec.c gst/id3demux : id3v2frames.c sys/sunaudio : gstsunaudiomixerctrl.c Links: http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ChangeLog.diff?r1=1.3246&r2=1.3247 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/ext/flac/gstflacdec.c.diff?r1=1.87&r2=1.88 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/gst/id3demux/id3v2frames.c.diff?r1=1.34&r2=1.35 http://freedesktop.org/cgi-bin/viewcvs.cgi/gstreamer/gst-plugins-good/sys/sunaudio/gstsunaudiomixerctrl.c.diff?r1=1.9&r2=1.10 ====Begin Diffs==== Index: ChangeLog =================================================================== RCS file: /cvs/gstreamer/gst-plugins-good/ChangeLog,v retrieving revision 1.3246 retrieving revision 1.3247 diff -u -d -r1.3246 -r1.3247 --- ChangeLog 11 Jan 2008 17:21:28 -0000 1.3246 +++ ChangeLog 11 Jan 2008 21:08:58 -0000 1.3247 @@ -1,3 +1,16 @@ +2008-01-11 Jan Schmidt <Jan...@su...> + + * ext/flac/gstflacdec.c: (gst_flac_extract_picture_buffer): + * gst/id3demux/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. 2008-01-11 Wim Taymans <wim...@co...> Patch by: Olivier Crete <tester at tester dot ca> Index: gstflacdec.c RCS file: /cvs/gstreamer/gst-plugins-good/ext/flac/gstflacdec.c,v retrieving revision 1.87 retrieving revision 1.88 diff -u -d -r1.87 -r1.88 --- gstflacdec.c 3 Jan 2008 12:26:03 -0000 1.87 +++ gstflacdec.c 11 Jan 2008 21:08:59 -0000 1.88 @@ -663,28 +663,27 @@ g_free (mime_type); if (image && image_caps) { - GstTagList *tags; - FLAC__StreamMetadata_Picture_Type pic_type = picture.type; - - tags = gst_tag_list_new (); - if (pic_type > 20) { - 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); + GstTagList *tags = gst_tag_list_new (); - gst_buffer_set_caps (image, image_caps); - gst_caps_unref (image_caps); - if (pic_type == 1 || pic_type == 2) { - /* file icon of some sort */ + if (picture.type == 1 || picture.type == 2) { + /* file icon for preview. Don't add image-type to caps, since it only + * makes sense for there to be one of these. */ + gst_buffer_set_caps (image, image_caps); gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_PREVIEW_IMAGE, image, NULL); } else { + GstTagImageType gst_tag_pic_type = GST_TAG_IMAGE_TYPE_UNDEFINED; + if (picture.type >= 0x03 && picture.type <= 0x14) + gst_tag_pic_type = (GstTagImageType) ((gint) (picture.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_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_IMAGE, image, NULL); } + gst_caps_unref (image_caps); gst_buffer_unref (image); /* Announce discovered tags */ Index: id3v2frames.c RCS file: /cvs/gstreamer/gst-plugins-good/gst/id3demux/id3v2frames.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -d -r1.34 -r1.35 --- id3v2frames.c 9 Jan 2008 15:20:19 -0000 1.34 +++ id3v2frames.c 11 Jan 2008 21:08:59 -0000 1.35 @@ -616,22 +616,29 @@ } - if (pic_type > 0x14) if (pic_type == 0x01 || pic_type == 0x02) { + /* file icon for preview. Don't add image-type to caps, since there + * is only supposed to be one of these. */ gst_tag_list_add (work->tags, GST_TAG_MERGE_APPEND, + /* Remap the ID3v2 APIC type our ImageType enum */ + if (pic_type >= 0x3 && pic_type <= 0x14) + gst_tag_pic_type = (GstTagImageType) (pic_type - 2); GST_TAG_IMAGE, image, NULL); Index: gstsunaudiomixerctrl.c RCS file: /cvs/gstreamer/gst-plugins-good/sys/sunaudio/gstsunaudiomixerctrl.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- gstsunaudiomixerctrl.c 16 Apr 2007 21:29:40 -0000 1.9 +++ gstsunaudiomixerctrl.c 11 Jan 2008 21:08:59 -0000 1.10 @@ -29,6 +29,7 @@ #include <string.h> #include <errno.h> #include <sys/ioctl.h> +#include <sys/mixer.h> #include <gst/gst-i18n-plugin.h> @@ -60,6 +61,8 @@ return FALSE; + /* Try to set the multiple open flag if we can, but ignore errors */ + ioctl (mixer->mixer_fd, AUDIO_MIXER_MULTIPLE_OPEN); mixer->mixer_fd = fd; return TRUE; |