Compare commits

...

5 Commits

Author SHA1 Message Date
tTh
a4b7f5c21c nap time commit 2023-02-13 17:56:08 +01:00
tTh
36d30b76d7 fix bad parameters 2023-02-13 17:43:08 +01:00
tTh
e00423ed9b cosmetic 2023-02-13 14:27:01 +01:00
tTh
3e66e822f2 better err msg 2023-02-13 10:58:21 +01:00
tTh
a449c53592 cosmetic 2023-02-13 10:57:14 +01:00
14 changed files with 64 additions and 46 deletions

View File

@ -41,19 +41,19 @@ singlepass: singlepass.c ${DEPS} ${OBJS} Makefile
# some files are magically generated, sorry. # some files are magically generated, sorry.
# #
crapdef.h: crapulors.liste Makefile craplist2h.awk crapdef.h: crapulors.liste Makefile craplist2h.awk
./craplist2h.awk < $< | tee $@ < $< ./craplist2h.awk > $@
crapstr.h: crapulors.liste Makefile craplist2str.awk crapstr.h: crapulors.liste Makefile craplist2str.awk
./craplist2str.awk < $< | tee $@ < $< ./craplist2str.awk > $@
# --------------------------------------------------------- # ---------------------------------------------------------
# #
# a lot of silly functions # a lot of silly functions
# #
crapulator.o: crapulator.c ${DEPS} Makefile crapulator.o: crapulator.c $(DEPS) Makefile
gcc ${COPT} -c $< gcc ${COPT} -c $<
fifo.o: fifo.c fifo.h Makefile fifo.o: fifo.c fifo.h $(DEPS) Makefile
gcc ${COPT} -c $< gcc ${COPT} -c $<
sfx.o: sfx.c ${DEPS} Makefile sfx.o: sfx.c ${DEPS} Makefile

View File

@ -6,18 +6,19 @@
# #
BEGIN { BEGIN {
print "// -----------------------------------" print "// -------------------------------------"
print "// generated file, do not edit by hand !" print "// generated file, do not edit by hand !"
print "// -----------------------------------" print "// -------------------------------------"
} }
# $1 is the badly brain-designed numeric id # $1 is the badly brain-designed numeric id
# $2 is the user name of the filter # $2 is the user name of the filter
{ {
printf "#define CR_%s (%d)\n", $2, $1 name = sprintf("CR_%s", $2)
printf "#define %-15s (%d)\n", name, $1
} }
END { END {
print "// generated file, do not edit by hand !" print "\n// generated file, do not edit by hand !"
} }

View File

@ -5,9 +5,9 @@
# is includet by 'crapulator.c' # is includet by 'crapulator.c'
# #
BEGIN { BEGIN {
print "// -----------------------------------" print "// -------------------------------------"
print "// generated file, do not edit by hand"; print "// generated file, do not edit by hand !";
print "// -----------------------------------" print "// -------------------------------------"
print "Crapulor CrapL[] = {"; print "Crapulor CrapL[] = {";
} }
@ -16,12 +16,13 @@ BEGIN {
# $3 and $4 are two not used parameters # $3 and $4 are two not used parameters
# #
{ {
printf " { CR_%s, \"%s\", %d, %f }, // id=%d\n", name = sprintf("CR_%s", $2)
$2, $2, $3, $4, $1; printf " { %-12s, \"%s\", %d, %f }, // #%d\n",
name, $2, $3, $4, $1;
} }
END { END {
print " { -1, NULL }" print " { -1, NULL }"
print " };" print " };"
print "// generated file, do not edit by hand" print "// ! generated file, do not edit by hand !"
} }

View File

@ -195,6 +195,8 @@ int ret;
memset(&tmp, 0, sizeof(FloatImg)); memset(&tmp, 0, sizeof(FloatImg));
fimg_clone(img, &tmp, 0); fimg_clone(img, &tmp, 0);
ret = fimg_pixelize_h_rnd(img, &tmp, k); ret = fimg_pixelize_h_rnd(img, &tmp, k);
if (verbosity > 1) fprintf(stderr, "in %s, pixelize H rnd -> %d\n",
__func__, ret);
fimg_copy_data(&tmp, img); fimg_copy_data(&tmp, img);
fimg_destroy(&tmp); fimg_destroy(&tmp);
@ -434,9 +436,12 @@ switch (idFx) {
case CR_pixelizh: case CR_pixelizh:
retval = run_pixelize_0(image, 8); retval = run_pixelize_0(image, 8);
break; break;
case CR_pixelizv:
retval = run_pixelize_0(image, 32);
break;
case CR_pixelrand: case CR_pixelrand:
retval = run_pixelize_random(image, -1); retval = run_pixelize_random(image, 16);
break; break;
case CR_splitlevel: case CR_splitlevel:
@ -444,10 +449,10 @@ switch (idFx) {
break; break;
case CR_decrgbzc: case CR_decrgbzc:
retval = run_decomprgbz_color(image, -1); retval = run_decomprgbz_color(image, 0);
break; break;
case CR_decrgbzg: case CR_decrgbzg:
retval = run_decomprgbz_gray(image, -1); retval = run_decomprgbz_gray(image, 0);
break; break;
case CR_hilightr: case CR_hilightr:

View File

@ -151,13 +151,11 @@ int pass, szimg, osrc, odst;
szimg = picture->width * picture->height; szimg = picture->width * picture->height;
for (pass=0; pass<szimg/32; pass++) { for (pass=0; pass<szimg/32; pass++) {
osrc = rand() % szimg; osrc = rand() % szimg;
odst = rand() % szimg; odst = rand() % szimg;
picture->R[odst] = (picture->R[osrc] + picture->R[odst]) / 2.0; picture->R[odst] = (picture->R[osrc] + picture->R[odst]) / 2.0;
picture->G[odst] = (picture->G[osrc] + picture->G[odst]) / 2.0; picture->G[odst] = (picture->G[osrc] + picture->G[odst]) / 2.0;
picture->B[odst] = (picture->B[osrc] + picture->B[odst]) / 2.0; picture->B[odst] = (picture->B[osrc] + picture->B[odst]) / 2.0;
} }
return 0; return 0;
@ -180,7 +178,6 @@ for (y=0; y<picture->height; y+=16) {
un_petit_flou_8x8(picture, x, y+8); un_petit_flou_8x8(picture, x, y+8);
un_petit_flou_8x8(picture, x+8, y+8); un_petit_flou_8x8(picture, x+8, y+8);
} }
} }
} }

