-/**\r
- * @file\r
- * @brief The event for playback.\r
- * @interfacetype Module\r
- * @privlevel None-privilege\r
- * @privilege None\r
- * @product TV, AV, B2B\r
- * @version 1.0\r
- * @SDK_Support N\r
- * @remark This is a group of C style event related enum and structure.\r
- * @see N/A\r
- *\r
- * Copyright (c) 2018 Samsung Electronics Co., Ltd All Rights Reserved\r
- * PROPRIETARY/CONFIDENTIAL\r
- * This software is the confidential and proprietary\r
- * information of SAMSUNG ELECTRONICS ("Confidential Information"). You shall\r
- * not disclose such Confidential Information and shall use it only in\r
- * accordance with the terms of the license agreement you entered into with\r
- * SAMSUNG ELECTRONICS. SAMSUNG make no representations or warranties about the\r
- * suitability of the software, either express or implied, including but not\r
- * limited to the implied warranties of merchantability, fitness for a\r
- * particular purpose, or non-infringement. SAMSUNG shall not be liable for any\r
- * damages suffered by licensee as a result of using, modifying or distributing\r
- * this software or its derivatives.\r
- */\r
-\r
-#ifndef __PLUSPLAYER_TRACKRENDERER_CORE_EVENT_H__\r
-#define __PLUSPLAYER_TRACKRENDERER_CORE_EVENT_H__\r
-\r
-namespace plusplayer {\r
-\r
-namespace trackrenderer {\r
-/**\r
- * @brief\r
- */\r
-typedef struct {\r
- /**\r
- * @description\r
- */\r
- std::string data;\r
- /**\r
- * @description\r
- */\r
- uint64_t len;\r
-} EventMsg;\r
-\r
-/**\r
- * @brief\r
- */\r
-enum class EventType {\r
- kNone,\r
- kResolutionChanged,\r
-};\r
-\r
-} // namespace trackrenderer\r
-\r
-} // namespace plusplayer\r
-\r
-#endif // __PLUSPLAYER_TRACKRENDERER_CORE_EVENT_H__\r
+/**
+ * @file
+ * @brief The event for playback.
+ * @interfacetype Module
+ * @privlevel None-privilege
+ * @privilege None
+ * @product TV, AV, B2B
+ * @version 1.0
+ * @SDK_Support N
+ * @remark This is a group of C style event related enum and structure.
+ * @see N/A
+ *
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd All Rights Reserved
+ * PROPRIETARY/CONFIDENTIAL
+ * This software is the confidential and proprietary
+ * information of SAMSUNG ELECTRONICS ("Confidential Information"). You shall
+ * not disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into with
+ * SAMSUNG ELECTRONICS. SAMSUNG make no representations or warranties about the
+ * suitability of the software, either express or implied, including but not
+ * limited to the implied warranties of merchantability, fitness for a
+ * particular purpose, or non-infringement. SAMSUNG shall not be liable for any
+ * damages suffered by licensee as a result of using, modifying or distributing
+ * this software or its derivatives.
+ */
+
+#ifndef __PLUSPLAYER_TRACKRENDERER_CORE_EVENT_H__
+#define __PLUSPLAYER_TRACKRENDERER_CORE_EVENT_H__
+
+namespace plusplayer {
+
+namespace trackrenderer {
+/**
+ * @brief
+ */
+typedef struct {
+ /**
+ * @description
+ */
+ std::string data;
+ /**
+ * @description
+ */
+ uint64_t len;
+} EventMsg;
+
+/**
+ * @brief
+ */
+enum class EventType {
+ kNone,
+ kResolutionChanged,
+ kRequestedFirstRenderFrame,
+};
+
+} // namespace trackrenderer
+
+} // namespace plusplayer
+
+#endif // __PLUSPLAYER_TRACKRENDERER_CORE_EVENT_H__
} // case GST_MESSAGE_STATE_CHANGED
case GST_MESSAGE_ELEMENT: {
TRACKRENDERER_INFO("GST_MESSAGE_ELEMENT");
+ std::string struct_name =
+ gst_structure_get_name(gst_message_get_structure(message));
+ if (struct_name == "requested_first_render_frame") {
+ TRACKRENDERER_DEBUG("got first render frame event");
+ if (trackrenderer->low_latency_mode_ & kLowLatencyModeDisableAVSync ||
+ trackrenderer->low_latency_mode_ & kLowLatencyModeDisablePreroll) {
+ EventMsg event_msg;
+ event_msg.data = "requested first render frame";
+ event_msg.len = event_msg.data.length();
+ trackrenderer->eventlistener_->OnEvent(
+ EventType::kRequestedFirstRenderFrame, event_msg);
+ }
+ }
break;
} // case GST_MESSAGE_ELEMENT
case GST_MESSAGE_ASYNC_DONE: {