[rygel-gst-0-10-media-engine] cleanup



commit e46d88bf7924284920b5ecb6eaf3791c0e0bee3e
Author: Murray Cumming <murrayc murrayc com>
Date:   Fri Dec 21 10:11:18 2012 +0100

    cleanup

 src/rygel-l16-transcoder.c   |    6 +-
 src/rygel-mp2ts-transcoder.c |  250 +++++++++++++-----------------------------
 2 files changed, 83 insertions(+), 173 deletions(-)
---
diff --git a/src/rygel-l16-transcoder.c b/src/rygel-l16-transcoder.c
index 272a35d..13fc530 100644
--- a/src/rygel-l16-transcoder.c
+++ b/src/rygel-l16-transcoder.c
@@ -69,6 +69,10 @@ rygel_l16_transcoder_real_add_resource (RygelTranscoder* base, GUPnPDIDLLiteItem
   RygelL16Transcoder * self = RYGEL_L16_TRANSCODER (base);
   GError * inner_error = NULL;
 
+  g_return_val_if_fail (didl_item != NULL, NULL);
+  g_return_val_if_fail (item != NULL, NULL);
+  g_return_val_if_fail (manager != NULL, NULL);
+
   GUPnPDIDLLiteResource* resource =
     RYGEL_TRANSCODER_CLASS (rygel_l16_transcoder_parent_class)->add_resource (RYGEL_TRANSCODER (self), didl_item, item, manager, &inner_error);
   if (!inner_error) {
@@ -77,7 +81,7 @@ rygel_l16_transcoder_real_add_resource (RygelTranscoder* base, GUPnPDIDLLiteItem
   }
 
   if (!resource) {
-    return resource;
+    return NULL;
   }
 
   gupnp_didl_lite_resource_set_sample_freq (resource, RYGEL_L16_TRANSCODER_FREQUENCY);
diff --git a/src/rygel-mp2ts-transcoder.c b/src/rygel-mp2ts-transcoder.c
index 5562afd..23d989b 100644
--- a/src/rygel-mp2ts-transcoder.c
+++ b/src/rygel-mp2ts-transcoder.c
@@ -23,6 +23,10 @@
 
 #include "rygel-mp2ts-transcoder.h"
 
+/**
+ * Transcoder for mpeg transport stream containing mpeg 2 video and mp2 audio.
+ */
+
 G_DEFINE_TYPE (RygelMP2TSTranscoder, rygel_mp2_ts_transcoder, RYGEL_TYPE_VIDEO_TRANSCODER)
 
 #define RYGEL_TYPE_MP2_TS_PROFILE (rygel_mp2_ts_profile_get_type ())
@@ -31,8 +35,6 @@ struct _RygelMP2TSTranscoderPrivate {
   RygelMP2TSProfile profile;
 };
 
-GType rygel_mp2_ts_profile_get_type (void) G_GNUC_CONST;
-
 #define RYGEL_MP2_TS_TRANSCODER_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), RYGEL_TYPE_MP2_TS_TRANSCODER, RygelMP2TSTranscoderPrivate))
 
 #define RYGEL_MP2_TS_TRANSCODER_VIDEO_BITRATE 1500
@@ -41,8 +43,6 @@ GType rygel_mp2_ts_profile_get_type (void) G_GNUC_CONST;
 #define RYGEL_MP2_TS_TRANSCODER_AUDIO_FORMAT "audio/mpeg,mpegversion=1,layer=2"
 #define RYGEL_MP2_TS_TRANSCODER_BASE_VIDEO_FORMAT "video/mpeg,mpegversion=2,systemstream=false"
 #define RYGEL_MP2_TS_TRANSCODER_RESTRICTION_TEMPLATE "video/x-raw-yuv,framerate=(fraction)%d/1,width=%d,height=%d"
-RygelMP2TSTranscoder* rygel_mp2_ts_transcoder_new (RygelMP2TSProfile profile);
-RygelMP2TSTranscoder* rygel_mp2_ts_transcoder_construct (GType object_type, RygelMP2TSProfile profile);
 
 static GUPnPDIDLLiteResource* rygel_mp2_ts_transcoder_real_add_resource (RygelTranscoder* base, GUPnPDIDLLiteItem* didl_item, RygelMediaItem* item, RygelTranscodeManager* manager, GError** error);
 static guint rygel_mp2_ts_transcoder_real_get_distance (RygelTranscoder* base, RygelMediaItem* item);
@@ -53,199 +53,105 @@ static const gint RYGEL_MP2_TS_TRANSCODER_HEIGHT[2] = {576, 720};
 static const gint RYGEL_MP2_TS_TRANSCODER_FRAME_RATE[2] = {25, 30};
 static const gchar* RYGEL_MP2_TS_TRANSCODER_PROFILES[2] = {"MPEG_TS_SD_EU_ISO", "MPEG_TS_HD_NA_ISO"};
 
-GType rygel_mp2_ts_profile_get_type (void) {
-  static volatile gsize rygel_mp2_ts_profile_type_id__volatile = 0;
-  if (g_once_init_enter (&rygel_mp2_ts_profile_type_id__volatile)) {
-    static const GEnumValue values[] = {{RYGEL_MP2_TS_PROFILE_SD, "RYGEL_MP2_TS_PROFILE_SD", "sd"}, {RYGEL_MP2_TS_PROFILE_HD, "RYGEL_MP2_TS_PROFILE_HD", "hd"}, {0, NULL, NULL}};
-    GType rygel_mp2_ts_profile_type_id;
-    rygel_mp2_ts_profile_type_id = g_enum_register_static ("RygelMP2TSProfile", values);
-    g_once_init_leave (&rygel_mp2_ts_profile_type_id__volatile, rygel_mp2_ts_profile_type_id);
-  }
-  return rygel_mp2_ts_profile_type_id__volatile;
-}
+RygelMP2TSTranscoder* rygel_mp2_ts_transcoder_construct (GType object_type, RygelMP2TSProfile profile) {
+  RygelMP2TSTranscoder * self;
+  gchar* restriction_template;
 
+  restriction_template = g_strdup_printf (
+    RYGEL_MP2_TS_TRANSCODER_RESTRICTION_TEMPLATE,
+    RYGEL_MP2_TS_TRANSCODER_FRAME_RATE,
+    RYGEL_MP2_TS_TRANSCODER_WIDTH,
+    RYGEL_MP2_TS_TRANSCODER_HEIGHT);
+
+  self = RYGEL_MP2_TS_TRANSCODER (rygel_video_transcoder_construct (object_type,
+    "video/mpeg", RYGEL_MP2_TS_TRANSCODER_PROFILES[profile],
+    RYGEL_MP2_TS_TRANSCODER_AUDIO_BITRATE,
+    RYGEL_MP2_TS_TRANSCODER_VIDEO_BITRATE,
+    RYGEL_MP2_TS_TRANSCODER_CONTAINER,
+    RYGEL_MP2_TS_TRANSCODER_AUDIO_FORMAT,
+    RYGEL_MP2_TS_TRANSCODER_BASE_VIDEO_FORMAT,
+    "mpg",
+    restriction_template));
+
+  g_free (restriction_template);
+
+  self->priv->profile = profile;
 
-RygelMP2TSTranscoder* rygel_mp2_ts_transcoder_construct (GType object_type, RygelMP2TSProfile profile) {
-  RygelMP2TSTranscoder * self = NULL;
-  RygelMP2TSProfile _tmp0_;
-  const gchar* _tmp1_;
-  RygelMP2TSProfile _tmp2_;
-  gint _tmp3_;
-  RygelMP2TSProfile _tmp4_;
-  gint _tmp5_;
-  RygelMP2TSProfile _tmp6_;
-  gint _tmp7_;
-  gchar* _tmp8_ = NULL;
-  gchar* _tmp9_;
-  RygelMP2TSProfile _tmp10_;
-  _tmp0_ = profile;
-  _tmp1_ = RYGEL_MP2_TS_TRANSCODER_PROFILES[_tmp0_];
-  _tmp2_ = profile;
-  _tmp3_ = RYGEL_MP2_TS_TRANSCODER_FRAME_RATE[_tmp2_];
-  _tmp4_ = profile;
-  _tmp5_ = RYGEL_MP2_TS_TRANSCODER_WIDTH[_tmp4_];
-  _tmp6_ = profile;
-  _tmp7_ = RYGEL_MP2_TS_TRANSCODER_HEIGHT[_tmp6_];
-  _tmp8_ = g_strdup_printf (RYGEL_MP2_TS_TRANSCODER_RESTRICTION_TEMPLATE, _tmp3_, _tmp5_, _tmp7_);
-  _tmp9_ = _tmp8_;
-  self = (RygelMP2TSTranscoder*) rygel_video_transcoder_construct (object_type, "video/mpeg", _tmp1_, RYGEL_MP2_TS_TRANSCODER_AUDIO_BITRATE, RYGEL_MP2_TS_TRANSCODER_VIDEO_BITRATE, RYGEL_MP2_TS_TRANSCODER_CONTAINER, RYGEL_MP2_TS_TRANSCODER_AUDIO_FORMAT, RYGEL_MP2_TS_TRANSCODER_BASE_VIDEO_FORMAT, "mpg", _tmp9_);
-  _g_free0 (_tmp9_);
-  _tmp10_ = profile;
-  self->priv->profile = _tmp10_;
   return self;
 }
 
-
-RygelMP2TSTranscoder* rygel_mp2_ts_transcoder_new (RygelMP2TSProfile profile) {
+RygelMP2TSTranscoder*
+rygel_mp2_ts_transcoder_new (RygelMP2TSProfile profile) {
   return rygel_mp2_ts_transcoder_construct (RYGEL_TYPE_MP2_TS_TRANSCODER, profile);
 }
 
-
-static GUPnPDIDLLiteResource* rygel_mp2_ts_transcoder_real_add_resource (RygelTranscoder* base, GUPnPDIDLLiteItem* didl_item, RygelMediaItem* item, RygelTranscodeManager* manager, GError** error) {
-  RygelMP2TSTranscoder * self;
-  GUPnPDIDLLiteResource* result = NULL;
-  GUPnPDIDLLiteItem* _tmp0_;
-  RygelMediaItem* _tmp1_;
-  RygelTranscodeManager* _tmp2_;
-  GUPnPDIDLLiteResource* _tmp3_ = NULL;
-  GUPnPDIDLLiteResource* resource;
-  RygelMP2TSProfile _tmp4_;
-  gint _tmp5_;
-  RygelMP2TSProfile _tmp6_;
-  gint _tmp7_;
+static GUPnPDIDLLiteResource*
+rygel_mp2_ts_transcoder_real_add_resource (RygelTranscoder* base, GUPnPDIDLLiteItem* didl_item, RygelMediaItem* item, RygelTranscodeManager* manager, GError** error) {
+  RygelMP2TSTranscoder * self = RYGEL_MP2_TS_TRANSCODER (base);
   GError * inner_error = NULL;
-  self = (RygelMP2TSTranscoder*) base;
+
   g_return_val_if_fail (didl_item != NULL, NULL);
   g_return_val_if_fail (item != NULL, NULL);
   g_return_val_if_fail (manager != NULL, NULL);
-  _tmp0_ = didl_item;
-  _tmp1_ = item;
-  _tmp2_ = manager;
-  _tmp3_ = RYGEL_TRANSCODER_CLASS (rygel_mp2_ts_transcoder_parent_class)->add_resource ((RygelTranscoder*) G_TYPE_CHECK_INSTANCE_CAST (self, RYGEL_TYPE_VIDEO_TRANSCODER, RygelVideoTranscoder), _tmp0_, _tmp1_, _tmp2_, &inner_error);
-  resource = _tmp3_;
-  if (inner_error != NULL) {
+
+  GUPnPDIDLLiteResource* resource =
+    RYGEL_TRANSCODER_CLASS (rygel_mp2_ts_transcoder_parent_class)->add_resource (RYGEL_TRANSCODER (self), didl_item, item, manager, &inner_error);
+  if (!inner_error) {
     g_propagate_error (error, inner_error);
     return NULL;
   }
-  if (resource == NULL) {
-    result = NULL;
-    _g_object_unref0 (resource);
-    return result;
+
+  if (!resource) {
+    return NULL;
   }
-  _tmp4_ = self->priv->profile;
-  _tmp5_ = RYGEL_MP2_TS_TRANSCODER_WIDTH[_tmp4_];
-  gupnp_didl_lite_resource_set_width (resource, _tmp5_);
-  _tmp6_ = self->priv->profile;
-  _tmp7_ = RYGEL_MP2_TS_TRANSCODER_HEIGHT[_tmp6_];
-  gupnp_didl_lite_resource_set_height (resource, _tmp7_);
-  gupnp_didl_lite_resource_set_bitrate (resource, ((RYGEL_MP2_TS_TRANSCODER_VIDEO_BITRATE + RYGEL_MP2_TS_TRANSCODER_AUDIO_BITRATE) * 1000) / 8);
-  result = resource;
-  return result;
-}
 
+  gupnp_didl_lite_resource_set_width (resource, RYGEL_MP2_TS_TRANSCODER_WIDTH[self->priv->profile]);
+  gupnp_didl_lite_resource_set_height (resource, RYGEL_MP2_TS_TRANSCODER_HEIGHT[self->priv->profile]);
+  gupnp_didl_lite_resource_set_bitrate (resource,
+    ((RYGEL_MP2_TS_TRANSCODER_VIDEO_BITRATE + RYGEL_MP2_TS_TRANSCODER_AUDIO_BITRATE) * 1000) / 8);
 
-static gpointer _g_object_ref0 (gpointer self) {
-  return self ? g_object_ref (self) : NULL;
+  return resource;
 }
 
+static guint
+rygel_mp2_ts_transcoder_real_get_distance (RygelTranscoder* base, RygelMediaItem* item) {
+  RygelMP2TSTranscoder * self = RYGEL_MP2_TS_TRANSCODER (base);
 
-static guint rygel_mp2_ts_transcoder_real_get_distance (RygelTranscoder* base, RygelMediaItem* item) {
-  RygelMP2TSTranscoder * self;
-  guint result = 0U;
-  RygelMediaItem* _tmp0_;
-  RygelMediaItem* _tmp2_;
-  RygelVideoItem* _tmp3_;
   RygelVideoItem* video_item;
-  RygelMediaItem* _tmp4_;
-  guint _tmp5_ = 0U;
   guint distance;
-  RygelVideoItem* _tmp6_;
-  gint _tmp7_;
-  gint _tmp8_;
-  RygelVideoItem* _tmp14_;
-  gint _tmp15_;
-  gint _tmp16_;
-  RygelVideoItem* _tmp24_;
-  gint _tmp25_;
-  gint _tmp26_;
-  self = (RygelMP2TSTranscoder*) base;
+  guint bitrate;
+  guint width;
+  guint height;
+
   g_return_val_if_fail (item != NULL, 0U);
-  _tmp0_ = item;
-  if (!RYGEL_IS_VIDEO_ITEM (_tmp0_)) {
-    guint _tmp1_;
-    _tmp1_ = G_MAXUINT;
-    result = _tmp1_;
-    return result;
-  }
-  _tmp2_ = item;
-  _tmp3_ = _g_object_ref0 (RYGEL_IS_VIDEO_ITEM (_tmp2_) ? ((RygelVideoItem*) _tmp2_) : NULL);
-  video_item = _tmp3_;
-  _tmp4_ = item;
-  _tmp5_ = RYGEL_TRANSCODER_CLASS (rygel_mp2_ts_transcoder_parent_class)->get_distance ((RygelTranscoder*) G_TYPE_CHECK_INSTANCE_CAST (self, RYGEL_TYPE_VIDEO_TRANSCODER, RygelVideoTranscoder), _tmp4_);
-  distance = _tmp5_;
-  _tmp6_ = video_item;
-  _tmp7_ = rygel_audio_item_get_bitrate ((RygelAudioItem*) _tmp6_);
-  _tmp8_ = _tmp7_;
-  if (_tmp8_ > 0) {
-    guint _tmp9_;
-    RygelVideoItem* _tmp10_;
-    gint _tmp11_;
-    gint _tmp12_;
-    gint _tmp13_ = 0;
-    _tmp9_ = distance;
-    _tmp10_ = video_item;
-    _tmp11_ = rygel_audio_item_get_bitrate ((RygelAudioItem*) _tmp10_);
-    _tmp12_ = _tmp11_;
-    _tmp13_ = abs (_tmp12_ - RYGEL_MP2_TS_TRANSCODER_VIDEO_BITRATE);
-    distance = _tmp9_ + _tmp13_;
+
+  if (!RYGEL_IS_VIDEO_ITEM (item)) {
+    return G_MAXUINT;
   }
-  _tmp14_ = video_item;
-  _tmp15_ = rygel_visual_item_get_width ((RygelVisualItem*) _tmp14_);
-  _tmp16_ = _tmp15_;
-  if (_tmp16_ > 0) {
-    guint _tmp17_;
-    RygelVideoItem* _tmp18_;
-    gint _tmp19_;
-    gint _tmp20_;
-    RygelMP2TSProfile _tmp21_;
-    gint _tmp22_;
-    gint _tmp23_ = 0;
-    _tmp17_ = distance;
-    _tmp18_ = video_item;
-    _tmp19_ = rygel_visual_item_get_width ((RygelVisualItem*) _tmp18_);
-    _tmp20_ = _tmp19_;
-    _tmp21_ = self->priv->profile;
-    _tmp22_ = RYGEL_MP2_TS_TRANSCODER_WIDTH[_tmp21_];
-    _tmp23_ = abs (_tmp20_ - _tmp22_);
-    distance = _tmp17_ + _tmp23_;
+
+  video_item = RYGEL_VIDEO_ITEM (item);
+  distance = 0;
+
+  bitrate = rygel_video_item_get_bits_per_sample (video_item);
+  if(bitrate > 0) {
+    distance += abs(bitrate - RYGEL_MP2_TS_TRANSCODER_VIDEO_BITRATE);
+  } 
+
+  width = rygel_video_item_get_width (video_item);
+  if(width > 0) {
+    distance += abs(width - RYGEL_MP2_TS_TRANSCODER_WIDTH[self->priv->profile]);
   }
-  _tmp24_ = video_item;
-  _tmp25_ = rygel_visual_item_get_height ((RygelVisualItem*) _tmp24_);
-  _tmp26_ = _tmp25_;
-  if (_tmp26_ > 0) {
-    guint _tmp27_;
-    RygelVideoItem* _tmp28_;
-    gint _tmp29_;
-    gint _tmp30_;
-    RygelMP2TSProfile _tmp31_;
-    gint _tmp32_;
-    gint _tmp33_ = 0;
-    _tmp27_ = distance;
-    _tmp28_ = video_item;
-    _tmp29_ = rygel_visual_item_get_height ((RygelVisualItem*) _tmp28_);
-    _tmp30_ = _tmp29_;
-    _tmp31_ = self->priv->profile;
-    _tmp32_ = RYGEL_MP2_TS_TRANSCODER_HEIGHT[_tmp31_];
-    _tmp33_ = abs (_tmp30_ - _tmp32_);
-    distance = _tmp27_ + _tmp33_;
+
+  height = rygel_video_item_get_height (video_item);
+  if(height > 0) {
+    distance += abs(height - RYGEL_MP2_TS_TRANSCODER_HEIGHT[self->priv->profile]);
   }
-  result = distance;
-  _g_object_unref0 (video_item);
-  return result;
-}
 
+  return distance;
+}
 
-static void rygel_mp2_ts_transcoder_class_init (RygelMP2TSTranscoderClass * klass) {
+static void
+rygel_mp2_ts_transcoder_class_init (RygelMP2TSTranscoderClass * klass) {
   rygel_mp2_ts_transcoder_parent_class = g_type_class_peek_parent (klass);
   g_type_class_add_private (klass, sizeof (RygelMP2TSTranscoderPrivate));
   RYGEL_TRANSCODER_CLASS (klass)->add_resource = rygel_mp2_ts_transcoder_real_add_resource;
@@ -254,16 +160,16 @@ static void rygel_mp2_ts_transcoder_class_init (RygelMP2TSTranscoderClass * klas
 }
 
 
-static void rygel_mp2_ts_transcoder_init (RygelMP2TSTranscoder * self) {
+static void
+rygel_mp2_ts_transcoder_init (RygelMP2TSTranscoder * self) {
   self->priv = RYGEL_MP2_TS_TRANSCODER_GET_PRIVATE (self);
 }
 
-
-static void rygel_mp2_ts_transcoder_finalize (GObject* obj) {
+static void
+rygel_mp2_ts_transcoder_finalize (GObject* obj) {
   RygelMP2TSTranscoder * self;
   self = RYGEL_MP2_TS_TRANSCODER (obj);
   G_OBJECT_CLASS (rygel_mp2_ts_transcoder_parent_class)->finalize (obj);
 }
 
 
-



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