View File

@ -22,19 +22,17 @@ do_an_effect_pass()
{ {
local effect=$1 local effect=$1
local ddir=$2 local ddir=$2
figlet "$effect" ; echo
figlet "$effect" ; echo
echo " ===> " $ddir echo " ===> " $ddir
ls $ddir | wc
rm -f $ddir/?????.png rm -f $ddir/?????.png
ls $ddir | wc
$SPASS -F $effect \ $SPASS -F $effect \
-g $SRCDIR/'?????.fimg' \ -g $SRCDIR/'?????.fimg' \
-O $ddir \ -O $ddir \
-r 2 -r 1
ls $ddir | wc
} }
# -------------------------------------------- # --------------------------------------------
@ -47,6 +45,17 @@ local sdir=$2
echo "====== Linkfarming from " $sdir \ echo "====== Linkfarming from " $sdir \
"====== avec" $(ls $sdir | wc -l) "images" "====== avec" $(ls $sdir | wc -l) "images"
mogrify \
-font Utopia-Bold \
-pointsize 90 \
-kerning 9 \
-fill Gray80 \
-stroke Gray20 \
-strokewidth 3 \
-gravity South-East \
-annotate +45+125 $effname \
$sdir/*.png
for img in $(ls -1 $sdir/?????.png) for img in $(ls -1 $sdir/?????.png)
do do
@ -54,16 +63,6 @@ do
# echo "image = " $img # echo "image = " $img
# echo "link = " $linkname # echo "link = " $linkname
mogrify \
-font Noto-Serif-Bold \
-pointsize 70 \
-kerning 4 \
-fill Gray90 \
-stroke Gray10 \
-strokewidth 3 \
-annotate +35+85 $effname \
$img
ln --force --symbolic $img $linkname ln --force --symbolic $img $linkname
LINKNUM=$(( LINKNUM + 1 )) LINKNUM=$(( LINKNUM + 1 ))
@ -75,7 +74,7 @@ echo "linkfarming done"
do_all_the_effects() do_all_the_effects()
{ {
EFFECTS=$( $SPASS -L | sort ) EFFECTS=$( $SPASS -L | sort --reverse )
for effect in $EFFECTS for effect in $EFFECTS
do do
@ -99,8 +98,6 @@ done
rm -v -f $LINKFARM/L?????.png rm -v -f $LINKFARM/L?????.png
do_all_the_effects do_all_the_effects
banner encoding banner encoding

View File

@ -20,7 +20,7 @@
* https://git.tetalab.org/tTh/FloatImg * https://git.tetalab.org/tTh/FloatImg
*/ */
#define FIMG_VERSION (219) #define FIMG_VERSION (220)
#define RELEASE_NAME ("noname") #define RELEASE_NAME ("noname")
/* XXX add a test for stdint.h / uint32_t XXX */ /* XXX add a test for stdint.h / uint32_t XXX */

View File

@ -44,6 +44,9 @@ fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__,
psrc, pdst, k); psrc, pdst, k);
#endif #endif
/*
* XXX useless message ?
*/
if (k) { fprintf(stderr, "k=%d in %s\n", k, __func__); } if (k) { fprintf(stderr, "k=%d in %s\n", k, __func__); }
fimg_clear(pdst); fimg_clear(pdst);
@ -102,6 +105,9 @@ fprintf(stderr, ">>> %s ( %p %p %d )\n", __func__,
psrc, pdst, k); psrc, pdst, k);
#endif #endif
/*
* XXX useless message ?
*/
if (k) { fprintf(stderr, "k=%d in %s\n", k, __func__); } if (k) { fprintf(stderr, "k=%d in %s\n", k, __func__); }
fimg_clear(pdst); fimg_clear(pdst);

