Browse Source

don't know how to make the upscaler

master
tth 3 years ago
parent
commit
411aad94d7
  1. 3
      doc/the_floatimg_hack.tex
  2. 4
      tools/fimg2png.c
  3. 4
      v4l2/Makefile
  4. 8
      v4l2/grabvidseq.c
  5. 26
      v4l2/rgb2fimg.c

3
doc/the_floatimg_hack.tex

@ -242,7 +242,8 @@ sur la provenance de ces données prétendant être des images. @@ -242,7 +242,8 @@ sur la provenance de ces données prétendant être des images.
En fait, notre désir secret est la découverte des choses cachées du
monde qui nous entoure. Nous voulons des images du \textbf{réel} et
pour cela, l'outil le plus commun, le plus répandu,
est la webcam\index{webcam}. L'universelle webcam.
est la webcam\index{webcam}. L'universelle webcam. Et l'incontournable
v4l2.
% -------------------------------------------------------------------
\section{Et pour la suite ?}

4
tools/fimg2png.c

@ -7,7 +7,7 @@ @@ -7,7 +7,7 @@
/* --------------------------------------------------------------------- */
int main(int argc, char *argv[])
{
int foo;
// int foo;
if (3 != argc) {
fimg_print_version(1);
@ -15,6 +15,8 @@ if (3 != argc) { @@ -15,6 +15,8 @@ if (3 != argc) {
exit(1);
}
fprintf(stderr, "ah ah ah, no working code here !\n");
return 0;
}
/* --------------------------------------------------------------------- */

4
v4l2/Makefile

@ -1,6 +1,6 @@ @@ -1,6 +1,6 @@
COPT = -Wall -fpic -g -pg -DDEBUG_LEVEL=1
COPT = -Wall -fpic -g -pg -no-pie -DDEBUG_LEVEL=1
DEPS = ../floatimg.h ../libfloatimg.a Makefile
all: grabvidseq t
@ -18,7 +18,7 @@ v4l2_pr_structs.o: v4l2_pr_structs.c v4l2_pr_structs.h Makefile @@ -18,7 +18,7 @@ v4l2_pr_structs.o: v4l2_pr_structs.c v4l2_pr_structs.h Makefile
gcc ${COPT} -c $<
grabvidseq: grabvidseq.c Makefile rgb2fimg.o
gcc ${COPT} $< rgb2fimg.o ../libfloatimg.a -lm -lv4l2 -o $@
gcc ${COPT} $< rgb2fimg.o ../libfloatimg.a -lm -lv4l2 -o $@
video-infos: video-infos.c Makefile funcs.o v4l2_pr_structs.o
gcc -Wall -g $< funcs.o v4l2_pr_structs.o -o $@

8
v4l2/grabvidseq.c

@ -38,13 +38,8 @@ @@ -38,13 +38,8 @@
/* --------------------------------------------------------------------- */
#define CLEAR(x) memset(&(x), 0, sizeof(x))
struct buffer {
void *start;
size_t length;
@ -194,6 +189,9 @@ foo = fimg_create(&cumul, @@ -194,6 +189,9 @@ foo = fimg_create(&cumul,
fimg_clear(&cumul);
#endif
type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
xioctl(fd, VIDIOC_STREAMON, &type);

26
v4l2/rgb2fimg.c

@ -5,6 +5,32 @@ @@ -5,6 +5,32 @@
#include "funcs.h"
/* --------------------------------------------------------------------- */
int x_upscaler(unsigned char *src, int w, int h, FloatImg *d)
{
int x, y, xx, yy;
float *rp, *gp, *bp;
float r, g, b;
static unsigned short modz;
rp = d->R, gp = d->G, bp = d->B;
for (y=0; y<h; y++) {
yy = (y*2) + ! (modz & 1);
for (x=0; x<w; x++) {
xx = (x*2) + ! (modz & 2);
r = (float)*src++;
g = (float)*src++;
b = (float)*src++;
fimg_plot_rgb(d, xx, yy, r, g, b);
}
}
modz++;
return -1;
}
/* --------------------------------------------------------------------- */
int x_rgb2fimg(unsigned char *src, int w, int h, FloatImg *d)
{

Loading…
Cancel
Save