[gstreamer] N_SE-28026 (mp3 seek) defect resolve 2.1b_release accepted/tizen_2.1/20130425.035036 submit/tizen/20130610.171455 submit/tizen_2.1/20130424.231845
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 25f88a185cfc1c45f2c5ee962bd5ab4443b60701..54d675acb857977db4af7843a539d8e1ae48d3ce 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,
@@ -4159,6 +4170,16 @@ gst_base_parse_get_upstream_size (GstBaseParse * parse, gint64 * upstream_size)
   GST_BASE_PARSE_INDEX_UNLOCK (parse);
 }
 
+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)
 {
index c7544b58356a2ba2c67a5e4a0047af66f2794fbf..e916992cf437b8c2c7c2afe8401ff93a44da47ad 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 df2b620619a76aca8b2b735fd1d41782d3ea95b1..80d35f383f0a369fab9dc31dd66bb725ce331ab4 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