[rygel-gst-0-10-plugins] More cleanup



commit 735b3e6e6e56ce8dddb2310220dfe645590e0b38
Author: Murray Cumming <murrayc murrayc com>
Date:   Tue Jan 29 10:54:49 2013 +0100

    More cleanup

 src/media-export/rygel-media-export-item-factory.c |  638 ++++++--------------
 1 files changed, 172 insertions(+), 466 deletions(-)
---
diff --git a/src/media-export/rygel-media-export-item-factory.c b/src/media-export/rygel-media-export-item-factory.c
index a2b9743..7613585 100644
--- a/src/media-export/rygel-media-export-item-factory.c
+++ b/src/media-export/rygel-media-export-item-factory.c
@@ -27,8 +27,6 @@
 #include "rygel-media-export-item-factory.h"
 #include "rygel-media-export-jpeg-writer.h"
 
-#define _gst_structure_free0(var) ((var == NULL) ? NULL : (var = (gst_structure_free (var), NULL)))
-
 RygelMediaItem*
 rygel_media_export_item_factory_create_simple (RygelMediaContainer *parent, GFile *file, GFileInfo *info) {
   RygelMediaItem *item = NULL;
@@ -101,20 +99,26 @@ rygel_media_export_item_factory_create_from_info (RygelMediaContainer *parent, G
     result = NULL;
   } else if (!audio_streams &&
     gst_discoverer_video_info_is_image ((GstDiscovererVideoInfo*) video_streams->data)) {
-    RygelMediaExportPhotoItem *item = rygel_media_export_photo_item_new (id, parent, "", RYGEL_PHOTO_ITEM_UPNP_CLASS);
-    result = rygel_media_export_item_factory_fill_photo_item (item, file, dlna_info, (GstDiscovererVideoInfo*) video_streams->data, file_info);
+    RygelMediaExportPhotoItem *item = rygel_media_export_photo_item_new (id,
+      parent, "", RYGEL_PHOTO_ITEM_UPNP_CLASS);
+    result = rygel_media_export_item_factory_fill_photo_item (item, file,
+      dlna_info, (GstDiscovererVideoInfo*) video_streams->data, file_info);
   } else if (video_streams) {
-    RygelMediaExportVideoItem *item = rygel_media_export_video_item_new (id, parent, "", RYGEL_VIDEO_ITEM_UPNP_CLASS);
+    RygelMediaExportVideoItem *item = rygel_media_export_video_item_new (id,
+      parent, "", RYGEL_VIDEO_ITEM_UPNP_CLASS);
 
     GstDiscovererAudioInfo *audio_info = NULL;
     if(audio_streams) {
       audio_info = (GstDiscovererAudioInfo*) audio_streams->data;
     }
 
-    result = rygel_media_export_item_factory_fill_video_item (item, file, dlna_info, (GstDiscovererVideoInfo*) video_streams->data, audio_info, file_info);
+    result = rygel_media_export_item_factory_fill_video_item (item, file,
+      dlna_info, (GstDiscovererVideoInfo*) video_streams->data, audio_info, file_info);
   } else if (audio_streams) {
-    RygelMediaExportMusicItem *item = rygel_media_export_music_item_new (id, parent, "", RYGEL_MUSIC_ITEM_UPNP_CLASS);
-    result = rygel_media_export_item_factory_fill_music_item (item, file, dlna_info, (GstDiscovererAudioInfo*) audio_streams->data, file_info);
+    RygelMediaExportMusicItem *item = rygel_media_export_music_item_new (id,
+      parent, "", RYGEL_MUSIC_ITEM_UPNP_CLASS);
+    result = rygel_media_export_item_factory_fill_music_item (item, file,
+      dlna_info, (GstDiscovererAudioInfo*) audio_streams->data, file_info);
   } else {
     result = NULL;
   }
@@ -131,7 +135,8 @@ rygel_media_export_item_factory_create_from_info (RygelMediaContainer *parent, G
 }
 
 
-void rygel_media_export_item_factory_fill_audio_item (RygelAudioItem *item, GUPnPDLNAInformation *dlna_info, GstDiscovererAudioInfo *audio_info) {
+void
+rygel_media_export_item_factory_fill_audio_item (RygelAudioItem *item, GUPnPDLNAInformation *dlna_info, GstDiscovererAudioInfo *audio_info) {
   g_return_if_fail (item);
   g_return_if_fail (dlna_info);
 
@@ -143,24 +148,26 @@ void rygel_media_export_item_factory_fill_audio_item (RygelAudioItem *item, GUPn
     rygel_audio_item_set_duration (item, (glong) (-1));
   }
 
-  if (audio_info) {
-    const GstTagList *tags = gst_discoverer_stream_info_get_tags ((GstDiscovererStreamInfo*) audio_info);
-    if (tags) {
-      guint tmp = 0U;
-      gst_tag_list_get_uint (tags, GST_TAG_BITRATE, &tmp);
+  if (!audio_info)
+    return;
 
-      rygel_audio_item_set_bitrate (item, (gint) tmp / 8);
-    }
+  const GstTagList *tags = gst_discoverer_stream_info_get_tags ((GstDiscovererStreamInfo*) audio_info);
+  if (tags) {
+    guint tmp = 0U;
+    gst_tag_list_get_uint (tags, GST_TAG_BITRATE, &tmp);
 
-    rygel_audio_item_set_channels (item,
-      (gint) gst_discoverer_audio_info_get_channels (audio_info)); 
-    rygel_audio_item_set_sample_freq (item,
-      (gint) gst_discoverer_audio_info_get_sample_rate (audio_info));
+    rygel_audio_item_set_bitrate (item, (gint) tmp / 8);
   }
+
+  rygel_audio_item_set_channels (item,
+    (gint) gst_discoverer_audio_info_get_channels (audio_info)); 
+  rygel_audio_item_set_sample_freq (item,
+    (gint) gst_discoverer_audio_info_get_sample_rate (audio_info));
 }
 
 
-RygelMediaItem *rygel_media_export_item_factory_fill_video_item (RygelMediaExportVideoItem *item, GFile *file, GUPnPDLNAInformation *dlna_info, GstDiscovererVideoInfo *video_info, GstDiscovererAudioInfo *audio_info, GFileInfo *file_info) {
+RygelMediaItem*
+rygel_media_export_item_factory_fill_video_item (RygelMediaExportVideoItem *item, GFile *file, GUPnPDLNAInformation *dlna_info, GstDiscovererVideoInfo *video_info, GstDiscovererAudioInfo *audio_info, GFileInfo *file_info) {
   g_return_val_if_fail (item, NULL);
   g_return_val_if_fail (file, NULL);
   g_return_val_if_fail (dlna_info, NULL);
@@ -183,481 +190,180 @@ RygelMediaItem *rygel_media_export_item_factory_fill_video_item (RygelMediaExpor
 }
 
 
-RygelMediaItem *rygel_media_export_item_factory_fill_photo_item (RygelMediaExportPhotoItem *item, GFile *file, GUPnPDLNAInformation *dlna_info, GstDiscovererVideoInfo *video_info, GFileInfo *file_info) {
-  RygelMediaItem *result = NULL;
-  RygelMediaExportPhotoItem *_tmp0_;
-  GFile *_tmp1_;
-  GUPnPDLNAInformation *_tmp2_;
-  GFileInfo *_tmp3_;
-  RygelMediaExportPhotoItem *_tmp4_;
-  GstDiscovererVideoInfo *_tmp5_;
-  guint _tmp6_ = 0U;
-  RygelMediaExportPhotoItem *_tmp7_;
-  GstDiscovererVideoInfo *_tmp8_;
-  guint _tmp9_ = 0U;
-  GstDiscovererVideoInfo *_tmp10_;
-  guint _tmp11_ = 0U;
-  gint color_depth;
-  gint _tmp12_ = 0;
-  gint _tmp13_;
-  RygelMediaExportPhotoItem *_tmp15_;
-  gint _tmp16_;
-  RygelMediaExportPhotoItem *_tmp17_;
-  RygelMediaItem *_tmp18_;
+RygelMediaItem*
+rygel_media_export_item_factory_fill_photo_item (RygelMediaExportPhotoItem *item, GFile *file, GUPnPDLNAInformation *dlna_info, GstDiscovererVideoInfo *video_info, GFileInfo *file_info) {
   g_return_val_if_fail (item, NULL);
   g_return_val_if_fail (file, NULL);
   g_return_val_if_fail (dlna_info, NULL);
   g_return_val_if_fail (video_info, NULL);
   g_return_val_if_fail (file_info, NULL);
-  _tmp0_ = item;
-  _tmp1_ = file;
-  _tmp2_ = dlna_info;
-  _tmp3_ = file_info;
-  rygel_media_export_item_factory_fill_media_item ((RygelMediaItem*) _tmp0_, _tmp1_, _tmp2_, _tmp3_);
-  _tmp4_ = item;
-  _tmp5_ = video_info;
-  _tmp6_ = gst_discoverer_video_info_get_width (_tmp5_);
-  rygel_visual_item_set_width ((RygelVisualItem*) _tmp4_, (gint) _tmp6_);
-  _tmp7_ = item;
-  _tmp8_ = video_info;
-  _tmp9_ = gst_discoverer_video_info_get_height (_tmp8_);
-  rygel_visual_item_set_height ((RygelVisualItem*) _tmp7_, (gint) _tmp9_);
-  _tmp10_ = video_info;
-  _tmp11_ = gst_discoverer_video_info_get_depth (_tmp10_);
-  color_depth = (gint) _tmp11_;
-  _tmp13_ = color_depth;
-  if (_tmp13_ == 0) {
-    _tmp12_ = -1;
-  } else {
-    gint _tmp14_;
-    _tmp14_ = color_depth;
-    _tmp12_ = _tmp14_;
-  }
-  _tmp15_ = item;
-  _tmp16_ = _tmp12_;
-  rygel_visual_item_set_color_depth ((RygelVisualItem*) _tmp15_, _tmp16_);
-  _tmp17_ = item;
-  _tmp18_ = g_object_ref ((RygelMediaItem*) _tmp17_);
-  result = _tmp18_;
-  return result;
-}
-
+  
+  rygel_media_export_item_factory_fill_media_item (RYGEL_MEDIA_ITEM (item),
+    file, dlna_info, file_info);
+    
+  rygel_visual_item_set_width (RYGEL_VISUAL_ITEM (item),
+    (gint) gst_discoverer_video_info_get_width (video_info));
+  rygel_visual_item_set_height (RYGEL_VISUAL_ITEM (item),
+    (gint) gst_discoverer_video_info_get_height (video_info));
 
-static gpointer _gst_structure_copy0 (gconstpointer self) {
-  return self ? gst_structure_copy (self) : NULL;
+  gint color_depth = gst_discoverer_video_info_get_depth (video_info);
+  rygel_visual_item_set_color_depth (RYGEL_VISUAL_ITEM (item),
+    color_depth == 0 ? -1 : color_depth );
+  
+  return RYGEL_MEDIA_ITEM (item);
 }
 
-
 RygelMediaItem *rygel_media_export_item_factory_fill_music_item (RygelMediaExportMusicItem *item, GFile *file, GUPnPDLNAInformation *dlna_info, GstDiscovererAudioInfo *audio_info, GFileInfo *file_info) {
-  RygelMediaItem *result = NULL;
-  RygelMediaExportMusicItem *_tmp0_;
-  GUPnPDLNAInformation *_tmp1_;
-  GstDiscovererAudioInfo *_tmp2_;
-  RygelMediaExportMusicItem *_tmp3_;
-  GFile *_tmp4_;
-  GUPnPDLNAInformation *_tmp5_;
-  GFileInfo *_tmp6_;
-  GstDiscovererAudioInfo *_tmp7_;
-  RygelMediaExportMusicItem *_tmp64_;
-  RygelMediaItem *_tmp65_;
-  GError  *_inner_error_ = NULL;
+  RygelMediaItem *result = RYGEL_MEDIA_ITEM (item);
+
   g_return_val_if_fail (item, NULL);
   g_return_val_if_fail (file, NULL);
   g_return_val_if_fail (dlna_info, NULL);
   g_return_val_if_fail (file_info, NULL);
-  _tmp0_ = item;
-  _tmp1_ = dlna_info;
-  _tmp2_ = audio_info;
-  rygel_media_export_item_factory_fill_audio_item (G_TYPE_CHECK_INSTANCE_TYPE (_tmp0_, RYGEL_TYPE_AUDIO_ITEM) ? ((RygelAudioItem*) _tmp0_) : NULL, _tmp1_, _tmp2_);
-  _tmp3_ = item;
-  _tmp4_ = file;
-  _tmp5_ = dlna_info;
-  _tmp6_ = file_info;
-  rygel_media_export_item_factory_fill_media_item ((RygelMediaItem*) _tmp3_, _tmp4_, _tmp5_, _tmp6_);
-  _tmp7_ = audio_info;
-  if (_tmp7_) {
-    GstDiscovererAudioInfo *_tmp8_;
-    const GstTagList *_tmp9_ = NULL;
-    gchar *artist = NULL;
-    GUPnPDLNAInformation *_tmp29_;
-    const GstDiscovererInfo *_tmp30_;
-    const GstDiscovererInfo *_tmp31_;
-    const GstTagList *_tmp32_ = NULL;
-    gchar *_tmp33_ = NULL;
-    RygelMediaExportMusicItem *_tmp34_;
-    const gchar *_tmp35_;
-    gchar *album = NULL;
-    GUPnPDLNAInformation *_tmp36_;
-    const GstDiscovererInfo *_tmp37_;
-    const GstDiscovererInfo *_tmp38_;
-    const GstTagList *_tmp39_ = NULL;
-    gchar *_tmp40_ = NULL;
-    RygelMediaExportMusicItem *_tmp41_;
-    const gchar *_tmp42_;
-    gchar *genre = NULL;
-    GUPnPDLNAInformation *_tmp43_;
-    const GstDiscovererInfo *_tmp44_;
-    const GstDiscovererInfo *_tmp45_;
-    const GstTagList *_tmp46_ = NULL;
-    gchar *_tmp47_ = NULL;
-    RygelMediaExportMusicItem *_tmp48_;
-    const gchar *_tmp49_;
-    guint tmp = 0U;
-    GUPnPDLNAInformation *_tmp50_;
-    const GstDiscovererInfo *_tmp51_;
-    const GstDiscovererInfo *_tmp52_;
-    const GstTagList *_tmp53_ = NULL;
-    guint _tmp54_ = 0U;
-    RygelMediaExportMusicItem *_tmp55_;
-    guint _tmp56_;
-    GUPnPDLNAInformation *_tmp57_;
-    const GstDiscovererInfo *_tmp58_;
-    const GstDiscovererInfo *_tmp59_;
-    const GstTagList *_tmp60_ = NULL;
-    guint _tmp61_ = 0U;
-    RygelMediaExportMusicItem *_tmp62_;
-    guint _tmp63_;
-    _tmp8_ = audio_info;
-    _tmp9_ = gst_discoverer_stream_info_get_tags ((GstDiscovererStreamInfo*) _tmp8_);
-    if (_tmp9_) {
-      GstBuffer *buffer = NULL;
-      GstDiscovererAudioInfo *_tmp10_;
-      const GstTagList *_tmp11_ = NULL;
-      GstBuffer *_tmp12_ = NULL;
-      GstBuffer *_tmp13_;
-      _tmp10_ = audio_info;
-      _tmp11_ = gst_discoverer_stream_info_get_tags ((GstDiscovererStreamInfo*) _tmp10_);
-      gst_tag_list_get_buffer (_tmp11_, GST_TAG_IMAGE, &_tmp12_);
-      buffer = _tmp12_;
-      _tmp13_ = buffer;
-      if (_tmp13_) {
-        GstBuffer *_tmp14_;
-        GstCaps *_tmp15_;
-        const GstStructure *_tmp16_ = NULL;
-        GstStructure *_tmp17_;
-        GstStructure *structure;
-        gint image_type = 0;
-        const GstStructure *_tmp18_;
-        gint _tmp19_ = 0;
-        gint _tmp20_;
-        _tmp14_ = buffer;
-        _tmp15_ = _tmp14_->caps;
-        _tmp16_ = gst_caps_get_structure (_tmp15_, (guint) 0);
-        _tmp17_ = _gst_structure_copy0 (_tmp16_);
-        structure = _tmp17_;
-        _tmp18_ = structure;
-        gst_structure_get_enum (_tmp18_, "image-type", GST_TYPE_TAG_IMAGE_TYPE, &_tmp19_);
-        image_type = _tmp19_;
-        _tmp20_ = image_type;
-        switch (_tmp20_) {
-          case GST_TAG_IMAGE_TYPE_UNDEFINED:
-          case GST_TAG_IMAGE_TYPE_FRONT_COVER:
-          {
-            RygelMediaArtStore *_tmp21_ = NULL;
-            RygelMediaArtStore *store;
-            RygelMediaArtStore *_tmp22_;
-            RygelMediaExportMusicItem *_tmp23_;
-            GFile *_tmp24_ = NULL;
-            GFile *thumb;
-            _tmp21_ = rygel_media_art_store_get_default ();
-            store = _tmp21_;
-            _tmp22_ = store;
-            _tmp23_ = item;
-            _tmp24_ = rygel_media_art_store_get_media_art_file (_tmp22_, "album", (RygelMusicItem*) _tmp23_, TRUE);
-            thumb = _tmp24_;
-            {
-              RygelMediaExportJPEGWriter *_tmp25_;
-              RygelMediaExportJPEGWriter *writer;
-              RygelMediaExportJPEGWriter *_tmp26_;
-              GstBuffer *_tmp27_;
-              GFile *_tmp28_;
-              _tmp25_ = rygel_media_export_jpeg_writer_new (&_inner_error_);
-              writer = _tmp25_;
-              if (_inner_error_) {
-                goto __catch59_g_error;
-              }
-              _tmp26_ = writer;
-              _tmp27_ = buffer;
-              _tmp28_ = thumb;
-              rygel_media_export_jpeg_writer_write (_tmp26_, _tmp27_, _tmp28_);
-              g_object_unref (writer);
-            }
-            goto __finally59;
-            __catch59_g_error:
-            {
-              GError *_error_ = NULL;
-              _error_ = _inner_error_;
-              _inner_error_ = NULL;
-              g_error_free (_error_);
-            }
-            __finally59:
-            if (_inner_error_) {
-              g_object_unref (thumb);
-              g_object_unref (store);
-              _gst_structure_free0 (structure);
-              g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
-              g_clear_error (&_inner_error_);
-              return NULL;
-            }
-            g_object_unref (thumb);
-            g_object_unref (store);
-            break;
-          }
-          default:
-          {
-            break;
-          }
-        }
-        _gst_structure_free0 (structure);
+
+  rygel_media_export_item_factory_fill_audio_item (RYGEL_AUDIO_ITEM (item), dlna_info, audio_info);
+  rygel_media_export_item_factory_fill_media_item (RYGEL_MEDIA_ITEM (item), file, dlna_info, file_info);
+
+  if (!audio_info)
+    return result;
+
+  const GstTagList *tags = gst_discoverer_stream_info_get_tags ((GstDiscovererStreamInfo*) audio_info);
+  if (!tags)
+    return result;
+    
+  gchar *artist = NULL;
+  gst_tag_list_get_string (tags, GST_TAG_ARTIST, &artist);
+  rygel_music_item_set_artist (RYGEL_MUSIC_ITEM (item), artist);
+  g_free (artist);
+
+  gchar *album = NULL;
+  gst_tag_list_get_string (tags, GST_TAG_ALBUM, &album);
+  rygel_music_item_set_album (RYGEL_MUSIC_ITEM (item), album);
+  g_free (album);
+
+  gchar *genre = NULL;
+  gst_tag_list_get_string (tags, GST_TAG_GENRE, &genre);
+  rygel_music_item_set_album (RYGEL_MUSIC_ITEM (item), genre);
+  g_free (genre);
+   
+  guint volume_number = 0U;
+  gst_tag_list_get_uint (tags, GST_TAG_ALBUM_VOLUME_NUMBER, &volume_number);   
+  item->disc = volume_number;
+
+  guint track_number = 0U;
+  gst_tag_list_get_uint (tags, GST_TAG_TRACK_NUMBER, &track_number);   
+  rygel_music_item_set_track_number (RYGEL_MUSIC_ITEM (item), track_number); 
+
+  rygel_audio_item_set_sample_freq (RYGEL_AUDIO_ITEM (item),
+    (gint) gst_discoverer_audio_info_get_sample_rate ((GstDiscovererAudioInfo *) audio_info));
+    
+  GstBuffer* buffer = NULL;
+	gst_tag_list_get_buffer (tags, GST_TAG_IMAGE, &buffer);
+  if (!buffer || !buffer->caps)
+    return result;
+
+  GstStructure *structure = gst_caps_get_structure (buffer->caps,  0);
+  if (!structure)
+    return result;
+    
+  gint image_type = 0;
+  gst_structure_get_enum (structure, "image-type",
+    GST_TYPE_TAG_IMAGE_TYPE, &image_type);
+  switch (image_type) {
+    case GST_TAG_IMAGE_TYPE_UNDEFINED:
+    case GST_TAG_IMAGE_TYPE_FRONT_COVER:
+	  {
+		  RygelMediaArtStore *store = rygel_media_art_store_get_default ();
+		  GFile* thumb = rygel_media_art_store_get_media_art_file (store,
+		    "album", RYGEL_MUSIC_ITEM (item), TRUE);
+ 
+      RygelMediaExportJPEGWriter *writer =
+        rygel_media_export_jpeg_writer_new (NULL);
+      if (writer) {
+        rygel_media_export_jpeg_writer_write (writer, buffer, thumb);
+        g_object_unref (writer);
       }
+      
+      g_object_unref (thumb);
+      g_object_unref (store); /* TODO: Did get_default() return a reference()? */
     }
-    _tmp29_ = dlna_info;
-    _tmp30_ = gupnp_dlna_information_get_info (_tmp29_);
-    _tmp31_ = _tmp30_;
-    _tmp32_ = gst_discoverer_info_get_tags (_tmp31_);
-    gst_tag_list_get_string (_tmp32_, GST_TAG_ARTIST, &_tmp33_);
-    g_free (artist);
-    artist = _tmp33_;
-    _tmp34_ = item;
-    _tmp35_ = artist;
-    rygel_music_item_set_artist ((RygelMusicItem*) _tmp34_, _tmp35_);
-    _tmp36_ = dlna_info;
-    _tmp37_ = gupnp_dlna_information_get_info (_tmp36_);
-    _tmp38_ = _tmp37_;
-    _tmp39_ = gst_discoverer_info_get_tags (_tmp38_);
-    gst_tag_list_get_string (_tmp39_, GST_TAG_ALBUM, &_tmp40_);
-    g_free (album);
-    album = _tmp40_;
-    _tmp41_ = item;
-    _tmp42_ = album;
-    rygel_music_item_set_album ((RygelMusicItem*) _tmp41_, _tmp42_);
-    _tmp43_ = dlna_info;
-    _tmp44_ = gupnp_dlna_information_get_info (_tmp43_);
-    _tmp45_ = _tmp44_;
-    _tmp46_ = gst_discoverer_info_get_tags (_tmp45_);
-    gst_tag_list_get_string (_tmp46_, GST_TAG_GENRE, &_tmp47_);
-    g_free (genre);
-    genre = _tmp47_;
-    _tmp48_ = item;
-    _tmp49_ = genre;
-    rygel_music_item_set_genre ((RygelMusicItem*) _tmp48_, _tmp49_);
-    _tmp50_ = dlna_info;
-    _tmp51_ = gupnp_dlna_information_get_info (_tmp50_);
-    _tmp52_ = _tmp51_;
-    _tmp53_ = gst_discoverer_info_get_tags (_tmp52_);
-    gst_tag_list_get_uint (_tmp53_, GST_TAG_ALBUM_VOLUME_NUMBER, &_tmp54_);
-    tmp = _tmp54_;
-    _tmp55_ = item;
-    _tmp56_ = tmp;
-    _tmp55_->disc = (gint) _tmp56_;
-    _tmp57_ = dlna_info;
-    _tmp58_ = gupnp_dlna_information_get_info (_tmp57_);
-    _tmp59_ = _tmp58_;
-    _tmp60_ = gst_discoverer_info_get_tags (_tmp59_);
-    gst_tag_list_get_uint (_tmp60_, GST_TAG_TRACK_NUMBER, &_tmp61_);
-    tmp = _tmp61_;
-    _tmp62_ = item;
-    _tmp63_ = tmp;
-    rygel_music_item_set_track_number ((RygelMusicItem*) _tmp62_, (gint) _tmp63_);
-    g_free (genre);
-    g_free (album);
-    g_free (artist);
+    default:
+      break;
   }
-  _tmp64_ = item;
-  _tmp65_ = g_object_ref ((RygelMediaItem*) _tmp64_);
-  result = _tmp65_;
+        
+  gst_structure_free (structure);
+ 
   return result;
 }
 
 
 void rygel_media_export_item_factory_fill_media_item (RygelMediaItem *item, GFile *file, GUPnPDLNAInformation *dlna_info, GFileInfo *file_info) {
-  gchar *title;
-  gboolean _tmp0_ = FALSE;
-  GUPnPDLNAInformation *_tmp1_;
-  const GstDiscovererInfo *_tmp2_;
-  const GstDiscovererInfo *_tmp3_;
-  const GstTagList *_tmp4_ = NULL;
-  gboolean _tmp11_;
-  RygelMediaItem *_tmp15_;
-  const gchar *_tmp16_;
-  GUPnPDLNAInformation *_tmp17_;
-  const GstDiscovererInfo *_tmp18_;
-  const GstDiscovererInfo *_tmp19_;
-  const GstTagList *_tmp20_ = NULL;
-  GFileInfo *_tmp32_;
-  guint64 _tmp33_ = 0ULL;
-  guint64 mtime;
-  RygelMediaItem *_tmp34_;
-  const gchar *_tmp35_;
-  const gchar *_tmp36_;
-  RygelMediaItem *_tmp42_;
-  GFileInfo *_tmp43_;
-  gint64 _tmp44_ = 0LL;
-  RygelMediaItem *_tmp45_;
-  guint64 _tmp46_;
-  GUPnPDLNAInformation *_tmp47_;
-  const gchar *_tmp48_;
-  const gchar *_tmp49_;
-  RygelMediaItem *_tmp63_;
-  GFile *_tmp64_;
-  gchar *_tmp65_ = NULL;
-  gchar *_tmp66_;
   g_return_if_fail (item);
   g_return_if_fail (file);
   g_return_if_fail (dlna_info);
   g_return_if_fail (file_info);
-  title = NULL;
-  _tmp1_ = dlna_info;
-  _tmp2_ = gupnp_dlna_information_get_info (_tmp1_);
-  _tmp3_ = _tmp2_;
-  _tmp4_ = gst_discoverer_info_get_tags (_tmp3_);
-  if (_tmp4_ == NULL) {
-    _tmp0_ = TRUE;
-  } else {
-    GUPnPDLNAInformation *_tmp5_;
-    const GstDiscovererInfo *_tmp6_;
-    const GstDiscovererInfo *_tmp7_;
-    const GstTagList *_tmp8_ = NULL;
-    gchar *_tmp9_ = NULL;
-    gboolean _tmp10_ = FALSE;
-    _tmp5_ = dlna_info;
-    _tmp6_ = gupnp_dlna_information_get_info (_tmp5_);
-    _tmp7_ = _tmp6_;
-    _tmp8_ = gst_discoverer_info_get_tags (_tmp7_);
-    _tmp10_ = gst_tag_list_get_string (_tmp8_, GST_TAG_TITLE, &_tmp9_);
-    g_free (title);
-    title = _tmp9_;
-    _tmp0_ = !_tmp10_;
-  }
-  _tmp11_ = _tmp0_;
-  if (_tmp11_) {
-    GFileInfo *_tmp12_;
-    const gchar *_tmp13_ = NULL;
-    gchar *_tmp14_;
-    _tmp12_ = file_info;
-    _tmp13_ = g_file_info_get_display_name (_tmp12_);
-    _tmp14_ = g_strdup (_tmp13_);
-    g_free (title);
-    title = _tmp14_;
+
+  const GstDiscovererInfo *info = gupnp_dlna_information_get_info (dlna_info);
+  if (!info)
+    return;
+    
+  const GstTagList *tags = gst_discoverer_stream_info_get_tags ((GstDiscovererStreamInfo*) info);
+  gchar *title = NULL;
+  if (!tags || !gst_tag_list_get_string (tags, GST_TAG_TITLE, &title)) {
+    title = g_strdup (g_file_info_get_display_name (file_info));
   }
-  _tmp15_ = item;
-  _tmp16_ = title;
-  rygel_media_object_set_title ((RygelMediaObject*) _tmp15_, _tmp16_);
-  _tmp17_ = dlna_info;
-  _tmp18_ = gupnp_dlna_information_get_info (_tmp17_);
-  _tmp19_ = _tmp18_;
-  _tmp20_ = gst_discoverer_info_get_tags (_tmp19_);
-  if (_tmp20_) {
-    GDate *date = NULL;
-    GUPnPDLNAInformation *_tmp21_;
-    const GstDiscovererInfo *_tmp22_;
-    const GstDiscovererInfo *_tmp23_;
-    const GstTagList *_tmp24_ = NULL;
-    GDate *_tmp25_ = NULL;
-    gboolean _tmp26_ = FALSE;
-    _tmp21_ = dlna_info;
-    _tmp22_ = gupnp_dlna_information_get_info (_tmp21_);
-    _tmp23_ = _tmp22_;
-    _tmp24_ = gst_discoverer_info_get_tags (_tmp23_);
-    _tmp26_ = gst_tag_list_get_date (_tmp24_, GST_TAG_DATE, &_tmp25_);
-    g_free (date);
-    date = _tmp25_;
-    if (_tmp26_) {
-      gchar *_tmp27_ = NULL;
-      gchar *datestr;
-      gint datestr_length1;
-      GDate *_tmp28_;
-      gchar *_tmp29_;
-      gint _tmp29__length1;
-      RygelMediaItem *_tmp30_;
-      gchar *_tmp31_;
-      _tmp27_ = g_new0 (gchar, 30);
-      datestr = _tmp27_;
-      datestr_length1 = 30;
-      _tmp28_ = date;
-      _tmp29_ = datestr;
-      _tmp29__length1 = datestr_length1;
-      g_date_strftime (_tmp29_, _tmp29__length1, "%F", _tmp28_);
-      _tmp30_ = item;
-      _tmp31_ = datestr;
-      rygel_media_item_set_date (_tmp30_, (const gchar*) _tmp31_);
-      datestr = (g_free (datestr), NULL);
-    }
-    g_free (date);
+
+  rygel_media_object_set_title (RYGEL_MEDIA_OBJECT (item), title);
+  g_free (title);
+  
+  GDate* date = NULL;
+  if (tags) {
+		if (gst_tag_list_get_date (tags, GST_TAG_DATE, &date)) {
+		  gint datestr_length = 30;
+		  gchar *datestr = g_new0 (gchar, datestr_length);
+		  g_date_strftime (datestr, datestr_length, "%F", date);
+		  
+		  rygel_media_item_set_date (item, datestr);
+			g_free (datestr);
+		}
   }
-  _tmp32_ = file_info;
-  _tmp33_ = g_file_info_get_attribute_uint64 (_tmp32_, G_FILE_ATTRIBUTE_TIME_MODIFIED);
-  mtime = _tmp33_;
-  _tmp34_ = item;
-  _tmp35_ = rygel_media_item_get_date (_tmp34_);
-  _tmp36_ = _tmp35_;
-  if (_tmp36_ == NULL) {
-    guint64 _tmp37_;
-    GTimeVal _tmp38_ = {0};
-    GTimeVal tv;
-    RygelMediaItem *_tmp39_;
-    gchar *_tmp40_ = NULL;
-    gchar *_tmp41_;
-    _tmp37_ = mtime;
-    _tmp38_.tv_sec = (glong) _tmp37_;
-    _tmp38_.tv_usec = (glong) 0;
-    tv = _tmp38_;
-    _tmp39_ = item;
-    _tmp40_ = g_time_val_to_iso8601 (&tv);
-    _tmp41_ = _tmp40_;
-    rygel_media_item_set_date (_tmp39_, _tmp41_);
-    g_free (_tmp41_);
+  
+  // use mtime if no time tag was available
+  guint64 mtime = g_file_info_get_attribute_uint64 (file_info,
+    G_FILE_ATTRIBUTE_TIME_MODIFIED);
+  if (!date) {
+    GTimeVal tv = {0};
+		tv.tv_sec = (glong) mtime;
+		tv.tv_usec = (glong) 0;
+
+		gchar* datestr = g_time_val_to_iso8601 (&tv);
+		rygel_media_item_set_date (item, datestr);
+		g_free (datestr);
   }
-  _tmp42_ = item;
-  _tmp43_ = file_info;
-  _tmp44_ = g_file_info_get_size (_tmp43_);
-  rygel_media_item_set_size (_tmp42_, (gint64) _tmp44_);
-  _tmp45_ = item;
-  _tmp46_ = mtime;
-  rygel_media_object_set_modified ((RygelMediaObject*) _tmp45_, (guint64) ((gint64) _tmp46_));
-  _tmp47_ = dlna_info;
-  _tmp48_ = gupnp_dlna_information_get_name (_tmp47_);
-  _tmp49_ = _tmp48_;
-  if (_tmp49_) {
-    RygelMediaItem *_tmp50_;
-    GUPnPDLNAInformation *_tmp51_;
-    const gchar *_tmp52_;
-    const gchar *_tmp53_;
-    RygelMediaItem *_tmp54_;
-    GUPnPDLNAInformation *_tmp55_;
-    const gchar *_tmp56_;
-    const gchar *_tmp57_;
-    _tmp50_ = item;
-    _tmp51_ = dlna_info;
-    _tmp52_ = gupnp_dlna_information_get_name (_tmp51_);
-    _tmp53_ = _tmp52_;
-    rygel_media_item_set_dlna_profile (_tmp50_, _tmp53_);
-    _tmp54_ = item;
-    _tmp55_ = dlna_info;
-    _tmp56_ = gupnp_dlna_information_get_mime (_tmp55_);
-    _tmp57_ = _tmp56_;
-    rygel_media_item_set_mime_type (_tmp54_, _tmp57_);
+  
+  g_date_free (date);
+
+
+	rygel_media_item_set_size (item,
+	  (gint64)  g_file_info_get_size (file_info));
+  rygel_media_object_set_modified (RYGEL_MEDIA_OBJECT (item), (guint64) mtime);
+
+  const gchar *name = gupnp_dlna_information_get_name (dlna_info);
+  if (name) {
+    rygel_media_item_set_dlna_profile (item, name);
+    
+    rygel_media_item_set_mime_type (item,
+      gupnp_dlna_information_get_mime (dlna_info));
   } else {
-    RygelMediaItem *_tmp58_;
-    GFileInfo *_tmp59_;
-    const gchar *_tmp60_ = NULL;
-    gchar *_tmp61_ = NULL;
-    gchar *_tmp62_;
-    _tmp58_ = item;
-    _tmp59_ = file_info;
-    _tmp60_ = g_file_info_get_content_type (_tmp59_);
-    _tmp61_ = g_content_type_get_mime_type (_tmp60_);
-    _tmp62_ = _tmp61_;
-    rygel_media_item_set_mime_type (_tmp58_, _tmp62_);
-    g_free (_tmp62_);
+    const gchar *content_type = g_file_info_get_content_type (file_info);
+    gchar *content_type_mime_type = g_content_type_get_mime_type (content_type);
+    rygel_media_item_set_mime_type (item, content_type_mime_type);
+    g_free (content_type_mime_type);
   }
-  _tmp63_ = item;
-  _tmp64_ = file;
-  _tmp65_ = g_file_get_uri (_tmp64_);
-  _tmp66_ = _tmp65_;
-  rygel_media_item_add_uri (_tmp63_, _tmp66_);
-  g_free (_tmp66_);
-  g_free (title);
+
+  gchar *uri = g_file_get_uri (file);
+  rygel_media_item_add_uri (item, uri);
+  g_free (uri);
 }
 
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]