amlvideosink: CB2 rename eos thread and set has audio [1/1]
PD#SWPL-124412
Problem:
loss break in switch case
Solution:
1.add break in switch case
2.remove a log
3.rename eos detect thread
4.add set has audio to render lib
Verify:
ah212
Change-Id: I8500105cab51014d25d1f61281525f01a0ba8e4e
Signed-off-by: fei.deng <fei.deng@amlogic.com>
diff --git a/src/gstamlvideosink.c b/src/gstamlvideosink.c
index bfb8403..2f92154 100644
--- a/src/gstamlvideosink.c
+++ b/src/gstamlvideosink.c
@@ -234,7 +234,7 @@
static void gst_emit_eos_signal(GstAmlVideoSink *vsink);
static void gst_wait_eos_signal(GstAmlVideoSink *vsink);
static void gst_aml_video_sink_dump_stat(GstAmlVideoSink *sink, const gchar *file_name);
-static gpointer EOSDetectionThread(gpointer data);
+static gpointer eos_detection_thread(gpointer data);
/* public interface definition */
static void gst_aml_video_sink_class_init(GstAmlVideoSinkClass *klass)
@@ -384,8 +384,8 @@
sink->pip_mode = 0;
sink->display_output_index = 0;
sink->secure_mode = FALSE;
- sink->eosDetectionThread = NULL;
- sink->quitEOSDetectionThread = FALSE;
+ sink->eos_detect_thread_handle = NULL;
+ sink->quit_eos_detect_thread = FALSE;
g_mutex_init(&sink->eos_lock);
g_cond_init(&sink->eos_cond);
@@ -733,7 +733,7 @@
}
case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
{
- sink->videoPlaying = TRUE;
+ sink->video_playing = TRUE;
if (render_resume(sink_priv->render_device_handle) == -1)
{
GST_ERROR_OBJECT(sink, "render lib resume device fail");
@@ -743,7 +743,7 @@
}
case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
{
- sink->videoPlaying = FALSE;
+ sink->video_playing = FALSE;
if (gst_base_sink_is_async_enabled(GST_BASE_SINK(sink)))
{
GST_OBJECT_UNLOCK(sink);
@@ -788,11 +788,11 @@
}
case GST_STATE_CHANGE_PAUSED_TO_READY:
{
- if ( sink->eosDetectionThread )
+ if ( sink->eos_detect_thread_handle )
{
- sink->quitEOSDetectionThread= TRUE;
- g_thread_join(sink->eosDetectionThread);
- sink->eosDetectionThread= NULL;
+ sink->quit_eos_detect_thread= TRUE;
+ g_thread_join(sink->eos_detect_thread_handle);
+ sink->eos_detect_thread_handle= NULL;
}
GST_DEBUG_OBJECT(sink, "before disconnect rlib");
if (render_disconnect(sink_priv->render_device_handle) == -1)
@@ -1070,11 +1070,11 @@
sink->queued++;
gst_aml_video_sink_dump_stat(sink, GST_DUMP_STAT_FILENAME);
GST_DEBUG_OBJECT(sink, "GstBuffer:%p, pts: %" GST_TIME_FORMAT " queued ok, queued:%d", buffer, GST_TIME_ARGS(GST_BUFFER_PTS(buffer)), sink->queued);
- sink->quitEOSDetectionThread = FALSE;
- if (sink->eosDetectionThread == NULL )
+ sink->quit_eos_detect_thread = FALSE;
+ if (sink->eos_detect_thread_handle == NULL )
{
GST_DEBUG_OBJECT(sink, "start eos detect thread");
- sink->eosDetectionThread= g_thread_new("video_sink_eos", EOSDetectionThread, sink);
+ sink->eos_detect_thread_handle = g_thread_new("video_sink_eos", eos_detection_thread, sink);
}
return ret;
@@ -1177,6 +1177,7 @@
gst_event_unref(event);
return result;
}
+ break;
}
case GST_EVENT_CAPS:
{
@@ -1191,11 +1192,11 @@
if (gst_structure_get_fraction( structure, "framerate", &num, &denom ))
{
if ( denom == 0 ) denom= 1;
- sink->frameRate= (double)num/(double)denom;
- if ( sink->frameRate <= 0.0 )
+ sink->frame_rate= (double)num/(double)denom;
+ if ( sink->frame_rate <= 0.0 )
{
GST_DEBUG_OBJECT(sink, "caps have framerate of 0 - assume 60");
- sink->frameRate= 60.0;
+ sink->frame_rate= 60.0;
}
}
}
@@ -1376,7 +1377,6 @@
if (buffer)
{
sink->last_displayed_buf_pts = GST_BUFFER_PTS(buffer);
- GST_LOG_OBJECT(sink, "get message: MSG_DISPLAYED_BUFFER from tunnel lib");
if (type == MSG_DROPED_BUFFER)
{
GST_LOG_OBJECT(sink, "get message: MSG_DROPED_BUFFER from tunnel lib");
@@ -1457,8 +1457,11 @@
}
if (gst_get_mediasync_instanceid(vsink))
{
+ int hasAudio = 1;
*val = sink_priv->mediasync_instanceid;
GST_DEBUG_OBJECT(vsink, "get mediasync instance id:%d", *val);
+ *val = sink_priv->mediasync_instanceid;
+ render_set(sink_priv->render_device_handle, KEY_MEDIASYNC_HAS_AUDIO, (void *)&hasAudio);
}
else
{
@@ -1770,18 +1773,18 @@
return TRUE;
}
-static gpointer EOSDetectionThread(gpointer data)
+static gpointer eos_detection_thread(gpointer data)
{
GstAmlVideoSink *sink = (GstAmlVideoSink *)data;
GstAmlVideoSinkPrivate *sink_priv = GST_AML_VIDEO_SINK_GET_PRIVATE(sink);
int eosCountDown;
- GST_DEBUG("VideoEOSThread: enter");
+ GST_DEBUG("eos_detection_thread: enter");
eosCountDown = 2;
- while (!sink->quitEOSDetectionThread )
+ while (!sink->quit_eos_detect_thread )
{
- usleep(1000000/sink->frameRate);
- if (sink->videoPlaying && sink_priv->got_eos)
+ usleep(1000000/sink->frame_rate);
+ if (sink->video_playing && sink_priv->got_eos)
{
if (sink->queued == sink->rendered + sink->droped)
{
@@ -1830,7 +1833,7 @@
}
}
- GST_DEBUG("VideoEOSThread: exit");
+ GST_DEBUG("eos_detection_thread: exit");
return NULL;
}
diff --git a/src/gstamlvideosink.h b/src/gstamlvideosink.h
index 3b34394..bc8da5c 100644
--- a/src/gstamlvideosink.h
+++ b/src/gstamlvideosink.h
@@ -62,10 +62,10 @@
gint display_output_index;
GMutex eos_lock;
GCond eos_cond;
- gboolean quitEOSDetectionThread;
- GThread *eosDetectionThread;
- double frameRate;
- gboolean videoPlaying;
+ gboolean quit_eos_detect_thread;
+ GThread *eos_detect_thread_handle;
+ double frame_rate;
+ gboolean video_playing;
gboolean secure_mode;