[gstreamer] N_SE-28026 (mp3 seek) defect resolve
authorJoungkook Seo <jk7704.seo@samsung.com>
Thu, 21 Mar 2013 06:01:04 +0000 (15:01 +0900)
committerJoungkook Seo <jk7704.seo@samsung.com>
Thu, 21 Mar 2013 06:01:04 +0000 (15:01 +0900)
Change-Id: I81082226837298b9b8fe7e41886bad61f239ea1a

libs/gst/base/gstbaseparse.c
libs/gst/base/gstbaseparse.h
packaging/gstreamer.spec

index 25f88a1..54d675a 100644 (file)
@@ -335,6 +335,8 @@ struct _GstBaseParsePrivate
   gboolean first_frame; /* check first frame in base parser */
   gint64 remove_from_total; /* remove zero padding */
 #endif
+
+  gint64 encoded_size; /*endcoded size = total size - id3*/
 };
 
 typedef struct _GstBaseParseSeek
@@ -769,6 +771,8 @@ gst_base_parse_reset (GstBaseParse * parse)
   parse->priv->remove_from_total = 0;
 #endif
 
+  parse->priv->encoded_size = 0;
+
   if (parse->priv->pending_segment) {
     gst_event_unref (parse->priv->pending_segment);
     parse->priv->pending_segment = NULL;
@@ -1302,6 +1306,13 @@ gst_base_parse_update_duration (GstBaseParse * baseparse)
     gint64 ptot, dest_value;
 
     qres = gst_pad_query_duration (peer, &pformat, &ptot);
+
+    if (ptot > 0) {
+     parse->priv->encoded_size = ptot;
+     GST_INFO_OBJECT (parse, "[ID3] (ptot) parse->priv->encoded_size :( %" G_GINT64_FORMAT ")",parse->priv->encoded_size);
+     }
+
+    
     gst_object_unref (GST_OBJECT (peer));
     if (qres) {
       if (gst_base_parse_convert (parse, pformat, ptot,
@@ -4160,6 +4171,16 @@ gst_base_parse_get_upstream_size (GstBaseParse * parse, gint64 * upstream_size)
 }
 
 void
+gst_base_parse_get_encoded_size (GstBaseParse * parse, gint64 * encoded_size)
+{
+  GST_INFO_OBJECT (parse, "get encoded_size param for child parser");
+
+  GST_BASE_PARSE_INDEX_LOCK (parse);
+  *encoded_size = parse->priv->encoded_size;
+  GST_BASE_PARSE_INDEX_UNLOCK (parse);
+}
+
+void
 gst_base_parse_get_index_last_offset (GstBaseParse * parse, gint64 * index_last_offset)
 {
   GST_INFO_OBJECT (parse, "get index_last_offset param for child parser");
index c7544b5..e916992 100644 (file)
@@ -328,6 +328,9 @@ gboolean        gst_base_parse_add_index_entry (GstBaseParse * parse,
 void            gst_base_parse_get_upstream_size (GstBaseParse * parse,
                                                 gint64 * upstream_size);
 
+void            gst_base_parse_get_encoded_size (GstBaseParse * parse, 
+                                                gint64 * encoded_size);
+
 void            gst_base_parse_get_index_last_offset (GstBaseParse * parse,
                                                 gint64 * index_last_offset);
 
index df2b620..80d35f3 100644 (file)
@@ -1,7 +1,7 @@
 Name:       gstreamer
 Summary:    GStreamer streaming media framework runtime
 Version:    0.10.36
-Release:    5
+Release:    6
 Group:      Applications/Multimedia
 License:    LGPLv2+
 Source0:    %{name}-%{version}.tar.gz