meta-digi: Add gsl-fls-plugin package.
The package is added in meta-fsl-arm and the customizations are done in meta-fsl-del. Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
This commit is contained in:
parent
855232c9a0
commit
5c765c43c5
|
|
@ -0,0 +1,41 @@
|
|||
# Copyright (C) 2011 Freescale Semiconductor
|
||||
# Copyright (C) 2012 Digi international
|
||||
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||
|
||||
DESCRIPTION = "Gstreamer freescale plugins"
|
||||
LICENSE = "GPLv2 & LGPLv2 & LGPLv2.1"
|
||||
SECTION = "multimedia"
|
||||
DEPENDS = "gstreamer gst-plugins-base fsl-mm-codeclib imx-lib"
|
||||
RDEPENDS_${PN} = "fsl-mm-codeclib"
|
||||
INC_PR = "r5"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=59530bdf33659b29e73d4adb9f9f6552 \
|
||||
file://COPYING-LGPL-2;md5=5f30f0716dfdd0d91eb439ebec522ec2 \
|
||||
file://COPYING-LGPL-2.1;md5=fbc093901857fcd118f065f900982c24"
|
||||
|
||||
SRC_URI = "${DIGI_LOG_MIRROR}/${PN}-${PV}.tar.gz \
|
||||
"
|
||||
|
||||
inherit autotools pkgconfig
|
||||
|
||||
# Todo add a mechanism to map posible build targets
|
||||
INCLUDE_DIR = "-I${STAGING_KERNEL_DIR}/include"
|
||||
EXTRA_OEMAKE = "INCLUDES=${INCLUDE_DIR}"
|
||||
EXTRA_OECONF = "PLATFORM=MX51 --disable-valgrind --disable-examples --disable-debug"
|
||||
|
||||
PACKAGES += "${PN}-libmfwsconf ${PN}-libgplaycore \
|
||||
${PN}-libme ${PN}-libgstbufmeta ${PN}-libmfwba \
|
||||
${PN}-libfwvss ${PN}-gplay"
|
||||
|
||||
FILES_${PN} = "${libdir}/gstreamer-0.10/*.so ${datadir}"
|
||||
FILES_${PN}-dbg += "${libdir}/gstreamer-0.10/.debug"
|
||||
FILES_${PN}-dev += "${libdir}/gstreamer-0.10/*.la"
|
||||
FILES_${PN}-staticdev += "${libdir}/gstreamer-0.10/*.a"
|
||||
|
||||
FILES_${PN}-gplay = "${bindir}/gplay"
|
||||
FILES_${PN}-libmfwsconf = "${libdir}/libmfwsconf${SOLIBS}"
|
||||
FILES_${PN}-libgplaycore = "${libdir}/libgplaycore${SOLIBS}"
|
||||
FILES_${PN}-libme = "${libdir}/libme${SOLIBS}"
|
||||
FILES_${PN}-libgstbufmeta = "${libdir}/libgstbufmeta${SOLIBS}"
|
||||
FILES_${PN}-libmfwba = "${libdir}/libmfwba${SOLIBS}"
|
||||
FILES_${PN}-libfwvss = "${libdir}/libmfwvss${SOLIBS}"
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
# Copyright (C) 2011 Freescale Semicondutor
|
||||
# Copyright (C) 2012 Digi International
|
||||
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||
|
||||
require gst-fsl-plugin.inc
|
||||
|
||||
PR = "${INC_PR}.0"
|
||||
|
||||
SRC_URI[md5sum] = "ab9fcca9d46a61c898862bcf18e3843c"
|
||||
SRC_URI[sha256sum] = "a05cf407518528d10a2086e6952e5e93da3d311e1be0f8f20a8d765520afdd78"
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
From: Javier Viguera <javier.viguera@digi.com>
|
||||
Date: Mon, 12 Mar 2012 12:47:31 +0100
|
||||
Subject: [PATCH] ltmain
|
||||
|
||||
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
|
||||
---
|
||||
ltmain.sh | 32 +++++++++++++++++++++++---------
|
||||
1 file changed, 23 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/ltmain.sh b/ltmain.sh
|
||||
index 0223495..7877159 100755
|
||||
--- a/ltmain.sh
|
||||
+++ b/ltmain.sh
|
||||
@@ -283,8 +283,9 @@ func_infer_tag ()
|
||||
# line option must be used.
|
||||
if test -z "$tagname"; then
|
||||
$echo "$modename: unable to infer tagged configuration"
|
||||
- $echo "$modename: specify a tag with \`--tag'" 1>&2
|
||||
- exit $EXIT_FAILURE
|
||||
+ $echo "$modename: defaulting to \`CC'"
|
||||
+ $echo "$modename: if this is not correct, specify a tag with \`--tag'"
|
||||
+# exit $EXIT_FAILURE
|
||||
# else
|
||||
# $echo "$modename: using $tagname tagged configuration"
|
||||
fi
|
||||
@@ -2434,8 +2435,14 @@ EOF
|
||||
absdir="$abs_ladir"
|
||||
libdir="$abs_ladir"
|
||||
else
|
||||
- dir="$libdir"
|
||||
- absdir="$libdir"
|
||||
+ # Adding 'libdir' from the .la file to our library search paths
|
||||
+ # breaks crosscompilation horribly. We cheat here and don't add
|
||||
+ # it, instead adding the path where we found the .la. -CL
|
||||
+ dir="$abs_ladir"
|
||||
+ absdir="$abs_ladir"
|
||||
+ libdir="$abs_ladir"
|
||||
+ #dir="$libdir"
|
||||
+ #absdir="$libdir"
|
||||
fi
|
||||
test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
|
||||
else
|
||||
@@ -2574,7 +2581,7 @@ EOF
|
||||
{ test "$use_static_libs" = no || test -z "$old_library"; }; then
|
||||
if test "$installed" = no; then
|
||||
notinst_deplibs="$notinst_deplibs $lib"
|
||||
- need_relink=yes
|
||||
+ need_relink=no
|
||||
fi
|
||||
# This is a shared library
|
||||
|
||||
@@ -5641,6 +5648,10 @@ fi\
|
||||
# Replace all uninstalled libtool libraries with the installed ones
|
||||
newdependency_libs=
|
||||
for deplib in $dependency_libs; do
|
||||
+ # Replacing uninstalled with installed can easily break crosscompilation,
|
||||
+ # since the installed path is generally the wrong architecture. -CL
|
||||
+ newdependency_libs="$newdependency_libs $deplib"
|
||||
+ continue
|
||||
case $deplib in
|
||||
*.la)
|
||||
name=`$echo "X$deplib" | $Xsed -e 's%^.*/%%'`
|
||||
@@ -5962,10 +5973,13 @@ relink_command=\"$relink_command\""
|
||||
# At present, this check doesn't affect windows .dll's that
|
||||
# are installed into $libdir/../bin (currently, that works fine)
|
||||
# but it's something to keep an eye on.
|
||||
- if test "$inst_prefix_dir" = "$destdir"; then
|
||||
- $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
|
||||
- exit $EXIT_FAILURE
|
||||
- fi
|
||||
+ #
|
||||
+ # This breaks install into our staging area. -PB
|
||||
+ #
|
||||
+ # if test "$inst_prefix_dir" = "$destdir"; then
|
||||
+ # $echo "$modename: error: cannot install \`$file' to a directory not ending in $libdir" 1>&2
|
||||
+ # exit $EXIT_FAILURE
|
||||
+ # fi
|
||||
|
||||
if test -n "$inst_prefix_dir"; then
|
||||
# Stick the inst_prefix_dir data into the link command.
|
||||
|
|
@ -0,0 +1,80 @@
|
|||
From: Javier Viguera <javier.viguera@digi.com>
|
||||
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 <javier.viguera@digi.com>
|
||||
---
|
||||
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);
|
||||
|
|
@ -0,0 +1,185 @@
|
|||
From 1767c2d99895b682a79a0b874379811e83f6f147 Mon Sep 17 00:00:00 2001
|
||||
From: Alejandro Gonzalez <alex.gonzalez@digi.com>
|
||||
Date: Tue, 13 Mar 2012 19:20:02 +0100
|
||||
Subject: [PATCH] add-fb-dev
|
||||
|
||||
Add framebuffer select functionality to sink
|
||||
|
||||
To support displaying to the second monitor, the mfw_v4lsink sink
|
||||
element needs to accept a device parameter specifying the framebuffer
|
||||
device to use as output.
|
||||
|
||||
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
|
||||
---
|
||||
src/misc/v4l_sink/src/mfw_gst_fb.c | 15 +++++++++------
|
||||
src/misc/v4l_sink/src/mfw_gst_fb.h | 1 -
|
||||
src/misc/v4l_sink/src/mfw_gst_v4l.c | 4 ++++
|
||||
src/misc/v4l_sink/src/mfw_gst_v4lsink.c | 27 +++++++++++++++++++++++++--
|
||||
src/misc/v4l_sink/src/mfw_gst_v4lsink.h | 3 ++-
|
||||
5 files changed, 40 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/src/misc/v4l_sink/src/mfw_gst_fb.c b/src/misc/v4l_sink/src/mfw_gst_fb.c
|
||||
index 8c251da..fb13489 100755
|
||||
--- a/src/misc/v4l_sink/src/mfw_gst_fb.c
|
||||
+++ b/src/misc/v4l_sink/src/mfw_gst_fb.c
|
||||
@@ -199,16 +199,19 @@ POST-CONDITIONS: None
|
||||
IMPORTANT NOTES: None
|
||||
=============================================================================*/
|
||||
|
||||
-gboolean mfw_gst_fb0_open(gint *fb)
|
||||
+gboolean mfw_gst_fb0_open(MFW_GST_V4LSINK_INFO_T * v4l_info)
|
||||
{
|
||||
gboolean retval = TRUE;
|
||||
gchar fb_device[100] = FB_DEIVCE;
|
||||
|
||||
- if ((*fb =
|
||||
- open(fb_device, O_RDWR, 0)) < 0) {
|
||||
- g_print("Unable to open %s %d\n", fb_device, *fb);
|
||||
- *fb = 0;
|
||||
- retval = FALSE;
|
||||
+ if (v4l_info->device != NULL && v4l_info->device[0] != '\0')
|
||||
+ strcpy(fb_device , v4l_info->device);
|
||||
+
|
||||
+ GST_DEBUG_OBJECT (v4l_info, "opened framebuffer %s", v4l_info->device);
|
||||
+ if ((v4l_info->fd_fb = open(fb_device, O_RDWR, 0)) < 0) {
|
||||
+ g_print("Unable to open %s %d\n", fb_device, v4l_info->fd_fb);
|
||||
+ v4l_info->fd_fb = 0;
|
||||
+ retval = FALSE;
|
||||
}
|
||||
return retval;
|
||||
|
||||
diff --git a/src/misc/v4l_sink/src/mfw_gst_fb.h b/src/misc/v4l_sink/src/mfw_gst_fb.h
|
||||
index 01321d6..4876b73 100755
|
||||
--- a/src/misc/v4l_sink/src/mfw_gst_fb.h
|
||||
+++ b/src/misc/v4l_sink/src/mfw_gst_fb.h
|
||||
@@ -50,7 +50,6 @@
|
||||
|
||||
gboolean mfw_gst_set_gbl_alpha(gint fb, gint alphaVal);
|
||||
gboolean mfw_gst_fb0_set_colorkey(gint fb,gulong *colorSrc);
|
||||
-gboolean mfw_gst_fb0_open(gint *fb);
|
||||
gboolean mfw_gst_fb0_close(gint *fb);
|
||||
|
||||
#if ((defined (_MX37) || defined (_MX51)) && defined (LOC_ALPHA_SUPPORT))
|
||||
diff --git a/src/misc/v4l_sink/src/mfw_gst_v4l.c b/src/misc/v4l_sink/src/mfw_gst_v4l.c
|
||||
index b85879a..d773f6a 100755
|
||||
--- a/src/misc/v4l_sink/src/mfw_gst_v4l.c
|
||||
+++ b/src/misc/v4l_sink/src/mfw_gst_v4l.c
|
||||
@@ -540,6 +540,10 @@ mfw_gst_v4l2_mx37_mx51_tv_close (MFW_GST_V4LSINK_INFO_T * v4l_info)
|
||||
|
||||
gint out = 3;
|
||||
|
||||
+ if (v4l_info->device && !strcmp(v4l_info->device, "/dev/fb1"))
|
||||
+ out = 5;
|
||||
+ g_free(v4l_info->device);
|
||||
+
|
||||
// mfw_gst_v4l2_mx37_mx51_tv_setblank (v4l_info);
|
||||
|
||||
v4l_info->tv_mode = NV_MODE;
|
||||
diff --git a/src/misc/v4l_sink/src/mfw_gst_v4lsink.c b/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
|
||||
index b2c7b3d..d7943c1 100755
|
||||
--- a/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
|
||||
+++ b/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
|
||||
@@ -137,6 +137,7 @@ enum
|
||||
TV_OUT,
|
||||
TV_MODE,
|
||||
#endif
|
||||
+ DEVICE,
|
||||
DUMP_LOCATION,
|
||||
ADDITIONAL_BUFFER_DEPTH,
|
||||
SETPARA,
|
||||
@@ -741,6 +742,11 @@ mfw_gst_v4lsink_set_property (GObject * object, guint prop_id,
|
||||
case DUMP_LOCATION:
|
||||
dumpfile_set_location (v4l_info, g_value_get_string (value));
|
||||
break;
|
||||
+
|
||||
+ case DEVICE:
|
||||
+ v4l_info->device = g_strdup (g_value_get_string (value));
|
||||
+ break;
|
||||
+
|
||||
case SETPARA:
|
||||
v4l_info->setpara |= g_value_get_int (value);
|
||||
break;
|
||||
@@ -848,6 +854,10 @@ mfw_gst_v4lsink_get_property (GObject * object, guint prop_id,
|
||||
case DUMP_LOCATION:
|
||||
g_value_set_string (value, v4l_info->dump_location);
|
||||
break;
|
||||
+
|
||||
+ case DEVICE:
|
||||
+ g_value_set_string (value, v4l_info->device);
|
||||
+ break;
|
||||
case SETPARA:
|
||||
g_value_set_int (value, v4l_info->setpara);
|
||||
break;
|
||||
@@ -1497,6 +1507,12 @@ mfw_gst_v4lsink_finalize (GObject * object)
|
||||
|
||||
}
|
||||
|
||||
+static void mfw_gst_v4lsink_start(GstBaseSink * bsink)
|
||||
+{
|
||||
+ MFW_GST_V4LSINK_INFO_T *v4l_info = MFW_GST_V4LSINK(bsink);
|
||||
+ mfw_gst_fb0_open(v4l_info);
|
||||
+}
|
||||
+
|
||||
/*=============================================================================
|
||||
FUNCTION: mfw_gst_v4lsink_init
|
||||
|
||||
@@ -1541,6 +1557,7 @@ mfw_gst_v4lsink_init (MFW_GST_V4LSINK_INFO_T * v4l_info,
|
||||
v4l_info->dump_location = NULL;
|
||||
v4l_info->dumpfile = NULL;
|
||||
v4l_info->dump_length = 0;
|
||||
+ v4l_info->device = NULL;
|
||||
v4l_info->cr_left_bypixel_orig = 0;
|
||||
v4l_info->cr_right_bypixel_orig = 0;
|
||||
v4l_info->cr_top_bypixel_orig = 0;
|
||||
@@ -1573,8 +1590,6 @@ mfw_gst_v4lsink_init (MFW_GST_V4LSINK_INFO_T * v4l_info,
|
||||
memset (&v4l_info->crop, 0, sizeof (struct v4l2_crop));
|
||||
memset (&v4l_info->prevCrop, 0, sizeof (struct v4l2_crop));
|
||||
|
||||
- mfw_gst_fb0_open (&v4l_info->fd_fb);
|
||||
-
|
||||
v4l_info->chipcode = getChipCode();
|
||||
v4l_info->v4l_id = -1;
|
||||
|
||||
@@ -1626,6 +1641,7 @@ mfw_gst_v4lsink_class_init (MFW_GST_V4LSINK_INFO_CLASS_T * klass)
|
||||
|
||||
parent_class = g_type_class_peek_parent (klass);
|
||||
|
||||
+ gstvs_class->start = GST_DEBUG_FUNCPTR (mfw_gst_v4lsink_start);
|
||||
gobject_class->set_property = mfw_gst_v4lsink_set_property;
|
||||
gobject_class->get_property = mfw_gst_v4lsink_get_property;
|
||||
gobject_class->finalize = mfw_gst_v4lsink_finalize;
|
||||
@@ -1730,6 +1746,13 @@ mfw_gst_v4lsink_class_init (MFW_GST_V4LSINK_INFO_CLASS_T * klass)
|
||||
NULL,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
+ g_object_class_install_property (gobject_class, DEVICE,
|
||||
+ g_param_spec_string ("device",
|
||||
+ "Framebuffer device",
|
||||
+ "Framebuffer device to display output."
|
||||
+ "/dev/fb0,/dev/fb1",
|
||||
+ NULL,
|
||||
+ G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property (gobject_class, PROP_FORCE_ASPECT_RATIO,
|
||||
g_param_spec_boolean
|
||||
diff --git a/src/misc/v4l_sink/src/mfw_gst_v4lsink.h b/src/misc/v4l_sink/src/mfw_gst_v4lsink.h
|
||||
index 504e06f..4764868 100755
|
||||
--- a/src/misc/v4l_sink/src/mfw_gst_v4lsink.h
|
||||
+++ b/src/misc/v4l_sink/src/mfw_gst_v4lsink.h
|
||||
@@ -279,6 +279,7 @@ typedef struct MFW_GST_V4LSINK_INFO_S
|
||||
FILE *dumpfile;
|
||||
guint64 dump_length;
|
||||
|
||||
+ gchar *device;
|
||||
|
||||
gint qbuff_count; /* buffer counter, increase when frame queued to v4l device */
|
||||
|
||||
@@ -367,7 +368,7 @@ typedef struct MFW_GST_V4LSINK_INFO_CLASS_S
|
||||
=============================================================================*/
|
||||
|
||||
extern GType mfw_gst_v4lsink_get_type (void);
|
||||
-
|
||||
+gboolean mfw_gst_fb0_open(MFW_GST_V4LSINK_INFO_T * v4l_info);
|
||||
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
From: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
Date: Tue, 3 Apr 2012 13:51:45 +0200
|
||||
Subject: [PATCH] mfw_v4lsrc_uyvy
|
||||
|
||||
Change the default pixelformat used by the plugin to uyvy which is
|
||||
supported by the mt9v111 driver.
|
||||
|
||||
Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
---
|
||||
src/misc/v4l_source/src/mfw_gst_v4lsrc.c | 19 ++++---------------
|
||||
1 file changed, 4 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/src/misc/v4l_source/src/mfw_gst_v4lsrc.c b/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
|
||||
index 8ff9b6f..d1057e3 100755
|
||||
--- a/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
|
||||
+++ b/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
|
||||
@@ -425,11 +425,8 @@ static gint mfw_gst_v4lsrc_capture_setup(MFWGstV4LSrc *v4l_src)
|
||||
in_height = v4l_src->capture_height;
|
||||
}
|
||||
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
|
||||
-#ifdef MX51
|
||||
- fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_NV12;
|
||||
-#else
|
||||
- fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;
|
||||
-#endif
|
||||
+
|
||||
+ fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_UYVY;
|
||||
fmt.fmt.pix.width = in_width;
|
||||
fmt.fmt.pix.height = in_height;
|
||||
|
||||
@@ -1225,11 +1222,7 @@ static GstCaps *mfw_gst_v4lsrc_get_caps (GstBaseSrc * src)
|
||||
GstCaps *capslist;
|
||||
GstPadTemplate *src_template = NULL;
|
||||
gint i;
|
||||
-#ifndef MX51
|
||||
- guint32 format = GST_MAKE_FOURCC('I', '4', '2', '0');
|
||||
-#else
|
||||
- guint32 format = GST_MAKE_FOURCC('N', 'V', '1', '2');
|
||||
-#endif
|
||||
+ guint32 format = GST_MAKE_FOURCC('U', 'Y', 'V', 'Y');
|
||||
|
||||
capslist = gst_caps_new_empty();
|
||||
|
||||
@@ -1273,11 +1266,7 @@ static void mfw_gst_v4lsrc_fixate(GstPad * pad, GstCaps * caps)
|
||||
GstStructure *structure=NULL;
|
||||
MFWGstV4LSrc *v4l_src =
|
||||
MFW_GST_V4LSRC(gst_pad_get_parent (pad));
|
||||
-#ifndef MX51
|
||||
- guint32 fourcc = GST_MAKE_FOURCC('I', '4', '2', '0');
|
||||
-#else
|
||||
- guint32 fourcc = GST_MAKE_FOURCC('N', 'V', '1', '2');
|
||||
-#endif
|
||||
+ guint32 fourcc = GST_MAKE_FOURCC('U', 'Y', 'V', 'Y');
|
||||
|
||||
const GValue *v=NULL;
|
||||
for (i = 0; i < gst_caps_get_size (caps); ++i) {
|
||||
|
|
@ -0,0 +1,95 @@
|
|||
From: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
Date: Tue, 3 Apr 2012 13:52:50 +0200
|
||||
Subject: [PATCH] mfw_v4lsec_def_sizes
|
||||
|
||||
Change the default dimensions to the ones supported by the mt9v111 driver.
|
||||
|
||||
Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
---
|
||||
src/misc/v4l_source/src/mfw_gst_v4lsrc.c | 24 ++++++++++++------------
|
||||
1 file changed, 12 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/src/misc/v4l_source/src/mfw_gst_v4lsrc.c b/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
|
||||
index d1057e3..968deb7 100755
|
||||
--- a/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
|
||||
+++ b/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
|
||||
@@ -1304,8 +1304,8 @@ IMPORTANT NOTES: None
|
||||
=============================================================================*/
|
||||
static void mfw_gst_v4lsrc_init(MFWGstV4LSrc * v4l_src, MFWGstV4LSrcClass * klass)
|
||||
{
|
||||
- v4l_src->capture_width=176;
|
||||
- v4l_src->capture_height=144;
|
||||
+ v4l_src->capture_width=640;
|
||||
+ v4l_src->capture_height=480;
|
||||
v4l_src->fps_n=30;
|
||||
v4l_src->fps_d=1;
|
||||
v4l_src->fd_v4l=-1;
|
||||
@@ -1315,12 +1315,12 @@ static void mfw_gst_v4lsrc_init(MFWGstV4LSrc * v4l_src, MFWGstV4LSrcClass * klas
|
||||
v4l_src->crop_pixel=0;
|
||||
v4l_src->rotate=0;
|
||||
v4l_src->preview=FALSE;
|
||||
- v4l_src->preview_width=160;
|
||||
- v4l_src->preview_height=128;
|
||||
+ v4l_src->preview_width=640;
|
||||
+ v4l_src->preview_height=480;
|
||||
v4l_src->preview_top=0;
|
||||
v4l_src->preview_left=0;
|
||||
- v4l_src->sensor_width=1280;
|
||||
- v4l_src->sensor_height=1024;
|
||||
+ v4l_src->sensor_width=640;
|
||||
+ v4l_src->sensor_height=480;
|
||||
v4l_src->capture_mode = 0;
|
||||
v4l_src->bg = FALSE;
|
||||
#ifdef MX27
|
||||
@@ -1372,14 +1372,14 @@ static void mfw_gst_v4lsrc_class_init(MFWGstV4LSrcClass * klass)
|
||||
g_param_spec_int("capture-width",
|
||||
"capture_width",
|
||||
"gets the width of the image to be captured",
|
||||
- 16, 1768, 176,
|
||||
+ 16, 1768, 640,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property(gobject_class, MFW_V4L_SRC_HEIGHT,
|
||||
g_param_spec_int("capture-height",
|
||||
"capture_height",
|
||||
"gets the height of the image to be captured",
|
||||
- 16, 1168, 144,
|
||||
+ 16, 1168, 480,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property(gobject_class, MFW_V4L_SRC_PREVIEW_WIDTH,
|
||||
@@ -1387,7 +1387,7 @@ static void mfw_gst_v4lsrc_class_init(MFWGstV4LSrcClass * klass)
|
||||
"preview_width",
|
||||
"gets the width of the image to be displayed for preview. \n"
|
||||
"\t\t\tNote:property is valid only when preview property is enabled",
|
||||
- 16, 1768, 176,
|
||||
+ 16, 1768, 640,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property(gobject_class, MFW_V4L_SRC_PREVIEW_HEIGHT,
|
||||
@@ -1395,7 +1395,7 @@ static void mfw_gst_v4lsrc_class_init(MFWGstV4LSrcClass * klass)
|
||||
"preview_height",
|
||||
"gets the height of the image to be displayed for preview. \n"
|
||||
"\t\t\tNote:property is valid only when preview property is enabled",
|
||||
- 16, 1168, 144,
|
||||
+ 16, 1168, 480,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property(gobject_class, MFW_V4L_SRC_PREVIEW_TOP,
|
||||
@@ -1471,14 +1471,14 @@ static void mfw_gst_v4lsrc_class_init(MFWGstV4LSrcClass * klass)
|
||||
"sensor_width",
|
||||
"gets the width of the sensor",
|
||||
16,
|
||||
- G_MAXINT, 1280,
|
||||
+ G_MAXINT, 640,
|
||||
G_PARAM_READWRITE));
|
||||
g_object_class_install_property(gobject_class, MFW_V4L_SRC_SENSOR_HEIGHT,
|
||||
g_param_spec_int("sensor-height",
|
||||
"sensor_height",
|
||||
"gets the height of the sensor",
|
||||
16,
|
||||
- G_MAXINT, 1024,
|
||||
+ G_MAXINT, 480,
|
||||
G_PARAM_READWRITE));
|
||||
|
||||
g_object_class_install_property(gobject_class, MFW_V4L_SRC_CAPTURE_MODE,
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
From: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
Date: Tue, 3 Apr 2012 13:54:50 +0200
|
||||
Subject: [PATCH] mfw_v4lsrc_create_segfault
|
||||
|
||||
Fix a segfault that happend when the create function returns GST_FLOW_OK
|
||||
but the returned buffer is NULL.
|
||||
|
||||
Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
---
|
||||
src/misc/v4l_source/src/mfw_gst_v4lsrc.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/src/misc/v4l_source/src/mfw_gst_v4lsrc.c b/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
|
||||
index 968deb7..9388edd 100755
|
||||
--- a/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
|
||||
+++ b/src/misc/v4l_source/src/mfw_gst_v4lsrc.c
|
||||
@@ -1195,6 +1195,8 @@ static GstFlowReturn mfw_gst_v4lsrc_create (GstPushSrc * src, GstBuffer ** buf)
|
||||
{
|
||||
MFWGstV4LSrc *v4l_src = MFW_GST_V4LSRC(src);
|
||||
*buf = mfw_gst_v4lsrc_buffer_new (v4l_src);
|
||||
+ if(*buf == NULL)
|
||||
+ return GST_FLOW_ERROR;
|
||||
return GST_FLOW_OK;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,67 @@
|
|||
From: Javier Viguera <javier.viguera@digi.com>
|
||||
Date: Tue, 13 Mar 2012 19:05:39 +0100
|
||||
Subject: [PATCH] gplay_rotate
|
||||
|
||||
* Fix 'rotate' gplay command
|
||||
|
||||
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
|
||||
---
|
||||
src/misc/v4l_sink/src/mfw_gst_v4l.c | 5 ++++-
|
||||
src/misc/v4l_sink/src/mfw_gst_v4lsink.c | 1 +
|
||||
src/misc/v4l_sink/src/mfw_gst_v4lsink.h | 1 +
|
||||
3 files changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/misc/v4l_sink/src/mfw_gst_v4l.c b/src/misc/v4l_sink/src/mfw_gst_v4l.c
|
||||
index d773f6a..cb999d2 100755
|
||||
--- a/src/misc/v4l_sink/src/mfw_gst_v4l.c
|
||||
+++ b/src/misc/v4l_sink/src/mfw_gst_v4l.c
|
||||
@@ -845,6 +845,7 @@ mfw_gst_v4l2_set_rotation (MFW_GST_V4LSINK_INFO_T * v4l_info)
|
||||
/* Set the rotation */
|
||||
ctrl.id = V4L2_CID_PRIVATE_BASE;
|
||||
ctrl.value = v4l_info->rotate;
|
||||
+ v4l_info->changedRotate = (v4l_info->prevRotate != v4l_info->rotate) ? TRUE : FALSE;
|
||||
v4l_info->prevRotate = v4l_info->rotate;
|
||||
if (ioctl (v4l_info->v4l_id, VIDIOC_S_CTRL, &ctrl) < 0) {
|
||||
GST_ERROR ("set ctrl failed");
|
||||
@@ -1288,7 +1289,7 @@ mfw_gst_v4l2_set_crop (MFW_GST_V4LSINK_INFO_T * v4l_info,
|
||||
crop->c.left, crop->c.top, crop->c.width, crop->c.height);
|
||||
|
||||
if ((!memcmp (crop, prevCrop, sizeof (struct v4l2_crop)))
|
||||
- && (v4l_info->rotate == v4l_info->prevRotate)) {
|
||||
+ && !v4l_info->changedRotate) {
|
||||
// mfw_gst_v4l2_streamoff(v4l_info);
|
||||
return FALSE;
|
||||
|
||||
@@ -1303,6 +1304,8 @@ mfw_gst_v4l2_set_crop (MFW_GST_V4LSINK_INFO_T * v4l_info,
|
||||
|
||||
}
|
||||
|
||||
+ /* Reset changedRotate flag */
|
||||
+ v4l_info->changedRotate = FALSE;
|
||||
|
||||
if (ioctl (v4l_info->v4l_id, VIDIOC_S_CROP, crop) < 0) {
|
||||
GST_ERROR ("set crop failed");
|
||||
diff --git a/src/misc/v4l_sink/src/mfw_gst_v4lsink.c b/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
|
||||
index d7943c1..e4f6aa0 100755
|
||||
--- a/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
|
||||
+++ b/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
|
||||
@@ -1540,6 +1540,7 @@ mfw_gst_v4lsink_init (MFW_GST_V4LSINK_INFO_T * v4l_info,
|
||||
v4l_info->axis_left = 0;
|
||||
v4l_info->rotate = 0;
|
||||
v4l_info->prevRotate = 0;
|
||||
+ v4l_info->changedRotate = FALSE;
|
||||
v4l_info->crop_left = 0;
|
||||
v4l_info->crop_top = 0;
|
||||
|
||||
diff --git a/src/misc/v4l_sink/src/mfw_gst_v4lsink.h b/src/misc/v4l_sink/src/mfw_gst_v4lsink.h
|
||||
index 28cd6b7..159d3e7 100755
|
||||
--- a/src/misc/v4l_sink/src/mfw_gst_v4lsink.h
|
||||
+++ b/src/misc/v4l_sink/src/mfw_gst_v4lsink.h
|
||||
@@ -255,6 +255,7 @@ typedef struct MFW_GST_V4LSINK_INFO_S
|
||||
gint axis_left; /* diplay left co-ordinate */
|
||||
gint rotate; /* display rotate angle */
|
||||
gint prevRotate; /* Previous display rotate angle */
|
||||
+ gboolean changedRotate; /* There was a rotation change */
|
||||
gint v4l_id; /* device ID */
|
||||
gint cr_left_bypixel; /* crop left offset set by decoder in caps */
|
||||
gint cr_right_bypixel; /* crop right offset set by decoder in caps */
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
From: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
Date: Mon, 9 Apr 2012 18:20:01 +0200
|
||||
Subject: [PATCH] mfw_isink: Set defaults if no vssconfig found.
|
||||
|
||||
Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
---
|
||||
libs/vss/vss_common.c | 16 ++++++++++++++++
|
||||
1 files changed, 16 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/libs/vss/vss_common.c b/libs/vss/vss_common.c
|
||||
index 757c2fc..c6ac428 100755
|
||||
--- a/libs/vss/vss_common.c
|
||||
+++ b/libs/vss/vss_common.c
|
||||
@@ -390,6 +390,22 @@ next:
|
||||
cs = cs->next;
|
||||
}
|
||||
|
||||
+ if( cs == NULL ){
|
||||
+ for (i=0;i<VD_MAX;i++){
|
||||
+ VideoDevice * vd;
|
||||
+
|
||||
+ VS_MESSAGE("No vssconfig, setting defaults.\n");
|
||||
+ vd = &control->devices[i];
|
||||
+ vd->fbidx = i;
|
||||
+ vd->main_fbidx = i;
|
||||
+ vd->fmt = fmt_from_str("RGBP");
|
||||
+ sprintf(vd->name, "DISP%d", i);
|
||||
+ vd->vsmax = 4;
|
||||
+ vd->mode_num = 0;
|
||||
+ _getVideoDeviceInfo(vd);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
sconf_free_cs(css);
|
||||
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
From: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
Date: Tue, 10 Apr 2012 12:21:29 +0200
|
||||
Subject: [PATCH] gst-fsl-plugin: Clear framebuffer of spurious content.
|
||||
|
||||
When starting a video right after boot, there is some content in the
|
||||
framebuffer which remains. The blank/unblank operation gets rid of it.
|
||||
|
||||
Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
---
|
||||
libs/vss/vss_common.c | 5 +++++
|
||||
1 files changed, 5 insertions(+), 0 deletions(-)
|
||||
|
||||
diff --git a/libs/vss/vss_common.c b/libs/vss/vss_common.c
|
||||
index c6ac428..fb80f42 100755
|
||||
--- a/libs/vss/vss_common.c
|
||||
+++ b/libs/vss/vss_common.c
|
||||
@@ -486,6 +486,11 @@ int _initVideoDevice(VideoDevice * vd, int mode_idx)
|
||||
|
||||
vd->fbvar = fb_var;
|
||||
|
||||
+ // Clear framebuffer from spurious content
|
||||
+ VS_MESSAGE("Blanking device /dev/fb%d.\n",vd->fbidx);
|
||||
+ VS_IOCTL(fd, FBIOBLANK, error, FB_BLANK_POWERDOWN);
|
||||
+ VS_IOCTL(fd, FBIOBLANK, error, FB_BLANK_UNBLANK);
|
||||
+
|
||||
if ((vd->resX==0) || (vd->resY==0))
|
||||
goto error;
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,57 @@
|
|||
From: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
Date: Wed, 2 May 2012 10:53:19 +0200
|
||||
Subject: [PATCH] mfw_v4lsink: Do not ignore cropping dimensions.
|
||||
|
||||
When the sink issues a S_CROP followed by a S_OUTPUT, the later resets the
|
||||
crop dimensions to full screen. In order to keep the cropping dimensions,
|
||||
a new S_CROP needs to be issued after the S_OUTPUT.
|
||||
|
||||
This change reuses an init call that was only called in the case of X11
|
||||
which reissues the crop. It also needs to make sure that the previous
|
||||
crop information is erased, otherwise the cropping function will decide
|
||||
that it won't perform a crop if the dimensions have not changed.
|
||||
|
||||
Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
---
|
||||
src/misc/v4l_sink/src/mfw_gst_v4lsink.c | 8 +++++---
|
||||
1 files changed, 5 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/misc/v4l_sink/src/mfw_gst_v4lsink.c b/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
|
||||
index e4f6aa0..b30f390 100755
|
||||
--- a/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
|
||||
+++ b/src/misc/v4l_sink/src/mfw_gst_v4lsink.c
|
||||
@@ -1852,6 +1852,7 @@ mfw_gst_v4lsink_buffer_alloc (GstBaseSink * bsink, guint64 offset,
|
||||
gint frame_buffer_size;
|
||||
gint max_frames;
|
||||
gint hwbuffernumforcodec;
|
||||
+ struct v4l2_crop *prevCrop = &v4l_info->prevCrop;
|
||||
|
||||
gboolean result = FALSE;
|
||||
|
||||
@@ -1990,7 +1991,6 @@ mfw_gst_v4lsink_buffer_alloc (GstBaseSink * bsink, guint64 offset,
|
||||
return GST_FLOW_ERROR;
|
||||
}
|
||||
|
||||
-#ifdef USE_X11
|
||||
/* Two cases:
|
||||
* 1. VPU will request buffer first, when pipeline enter running state,
|
||||
* every parameter is ready.
|
||||
@@ -1999,13 +1999,15 @@ mfw_gst_v4lsink_buffer_alloc (GstBaseSink * bsink, guint64 offset,
|
||||
*/
|
||||
|
||||
if (element->current_state == GST_STATE_PLAYING) {
|
||||
+#ifdef USE_X11
|
||||
GST_INFO("element state already switch to PLAYING, create event thread");
|
||||
mfw_gst_v4lsink_create_event_thread(v4l_info);
|
||||
|
||||
+#endif
|
||||
+ // Digi: Force the crop to take effect by losing the previous crop info
|
||||
+ memset(prevCrop,0,sizeof(struct v4l2_crop));
|
||||
mfw_gst_v4l2_display_init(v4l_info, v4l_info->disp_width, v4l_info->disp_height);
|
||||
-
|
||||
}
|
||||
-#endif
|
||||
|
||||
/*
|
||||
* The software H264 decoder need check the "num-buffers-required"
|
||||
|
||||
|
|
@ -0,0 +1,28 @@
|
|||
From: Javier Viguera <javier.viguera@digi.com>
|
||||
Date: Thu, 10 May 2012 19:54:52 +0200
|
||||
Subject: [PATCH] gplay_next_file
|
||||
|
||||
Add 'send_message_exit' to avoid blocking forever.
|
||||
|
||||
This fixes 'gplay' not exiting when you run 'play next file [>]' command
|
||||
on the last file of the playlist.
|
||||
|
||||
CCORE_MX53_EXTENSIONS-142
|
||||
|
||||
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
|
||||
---
|
||||
tools/gplay/mfw_gplay.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/tools/gplay/mfw_gplay.c b/tools/gplay/mfw_gplay.c
|
||||
index ee65100..de11e68 100755
|
||||
--- a/tools/gplay/mfw_gplay.c
|
||||
+++ b/tools/gplay/mfw_gplay.c
|
||||
@@ -876,6 +876,7 @@ int main(int argc,char *argv[])
|
||||
case '>': // Play next file
|
||||
printf("next\n");
|
||||
if (playlist_next(pplayer, opt)==NULL){
|
||||
+ pplayer->klass->send_message_exit(pplayer);
|
||||
player_exit(pplayer);
|
||||
}
|
||||
break;
|
||||
|
|
@ -0,0 +1,47 @@
|
|||
From: Javier Viguera <javier.viguera@digi.com>
|
||||
Date: Fri, 11 May 2012 13:15:07 +0200
|
||||
Subject: [PATCH] gplay_repeat
|
||||
|
||||
Fix some issues related with 'repeat' command in gplay.
|
||||
|
||||
1. repeat_current not working if the item was the last one of the
|
||||
playlist.
|
||||
|
||||
2. Running 'play previous [<]' does not honour 'repeat_current' mode and
|
||||
jumps to previous item in the playlist anyway.
|
||||
|
||||
CCORE_MX53_EXTENSIONS-140
|
||||
|
||||
Signed-off-by: Javier Viguera <javier.viguera@digi.com>
|
||||
---
|
||||
tools/gplay/mfw_gplay.c | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/tools/gplay/mfw_gplay.c b/tools/gplay/mfw_gplay.c
|
||||
index de11e68..5e5a6f1 100755
|
||||
--- a/tools/gplay/mfw_gplay.c
|
||||
+++ b/tools/gplay/mfw_gplay.c
|
||||
@@ -151,6 +151,7 @@ PlayItem * playlist_next(fsl_player_handle handle, options* opt)
|
||||
}
|
||||
case FSL_PLAYER_REPEAT_CURRENT:
|
||||
{
|
||||
+ next = opt->current;
|
||||
pplayer->klass->stop(pplayer);
|
||||
//pplayer->klass->set_media_location(pplayer, opt->current->name, &drm_format);
|
||||
pplayer->klass->play(pplayer);
|
||||
@@ -172,6 +173,7 @@ fsl_player_ret_val playlist_previous(fsl_player_handle handle, options* opt)
|
||||
PlayItem * current = opt->current;
|
||||
PlayItem * next = getPrevItem(current);
|
||||
|
||||
+#if 0
|
||||
if(next)
|
||||
{
|
||||
opt->current = next;
|
||||
@@ -180,6 +182,7 @@ fsl_player_ret_val playlist_previous(fsl_player_handle handle, options* opt)
|
||||
pplayer->klass->set_media_location(pplayer, opt->current->name, &drm_format);
|
||||
pplayer->klass->play(pplayer);
|
||||
}
|
||||
+#endif
|
||||
switch( opt->repeat )
|
||||
{
|
||||
case FSL_PLAYER_REPEAT_NONE:
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
From: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
Date: Thu, 17 May 2012 10:46:39 +0200
|
||||
Subject: [PATCH] gst-fsl-plugin: Only call MXCFB_SET_OVERLAY_POS with overlay framebuffer.
|
||||
|
||||
This is just to avoid the ioctl to return an error.
|
||||
|
||||
Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
---
|
||||
libs/vss/vss_common.c | 22 ++++++++++++++--------
|
||||
1 files changed, 14 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/libs/vss/vss_common.c b/libs/vss/vss_common.c
|
||||
index fb80f42..114b45b 100755
|
||||
--- a/libs/vss/vss_common.c
|
||||
+++ b/libs/vss/vss_common.c
|
||||
@@ -686,10 +686,14 @@ _setDeviceConfig(VideoDevice * vd)
|
||||
|
||||
int fd = _getDevicefd(vd);
|
||||
|
||||
- /* Workaround for ipu hardware, it need set to 0,0 before change another offset */
|
||||
- pos.x = 0;
|
||||
- pos.y = 0;
|
||||
- VS_IOCTL(fd, MXCFB_SET_OVERLAY_POS, here1, &pos);
|
||||
+
|
||||
+ VS_IOCTL(fd, FBIOGET_FSCREENINFO, done, &fb_fix);
|
||||
+ if( !strcmp(fb_fix.id,"DISP3 FG") ){
|
||||
+ /* Workaround for ipu hardware, it need set to 0,0 before change another offset */
|
||||
+ pos.x = 0;
|
||||
+ pos.y = 0;
|
||||
+ VS_IOCTL(fd, MXCFB_SET_OVERLAY_POS, here1, &pos);
|
||||
+ }
|
||||
here1:
|
||||
VS_IOCTL(fd, FBIOBLANK, done, FB_BLANK_POWERDOWN);
|
||||
|
||||
@@ -711,10 +715,12 @@ here1:
|
||||
|
||||
VS_IOCTL(fd, FBIOGET_VSCREENINFO, done, &fb_var);
|
||||
VS_IOCTL(fd, FBIOGET_FSCREENINFO, done, &fb_fix);
|
||||
-
|
||||
- pos.x = vd->disp.left;
|
||||
- pos.y = vd->disp.top;
|
||||
- VS_IOCTL(fd, MXCFB_SET_OVERLAY_POS, here2, &pos);
|
||||
+
|
||||
+ if( !strcmp(fb_fix.id,"DISP3 FG") ){
|
||||
+ pos.x = vd->disp.left;
|
||||
+ pos.y = vd->disp.top;
|
||||
+ VS_IOCTL(fd, MXCFB_SET_OVERLAY_POS, here2, &pos);
|
||||
+ }
|
||||
here2:
|
||||
|
||||
VS_IOCTL(fd, FBIOBLANK, done, FB_BLANK_UNBLANK);
|
||||
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
From: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
Date: Mon, 21 May 2012 16:17:01 +0200
|
||||
Subject: [PATCH] gst-fsl-plugin: Do not blank the display on device close.
|
||||
|
||||
CCORE_MX53_EXTENSIONS-156
|
||||
|
||||
Signed-off-by: Alex Gonzalez <alex.gonzalez@digi.com>
|
||||
---
|
||||
libs/vss/vss_common.c | 2 +-
|
||||
1 files changed, 1 insertions(+), 1 deletions(-)
|
||||
|
||||
diff --git a/libs/vss/vss_common.c b/libs/vss/vss_common.c
|
||||
index 114b45b..8731da9 100755
|
||||
--- a/libs/vss/vss_common.c
|
||||
+++ b/libs/vss/vss_common.c
|
||||
@@ -744,7 +744,7 @@ _closeDevice(VideoDevice * vd)
|
||||
//if (vd->mode_num){
|
||||
VS_IOCTL(fd, FBIOPUT_VSCREENINFO, done, &vd->fbvar);
|
||||
//}
|
||||
- VS_IOCTL(fd, FBIOBLANK, done, FB_BLANK_POWERDOWN);
|
||||
+// VS_IOCTL(fd, FBIOBLANK, done, FB_BLANK_POWERDOWN);
|
||||
close(fd);
|
||||
gFBDescs[vd->fbidx].fb_fd = 0;
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
FILESEXTRAPATHS_prepend_del := "${THISDIR}/files"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0001-ltmain.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0002-gplay_fullscreen.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0003-add-fb-dev.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0004-mfw_v4lsrc_uyvy.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0005-mfw_v4lsec_def_sizes.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0006-mfw_v4lsrc_create_segfault.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0007-gplay_rotate.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0008-mfw_isink-set-defaults-if-no-vssconfig-found.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0009-mfw_isink-clear-framebuffer-of-spurious-content.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0010-mfw_v4lsink-Do-not-ignore-cropping-dimensions.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0011-gplay_next_file.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0012-gplay_repeat.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0013-Only-call-MXCFB_SET_OVERLAY_POS-with-overlay-framebuffer.patch"
|
||||
SRC_URI_append_del += "file://gst-fsl-plugin-2.0.3-0014-Do-not-blank-the-display-on-device-close.patch"
|
||||
PR_append_del = "+${DISTRO}.0"
|
||||
Loading…
Reference in New Issue