[Feature]add MT2731_MP2_MR2_SVN388 baseline version

Change-Id: Ief04314834b31e27effab435d3ca8ba33b499059
diff --git a/meta/meta-mediatek-ivt/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0002-qtdemux-resolve-special-3gp-file-not-play-issue.patch b/meta/meta-mediatek-ivt/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0002-qtdemux-resolve-special-3gp-file-not-play-issue.patch
new file mode 100644
index 0000000..bb07bc0
--- /dev/null
+++ b/meta/meta-mediatek-ivt/recipes-multimedia/gstreamer/gstreamer1.0-plugins-good/0002-qtdemux-resolve-special-3gp-file-not-play-issue.patch
@@ -0,0 +1,67 @@
+From 3ddda676fd4947353840510094cfc5e8326c53da Mon Sep 17 00:00:00 2001
+From: Xiaolei Gao <xiaolei.gao@mediatek.com>
+Date: Wed, 28 Dec 2016 15:11:22 +0800
+Subject: [PATCH] qtdemux: resolve special 3gp file not play issue
+
+resolve special 3gp file can't play issue
+Test:
+
+Signed-off-by: Xiaolei Gao <xiaolei.gao@mediatek.com>
+CR-Id: AUTO00001811
+---
+ gst/isomp4/qtdemux.c | 18 ++++++++++++++++++
+ 1 file changed, 18 insertions(+)
+
+diff --git a/gst/isomp4/qtdemux.c b/gst/isomp4/qtdemux.c
+index cc40893..4a767b9 100644
+--- a/gst/isomp4/qtdemux.c
++++ b/gst/isomp4/qtdemux.c
+@@ -200,6 +200,9 @@ struct _QtDemuxSegment
+   GstClockTime time;
+   GstClockTime stop_time;
+   GstClockTime duration;
++  GstClockTime pre_media_stop;
++  GstClockTime pre_stop_time;
++  GstClockTime pre_duration;
+   /* media time of trak, all gst time */
+   GstClockTime media_start;
+   GstClockTime media_stop;
+@@ -2636,6 +2639,9 @@ check_update_duration (GstQTDemux * qtdemux, GstClockTime duration)
+         stream->duration = movdur;
+         if (stream->dummy_segment) {
+           /* Update all dummy values to new duration */
++          stream->segments[0].pre_stop_time = stream->segments[0].stop_time;
++          stream->segments[0].pre_duration = stream->segments[0].duration;
++          stream->segments[0].pre_media_stop = stream->segments[0].media_stop;
+           stream->segments[0].stop_time = duration;
+           stream->segments[0].duration = duration;
+           stream->segments[0].media_stop = duration;
+@@ -4348,6 +4354,14 @@ gst_qtdemux_prepare_current_sample (GstQTDemux * qtdemux,
+   /* different segment, activate it, sample_index will be set. */
+   if (G_UNLIKELY (stream->segment_index != seg_idx))
+     gst_qtdemux_activate_segment (qtdemux, stream, seg_idx, time_position);
++  else if (stream->dummy_segment == TRUE) {
++    if ((stream->segments[0].time > time_position) || (time_position >= stream->segments[0].pre_stop_time)) {      
++      gst_qtdemux_activate_segment (qtdemux, stream, 0, stream->segments[0].time);
++      stream->segments[0].pre_stop_time = stream->segments[0].stop_time;
++      stream->segments[0].pre_duration = stream->segments[0].duration;
++      stream->segments[0].pre_media_stop = stream->segments[0].media_stop;
++    }
++  }
+ 
+   if (G_UNLIKELY (QTSEGMENT_IS_EMPTY (&stream->segments[stream->
+                   segment_index]))) {
+@@ -7977,6 +7991,10 @@ done:
+     stream->segments[0].rate = 1.0;
+     stream->segments[0].trak_media_start = 0;
+ 
++    stream->segments[0].pre_stop_time = GST_CLOCK_TIME_NONE;
++    stream->segments[0].pre_duration = GST_CLOCK_TIME_NONE;
++    stream->segments[0].pre_media_stop = GST_CLOCK_TIME_NONE;
++
+     GST_DEBUG_OBJECT (qtdemux, "created dummy segment %" GST_TIME_FORMAT,
+         GST_TIME_ARGS (stream_duration));
+     stream->n_segments = 1;
+-- 
+1.9.1
+