Disable PTS interpolation in base parsers

And dispatch decoder status immediately.

Change-Id: I99d6ad2a09dbf50fe79b1e5ef7bef3d74ff736c5
Signed-off-by: Eugene Mutavchi <Ievgen_Mutavchi@comcast.com>
diff --git a/src/third_party/starboard/rdk/shared/player/player_internal.cc b/src/third_party/starboard/rdk/shared/player/player_internal.cc
index 755f0d1..2300156 100644
--- a/src/third_party/starboard/rdk/shared/player/player_internal.cc
+++ b/src/third_party/starboard/rdk/shared/player/player_internal.cc
@@ -29,6 +29,7 @@
 #include <gst/base/gstflowcombiner.h>
 #include <gst/video/video.h>
 #include <gst/base/gstbasetransform.h>
+#include <gst/base/gstbaseparse.h>
 
 #include <map>
 #include <string>
@@ -1266,9 +1267,17 @@
     }
 
     decoder_state_data_ |= need_data;
+
+#if 1
+    if ((need_data & static_cast<int>(MediaType::kAudio)) != 0)
+      decoder_status_func_(player_, context_, kSbMediaTypeAudio, kSbPlayerDecoderStateNeedsData, ticket_);
+    if ((need_data & static_cast<int>(MediaType::kVideo)) != 0)
+      decoder_status_func_(player_, context_, kSbMediaTypeVideo, kSbPlayerDecoderStateNeedsData, ticket_);
+#else
     DispatchOnWorkerThread(new DecoderStatusTask(
       decoder_status_func_, player_, ticket_, context_,
       kSbPlayerDecoderStateNeedsData, static_cast<MediaType>(need_data)));
+#endif
   }
 
   gboolean HandleBusMessage(GstBus* bus, GstMessage* message);
@@ -1968,6 +1977,10 @@
     }
   }
 
+  if (GST_IS_BASE_PARSE(element)) {
+    gst_base_parse_set_pts_interpolation(GST_BASE_PARSE(element), FALSE);
+  }
+
   const gchar *klass_str = gst_element_class_get_metadata(GST_ELEMENT_GET_CLASS(element), "klass");
   if (strstr(klass_str, "Sink")) {
     GObjectClass *oclass = G_OBJECT_GET_CLASS(element);