From 208bec067fa70148d6e4f61c047a97b6a81397e8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Sebastian=20Dr=C3=B6ge?= Date: Fri, 17 Mar 2023 16:48:51 +0200 Subject: [PATCH] flacenc: Fix mapping of GStreamer image tag type to FLAC image tag type These enums are not compatible so just casting them does not work. Part-of: --- subprojects/gst-plugins-good/ext/flac/gstflacenc.c | 84 +++++++++++++++++++++- 1 file changed, 83 insertions(+), 1 deletion(-) diff --git a/subprojects/gst-plugins-good/ext/flac/gstflacenc.c b/subprojects/gst-plugins-good/ext/flac/gstflacenc.c index 1993e7d..ce91231 100644 --- a/subprojects/gst-plugins-good/ext/flac/gstflacenc.c +++ b/subprojects/gst-plugins-good/ext/flac/gstflacenc.c @@ -687,7 +687,89 @@ gst_flac_enc_set_metadata (GstFlacEnc * flacenc, GstAudioInfo * info, gst_buffer_unmap (buffer, &map); GST_LOG_OBJECT (flacenc, "Setting picture type %d", image_type); - flacenc->meta[entries]->data.picture.type = image_type; + switch (image_type) { + case GST_TAG_IMAGE_TYPE_NONE: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_OTHER; + break; + case GST_TAG_IMAGE_TYPE_FRONT_COVER: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_FRONT_COVER; + break; + case GST_TAG_IMAGE_TYPE_BACK_COVER: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_BACK_COVER; + break; + case GST_TAG_IMAGE_TYPE_LEAFLET_PAGE: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_LEAFLET_PAGE; + break; + case GST_TAG_IMAGE_TYPE_MEDIUM: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_MEDIA; + break; + case GST_TAG_IMAGE_TYPE_LEAD_ARTIST: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_LEAD_ARTIST; + break; + case GST_TAG_IMAGE_TYPE_ARTIST: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_ARTIST; + break; + case GST_TAG_IMAGE_TYPE_CONDUCTOR: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_CONDUCTOR; + break; + case GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_BAND; + break; + case GST_TAG_IMAGE_TYPE_COMPOSER: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_COMPOSER; + break; + case GST_TAG_IMAGE_TYPE_LYRICIST: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_LYRICIST; + break; + case GST_TAG_IMAGE_TYPE_RECORDING_LOCATION: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_RECORDING_LOCATION; + break; + case GST_TAG_IMAGE_TYPE_DURING_RECORDING: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_RECORDING; + break; + case GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_DURING_PERFORMANCE; + break; + case GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_VIDEO_SCREEN_CAPTURE; + break; + case GST_TAG_IMAGE_TYPE_FISH: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_FISH; + break; + case GST_TAG_IMAGE_TYPE_ILLUSTRATION: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_ILLUSTRATION; + break; + case GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_BAND_LOGOTYPE; + break; + case GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_PUBLISHER_LOGOTYPE; + break; + case GST_TAG_IMAGE_TYPE_UNDEFINED: + default: + flacenc->meta[entries]->data.picture.type = + FLAC__STREAM_METADATA_PICTURE_TYPE_UNDEFINED; + break; + } if (width > 0 && height > 0) { flacenc->meta[entries]->data.picture.width = width; -- 2.7.4