Name: libmm-player
Summary: Multimedia Framework Player Library
-Version: 0.5.96
+Version: 0.5.97
Release: 0
Group: Multimedia/Libraries
License: Apache-2.0
#define MM_PLAYER_DRC_MODE "drc_mode"
/**
- * MM_PLAYER_GAPLESS
+ * MM_PLAYER_GAPLESS_MODE
*
* gapless playback mode (int)
*/
#define MM_PLAYER_GAPLESS_MODE "gapless_mode"
+/**
+ * MM_PLAYER_ENABLE_VIDEO_DECODED_CB
+ *
+ * enable video decoded callback (int)
+ */
+#define MM_PLAYER_ENABLE_VIDEO_DECODED_CB "enable_video_decoded_cb"
+
#define BUFFER_MAX_PLANE_NUM (4)
typedef struct {
}
}
+ if (g_strrstr(attribute_name, MM_PLAYER_ENABLE_VIDEO_DECODED_CB)) {
+ if (!player->set_mode.media_packet_video_stream) {
+ LOGE("there is no callback for media_packet");
+ return MM_ERROR_PLAYER_INTERNAL;
+ }
+ int enable = 0;
+ mm_attrs_get_int_by_name(player->attrs, "enable_video_decoded_cb", &enable);
+ g_object_set(player->pipeline->videobin[MMPLAYER_V_SINK].gst, "signal-handoffs", enable ? TRUE : FALSE, NULL);
+ }
+
return MM_ERROR_NONE;
}
MM_ATTRS_VALID_TYPE_INT_RANGE,
FALSE,
TRUE
+ },
+ {
+ "enable_video_decoded_cb",
+ MM_ATTRS_TYPE_INT,
+ MM_ATTRS_FLAG_RW,
+ (void *) FALSE,
+ MM_ATTRS_VALID_TYPE_INT_RANGE,
+ FALSE,
+ TRUE
}
};
}
}
}
+ if (player->set_mode.media_packet_video_stream) {
+ int enable = 0;
+ mm_attrs_get_int_by_name(player->attrs, "enable_video_decoded_cb", &enable);
+ if (enable)
+ g_object_set(G_OBJECT(player->pipeline->videobin[MMPLAYER_V_SINK].gst), "signal-handoffs", TRUE, NULL);
+
+ MMPLAYER_SIGNAL_CONNECT(player,
+ G_OBJECT(player->pipeline->videobin[MMPLAYER_V_SINK].gst),
+ MM_PLAYER_SIGNAL_TYPE_VIDEOBIN,
+ "handoff",
+ G_CALLBACK(__mmplayer_video_stream_decoded_render_cb),
+ (gpointer)player);
+
+ MMPLAYER_SIGNAL_CONNECT(player,
+ G_OBJECT(player->pipeline->videobin[MMPLAYER_V_SINK].gst),
+ MM_PLAYER_SIGNAL_TYPE_VIDEOBIN,
+ "preroll-handoff",
+ G_CALLBACK(__mmplayer_video_stream_decoded_preroll_cb),
+ (gpointer)player);
+ }
break;
}
case MM_DISPLAY_SURFACE_REMOTE: