From: Javier Viguera Date: Mon, 9 Apr 2012 12:44:06 +0200 Subject: [PATCH] gplay_fullscreen * At start play the video with it's own resolution (not full-screened) * Fix 'resize' command to set full-screen flag depending on the display size. Signed-off-by: Javier Viguera --- src/misc/v4l_sink/src/mfw_gst_v4l.c | 4 ++-- src/misc/v4l_sink/src/mfw_gst_v4lsink.c | 2 +- tools/gplay/mfw_gplay_core.c | 16 ++++++++++++++++ 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/misc/v4l_sink/src/mfw_gst_v4l.c b/src/misc/v4l_sink/src/mfw_gst_v4l.c index 8c2ed72..b85879a 100755 --- a/src/misc/v4l_sink/src/mfw_gst_v4l.c +++ b/src/misc/v4l_sink/src/mfw_gst_v4l.c @@ -1355,11 +1355,11 @@ mfw_gst_v4l2_display_init (MFW_GST_V4LSINK_INFO_T * v4l_info, height = (disp_height >> 3) << 3; if (width == 0) { GST_WARNING("Wrong display width information"); - width = v4l_info->fullscreen_width; + width = v4l_info->width; } if (height == 0) { GST_WARNING("Wrong display height information"); - height = v4l_info->fullscreen_height; + height = v4l_info->height; } return ( mfw_gst_v4l2_set_crop(v4l_info, width, height) ); diff --git a/src/misc/v4l_sink/src/mfw_gst_v4lsink.c b/src/misc/v4l_sink/src/mfw_gst_v4lsink.c index c6a6b6c..b2c7b3d 100755 --- a/src/misc/v4l_sink/src/mfw_gst_v4lsink.c +++ b/src/misc/v4l_sink/src/mfw_gst_v4lsink.c @@ -976,7 +976,7 @@ mfw_gst_v4lsink_show_frame (GstBaseSink * basesink, GstBuffer * buf) v4l_info->disp_height); if (result != TRUE) { - g_print ("\nFailed to initalize the display\n"); + GST_WARNING ("Failed to initalize the display"); g_mutex_unlock (v4l_info->flow_lock); return GST_FLOW_OK; } diff --git a/tools/gplay/mfw_gplay_core.c b/tools/gplay/mfw_gplay_core.c index 4705cac..e5569fc 100755 --- a/tools/gplay/mfw_gplay_core.c +++ b/tools/gplay/mfw_gplay_core.c @@ -1583,6 +1583,9 @@ fsl_player_ret_val fsl_player_resize(fsl_player_handle handle, fsl_player_displa fsl_player_property* pproperty = (fsl_player_property*)pplayer->property_handle; GstElement* auto_video_sink = NULL; GstElement* actual_video_sink = NULL; + fsl_player_s32 fullscreen_width = 0; + fsl_player_s32 fullscreen_height = 0; + fsl_player_s32 fb = 0; g_object_get(pproperty->playbin, "video-sink", &auto_video_sink, NULL); if( NULL == auto_video_sink ) @@ -1607,6 +1610,19 @@ fsl_player_ret_val fsl_player_resize(fsl_player_handle handle, fsl_player_displa g_object_set(G_OBJECT(actual_video_sink), "disp-width", pproperty->display_parameter.disp_width, NULL); g_object_set(G_OBJECT(actual_video_sink), "disp-height", pproperty->display_parameter.disp_height, NULL); + /* Set full-screen flag depending on the new display parameters */ + fullscreen_fb0_open(&fb); + fullscreen_fb0_get_width_height(fb, &(fullscreen_width), &(fullscreen_height)); + fullscreen_fb0_close(&fb); + if ((pproperty->display_parameter.offsetx == 0) + && (pproperty->display_parameter.offsety == 0) + && (pproperty->display_parameter.disp_width == fullscreen_width) + && (pproperty->display_parameter.disp_height == fullscreen_height)) { + pproperty->bfullscreen = 1; + } else { + pproperty->bfullscreen = 0; + } + update_mfw_v4lsink_parameter(actual_video_sink); g_object_unref (actual_video_sink);