View File

@ -32,7 +32,7 @@ switch(largeur) {
case 8: case 16: case 32: case 8: case 16: case 32:
break; break;
default: default:
fprintf(stderr, "pixeliz bad width %d\n", largeur); fprintf(stderr, "%s: bad width %d\n", __func__, largeur);
return -77; return -77;
} }

View File

@ -1,7 +1,12 @@
# Images en virgule flottante, video 4 linux # Images en virgule flottante, video 4 linux
Quelques gruikwares en rapport avec la capture vidéo.
## grabvidseq ## grabvidseq
Logiciel de capture d'une image flottante par accumulation de trames.
``` ```
tth@lubitel:~/Devel/FloatImg/v4l2$ ./grabvidseq -h tth@lubitel:~/Devel/FloatImg/v4l2$ ./grabvidseq -h
options : options :
@ -18,6 +23,10 @@ options :
-v increase verbosity -v increase verbosity
``` ```
Les formats d'exportation sont : Fimg, Png, Tiff, Pnm et Fits. Chacun d'eux
ayant son propre lot de limitations et de bugs. Le choix est fait
selon l'extension du nom de fichier demandé~: ".fimg", ".tiff"...
## video-infos ## video-infos
``` ```

View File

@ -78,7 +78,7 @@ if (-1 == stat(device, &st)) {
} }
if (!S_ISCHR(st.st_mode)) { if (!S_ISCHR(st.st_mode)) {
fprintf(stderr, "%s is no device\n", device); fprintf(stderr, "%s is not a char device\n", device);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }

View File

@ -267,7 +267,7 @@ type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
xioctl(fd, VIDIOC_STREAMON, &type); xioctl(fd, VIDIOC_STREAMON, &type);
#if 1 #if 1
if (verbosity) fprintf(stderr,"pid %d is going to grab %d picz...\n", if (verbosity) fprintf(stderr,"pid %d is going to grab %d frames...\n",
getpid(), nbre_capt); getpid(), nbre_capt);
#endif #endif

View File

@ -26,7 +26,9 @@ int vfd, foo;
struct v4l2_format fmt; struct v4l2_format fmt;
// struct v4l2_requestbuffers reqbuf; // struct v4l2_requestbuffers reqbuf;
#if DEBUG_LEVEL
fprintf(stderr, ">>> %s ( '%s' %d )\n", __func__, dev, k); fprintf(stderr, ">>> %s ( '%s' %d )\n", __func__, dev, k);
#endif
vfd = open_device(dev); vfd = open_device(dev);
if (verbosity) fprintf(stderr, "\topen %s -> %d\n", dev, vfd); if (verbosity) fprintf(stderr, "\topen %s -> %d\n", dev, vfd);
@ -34,7 +36,7 @@ if (verbosity) fprintf(stderr, "\topen %s -> %d\n", dev, vfd);
memset(&fmt, 0, sizeof(fmt)); memset(&fmt, 0, sizeof(fmt));
fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE; fmt.type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
foo = ioctl(vfd, VIDIOC_G_FMT, &fmt); foo = ioctl(vfd, VIDIOC_G_FMT, &fmt);
fprintf(stderr, "%s : ioctl -> %d\n", __func__, foo); if (verbosity) fprintf(stderr, "%s: ioctl -> %d\n", __func__, foo);
if (0 != foo) { if (0 != foo) {
perror("ioctl G_FMT"); perror("ioctl G_FMT");
return -1; return -1;
@ -82,7 +84,7 @@ while ((opt = getopt(argc, argv, "d:hK:v")) != -1) {
if (verbosity) fimg_print_version(0); if (verbosity) fimg_print_version(0);
foo = essai_get_fmt(device, K); foo = essai_get_fmt(device, K);
fprintf(stderr, "\tessai -> %d\n", foo); if (verbosity || foo) fprintf(stderr, "%s: essai -> %d\n", __func__, foo);
return 0; return 0;
} }

View File

@ -218,7 +218,7 @@ return "???";
/* --------------------------------------------------------------------- */ /* --------------------------------------------------------------------- */
int pr_v4l2_format(char *txt, struct v4l2_format *ptr) int pr_v4l2_format(char *txt, struct v4l2_format *ptr)
{ {
fprintf(FP, "## v4l2_format, %-15s %p\n", txt, ptr); fprintf(FP, "## v4l2_format, %-15s, %p\n", txt, ptr);
fprintf(FP, " type %d %s\n", ptr->type,/* enum v4l2_buf_type */ fprintf(FP, " type %d %s\n", ptr->type,/* enum v4l2_buf_type */
fmttype2str(ptr->type)); fmttype2str(ptr->type));