[Armadeus-commitlog] armadeus branch, master, updated. armadeus-6.0-334-gfbb0a22
Brought to you by:
sszy
|
From: Julien B a. A. <ar...@us...> - 2017-10-02 08:52:05
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via fbb0a22e9ac7882f2f5a66082cfc554850172479 (commit)
via bb3f7476baf9f0af05b6420bf0201aeb1a58822a (commit)
via 9d842854ac13f6b6f9427f6d3d01fc5620b26935 (commit)
from 928a1aa1046d26f819119dc38a043b579e513013 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit fbb0a22e9ac7882f2f5a66082cfc554850172479
Author: Julien BOIBESSOT <jul...@ar...>
Date: Mon Oct 2 10:51:22 2017 +0200
[BUILDROOT] apf6legacy*_defconfig: re-add VPU/IPU/GPU gstreamer plugins plus some H.26x software one
commit bb3f7476baf9f0af05b6420bf0201aeb1a58822a
Author: Julien BOIBESSOT <jul...@ar...>
Date: Mon Oct 2 10:43:41 2017 +0200
[DEMOS] capture: add RGB24 support (needed by some v4l2loopback examples)
commit 9d842854ac13f6b6f9427f6d3d01fc5620b26935
Author: Julien BOIBESSOT <jul...@ar...>
Date: Sat Sep 30 19:16:54 2017 +0200
[DEMOS] capture: add a runtime option to activate debug messages and improve format matching messages
-----------------------------------------------------------------------
Summary of changes:
buildroot/configs/apf6legacy-4.1_defconfig | 7 ++++
buildroot/configs/apf6legacy_defconfig | 7 ++++
buildroot/package/armadeus/demos/demos.mk | 2 +-
target/demos/camera/capture/capture.c | 63 ++++++++++++++++++++++++------
4 files changed, 66 insertions(+), 13 deletions(-)
diff --git a/buildroot/configs/apf6legacy-4.1_defconfig b/buildroot/configs/apf6legacy-4.1_defconfig
index a0f8497..b004572 100644
--- a/buildroot/configs/apf6legacy-4.1_defconfig
+++ b/buildroot/configs/apf6legacy-4.1_defconfig
@@ -76,8 +76,15 @@ BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_COMPOSITOR=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CAMERABIN2=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FACEOVERLAY=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FBDEV=y
+BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENH264=y
+BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_X265=y
BR2_PACKAGE_GST1_PLUGINS_UGLY=y
+BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_X264=y
BR2_PACKAGE_GST1_IMX=y
+BR2_PACKAGE_GST1_IMX_G2D=y
+BR2_PACKAGE_GST1_IMX_IPU=y
+BR2_PACKAGE_GST1_IMX_VPU=y
+BR2_PACKAGE_GST1_IMX_V4L2VIDEOSRC=y
BR2_PACKAGE_GST1_LIBAV=y
BR2_PACKAGE_V4L2LOOPBACK=y
BR2_PACKAGE_GDB=y
diff --git a/buildroot/configs/apf6legacy_defconfig b/buildroot/configs/apf6legacy_defconfig
index ab8e4bd..2707d9a 100644
--- a/buildroot/configs/apf6legacy_defconfig
+++ b/buildroot/configs/apf6legacy_defconfig
@@ -70,8 +70,15 @@ BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_COMPOSITOR=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_CAMERABIN2=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FACEOVERLAY=y
BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_FBDEV=y
+BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_OPENH264=y
+BR2_PACKAGE_GST1_PLUGINS_BAD_PLUGIN_X265=y
BR2_PACKAGE_GST1_PLUGINS_UGLY=y
+BR2_PACKAGE_GST1_PLUGINS_UGLY_PLUGIN_X264=y
BR2_PACKAGE_GST1_IMX=y
+BR2_PACKAGE_GST1_IMX_G2D=y
+BR2_PACKAGE_GST1_IMX_IPU=y
+BR2_PACKAGE_GST1_IMX_VPU=y
+BR2_PACKAGE_GST1_IMX_V4L2VIDEOSRC=y
BR2_PACKAGE_GST1_LIBAV=y
BR2_PACKAGE_V4L2LOOPBACK=y
BR2_PACKAGE_GDB=y
diff --git a/buildroot/package/armadeus/demos/demos.mk b/buildroot/package/armadeus/demos/demos.mk
index 22611eb..cbd37d6 100644
--- a/buildroot/package/armadeus/demos/demos.mk
+++ b/buildroot/package/armadeus/demos/demos.mk
@@ -4,7 +4,7 @@
#
#############################################################
-DEMOS_VERSION = 1.1
+DEMOS_VERSION = 1.11
DEMOS_SITE = $(TOPDIR)/../target/demos
DEMOS_SITE_METHOD = local
diff --git a/target/demos/camera/capture/capture.c b/target/demos/camera/capture/capture.c
index bb4a917..f0ce152 100644
--- a/target/demos/camera/capture/capture.c
+++ b/target/demos/camera/capture/capture.c
@@ -68,6 +68,7 @@ static int fd = -1;
struct buffer * buffers = NULL;
static unsigned int n_buffers = 0;
int g_use_codec = 0;
+static int debug = 0;
SDL_Surface *screen = NULL, *image = NULL;
@@ -83,6 +84,8 @@ struct camera mycamera;
unsigned int force_yuv420 = 0;
+#define FOURCC_TO_STR(fmt) fmt & 0xff, (fmt >> 8) & 0xff, (fmt >> 16) & 0xff, (fmt >> 24) & 0xff
+
static void errno_exit(const char *s)
{
fprintf(stderr, "%s error %d, %s\n", s, errno, strerror (errno));
@@ -346,6 +349,27 @@ static void yuv420_to_rgb(void *yuv, int size, void *rgb, int bpp)
}
}
+static void rgb_to_rgb(void *rgb_src, int size, void *rgb_dst, int bpp)
+{
+ Uint32 *dest32 = (Uint32*) rgb_dst;
+ Uint8 *src = (Uint8 *)rgb_src;
+ int i, pos = 0;
+ Uint8 R, G, B, A;
+ Uint32 color;
+
+ if (bpp == 32) {
+ for (i=size/4; i; i--) {
+ R = src[pos++];
+ G = src[pos++];
+ B = src[pos++];
+ A = 0xff;
+ *dest32++ = (A << 24) | (R << 16) | (G << 8) | B;
+ }
+ } else {
+ fprintf(stdout, "%s: unsupported screen bpp (%d)\n", __func__, bpp);
+ }
+}
+
#if 0
static void rgb565_to_yuv420(void *rgb, int size, void *yuv)
{
@@ -420,6 +444,7 @@ static void process_image(/*const */void *pCaptured, int size)
int sec, usec, run_time;
static struct timeval now, last;
static int fps;
+ static int first_time = 1;
if (mycamera.pixelformat == V4L2_PIX_FMT_YUYV) {
yuyv_to_rgb(pCaptured, mycamera.sizeimage, image->pixels, screen->format->BitsPerPixel);
@@ -427,9 +452,16 @@ static void process_image(/*const */void *pCaptured, int size)
uyvy_to_rgb(pCaptured, mycamera.sizeimage, image->pixels, screen->format->BitsPerPixel);
} else if (mycamera.pixelformat == V4L2_PIX_FMT_YUV420) {
yuv420_to_rgb(pCaptured, mycamera.sizeimage, image->pixels, screen->format->BitsPerPixel);
+ } else if (mycamera.pixelformat == V4L2_PIX_FMT_RGB24) {
+ rgb_to_rgb(pCaptured, mycamera.sizeimage, image->pixels, screen->format->BitsPerPixel);
} else {
- if ((mycamera.pixelformat != V4L2_PIX_FMT_RGB565) || (mycamera.pixelformat != V4L2_PIX_FMT_RGB32)) {
- printf("Unknown image format\n");
+ if ( (mycamera.pixelformat != V4L2_PIX_FMT_RGB565)
+ && (mycamera.pixelformat != V4L2_PIX_FMT_RGB32) )
+ {
+ if (first_time) {
+ printf("Unknown camera image format (%c%c%c%c)!!\n", FOURCC_TO_STR(mycamera.pixelformat));
+ first_time = 0;
+ }
}
if (size == 0)
size = mycamera.sizeimage;
@@ -869,14 +901,15 @@ static Uint32 get_a_supported_pix_fmt(void)
fmtdesc.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
if (-1 == ioctl(fd, VIDIOC_ENUM_FMT, &fmtdesc))
break;
-
- /*fprintf(stdout, "Trying format N°%d %c%c%c%c (%s)\n",
- fmtdesc.index, fmtdesc.pixelformat & 0xff,
- fmtdesc.pixelformat >> 8 & 0xff, fmtdesc.pixelformat >> 16 & 0xff,
- fmtdesc.pixelformat >> 24 & 0xff, fmtdesc.description);*/
- if ((fmtdesc.pixelformat == V4L2_PIX_FMT_RGB565) || (fmtdesc.pixelformat == V4L2_PIX_FMT_RGB32)) {
- fprintf(stdout, "Using img format (%d 0x%08x): ", i, fmtdesc.pixelformat);
- fprintf(stdout, "RGB565/RGB32\n");
+ if (debug) {
+ fprintf(stdout, "Trying format %d %c%c%c%c (%s)\n",
+ fmtdesc.index, FOURCC_TO_STR(fmtdesc.pixelformat),
+ fmtdesc.description);
+ }
+ if ((fmtdesc.pixelformat == V4L2_PIX_FMT_RGB565) ||
+ (fmtdesc.pixelformat == V4L2_PIX_FMT_RGB32) ||
+ (fmtdesc.pixelformat == V4L2_PIX_FMT_RGB24) ) {
+ fprintf(stdout, "Using img format (%d %c%c%c%c)\n", i, FOURCC_TO_STR(fmtdesc.pixelformat));
return fmtdesc.pixelformat;
}
}
@@ -990,7 +1023,7 @@ static void init_capture_device(unsigned int capt_width, unsigned int capt_heigh
fmt.fmt.pix.pixelformat = V4L2_PIX_FMT_YUV420;
}
if (!fmt.fmt.pix.pixelformat) {
- fprintf(stderr, "%s does not support requested img formats\n",
+ fprintf(stderr, "%s does not support our img formats (RGB565, RGB32, YUYV, YUV420)\n",
dev_name);
exit(EXIT_FAILURE);
}
@@ -1086,11 +1119,12 @@ static void usage(FILE *fp, int argc, char **argv)
" --cam_height H Use H as camera picture height (instead of %d)\n"
" --use_vpu IP Uses processor VPU to encode video (at camera size) and send it to IP addr\n"
" -f | --force Forces YUV420/YU12 format on camera\n"
+ " -b | --verbose Display some debug informations\n"
"",
argv[0], SCREEN_WIDTH, SCREEN_HEIGHT, CAM_WIDTH, CAM_HEIGHT);
}
-static const char short_options [] = "d:hmruwtf";
+static const char short_options [] = "d:hmruwtfb";
static const struct option long_options [] = {
{ "device", required_argument, NULL, 'd' },
@@ -1104,6 +1138,7 @@ static const struct option long_options [] = {
{ "cam_height", required_argument, NULL, 'z' },
{ "use_vpu", required_argument, NULL, 'v' },
{ "force", no_argument, NULL, 'f' },
+ { "verbose", no_argument, NULL, 'b' },
{ 0, 0, 0, 0 }
};
@@ -1155,6 +1190,10 @@ int main(int argc, char **argv)
case 0: /* getopt_long() flag */
break;
+ case 'b':
+ debug = 1;
+ break;
+
case 'd':
dev_name = optarg;
break;
hooks/post-receive
--
armadeus
|