Posté le 02/06/2021 13:41
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 138 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 02/06/2021 20:55 | #
Attends mais ça m'intéresse beaucoup cette affaire. Moi aussi j'avais jeté un oeil à la DCT quand j'avais regardé si on pouvait faire de la vidéo couleur sur la Graph 90+E, mais je le n'avais pas codé. Et je vois que tu as implémenté une version vraiment cool, t'as fait tout le boulot !
Quel est le statut de tout ça ? Qu'est-ce qui marche, à quel point est-ce que la démo est avancée, est-ce que le code est propre, est-ce que c'est assez rapide ?
Citer : Posté le 03/06/2021 03:09 | #
Ca tourne en temps réel pour des vidéos à 30fps sans overclock pour la version monochrome et pour le dct faut faire un petit overclock pour que ca tourne bien. (Y'a des stats pour savoir si il y a eu frames trop longues, le temps moyen, min et max à la fin de la vidéo sur la calto)
J'avait trouvé un article sur le DCT du codec Bink 2.2 (ici) qui utilisait des entiers et y'avait une implémentation en matlab donc je l'ai réimplémenté en C (ici). Ce qui permet de faire tourner relativement vite.
Sinon pour l'utilisation, y'a un script python qui convertie une video, faut juste le metre sur la calto après. Et y'a même un programme avec SDL pour visualiser sur le pc. (les instructions sont dans le README sur le github)
Le code est relativement propre mais après on peut toujours faire un peut de ménage.
Citer : Posté le 06/06/2021 09:48 | #
Wow c'est incroyable ! Comme toutes tes créations ça ne déçoit simplement jamais.
La vidéo que j'ai convertie avait un fond de couleur unie, ce qui fait un peu bizarre à la DCT, mais dès qu'on se recule assez pour ne plus voir les pixels individuels (ou qu'on n'accommode plus) l'illusion est très propre pour du noir et blanc. Bravo !
La DCT entière m'intéresse beaucoup, j'y repasserai c'est sûr. Clairement un des projets vidéo les plus intéressants, chapeau bas.
Citer : Posté le 06/06/2021 12:36 | #
Je regarde ca plus tard, mais ca a l'air sympa
J'esserais de contribuer des que je finis un PoC avec l'USB(bon lephé c'est quand que je pourrais envoyer des données du PC vers la calto? )
Citer : Posté le 07/04/2022 23:39 | #
Coucou !
J'ai une floppée d'erreurs lors du make:
reader_calc.c: In function ‘timer_startup’:
reader_calc.c:175:9: warning: ‘timer_setup’ is deprecated: Use timer_configure() instead [-Wdeprecated-declarations]
175 | htimer = timer_setup(2, delay, timer_callback);
| ^~~~~~
In file included from /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/include/gint/rtc.h:14,
from reader_calc.c:6:
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/include/gint/timer.h:235:5: note:
declared here
235 | int timer_setup(int timer, uint64_t delay_us, timer_callback_t callback, ...);
| ^~~~~~~~~~~
bitstream.c: In function ‘read_float’:
bitstream.c:54:18: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
54 | return *((float*)&f);
| ~^~~~~~~~~~~
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(start.c.obj): in function `__Exit':
start.c:(.text+0x50): undefined reference to `_longjmp'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(start.c.obj): in function `_start':
start.c:(.text.entry+0x170): undefined reference to `_setjmp'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: start.c:(.text.entry+0x1b0): undefined reference to `_exit'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /tmp/ccpOCaf5.o: in function `mkpth':
/mnt/c/Users/utilisateur/Downloads/fxplayer-master/reader_calc.c:121: undefined reference to `_strlen'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /mnt/c/Users/utilisateur/Downloads/fxplayer-master/reader_calc.c:121: undefined reference to `_sprintf'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /tmp/ccpOCaf5.o: in function `init_stream':
/mnt/c/Users/utilisateur/Downloads/fxplayer-master/reader_calc.c:151: undefined reference to `_malloc'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /tmp/ccpOCaf5.o: in function `close_stream':
/mnt/c/Users/utilisateur/Downloads/fxplayer-master/reader_calc.c:156: undefined reference to `_free'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /tmp/ccqlTnW5.o: in function `init_huffman':
/mnt/c/Users/utilisateur/Downloads/fxplayer-master/huffman.c:54: undefined reference to `_calloc'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /tmp/ccqlTnW5.o: in function `cleanup_huffman':
/mnt/c/Users/utilisateur/Downloads/fxplayer-master/huffman.c:97: undefined reference to `_free'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(keydev.c.obj): in function `_keydev_init':
keydev.c:(.text+0x78): undefined reference to `_memset'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(keydev.c.obj): in function `_keydev_transform':
keydev.c:(.text+0x474): undefined reference to `_memcpy'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(keysc.c.obj): in function `_configure':
keysc.c:(.text+0x7c): undefined reference to `_memset'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(dprint.c.obj): in function `_dprint_opt':
dprint.c:(.text+0x68): undefined reference to `_vsnprintf'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(dprint.c.obj): in function `_dprint':
dprint.c:(.text+0xb8): undefined reference to `_vsnprintf'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(tmu.c.obj): in function `_configure':
tmu.c:(.text+0x2a0): undefined reference to `_memcpy'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(tmu.c.obj): in function `_timer_configure':
tmu.c:(.text+0x600): undefined reference to `_memset'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(tmu.c.obj): in function `_timer_setup':
tmu.c:(.text+0x850): undefined reference to `_memset'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(intc.c.obj): in function `_intc_handler':
intc.c:(.text+0x22c): undefined reference to `_memcpy'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(intc.c.obj): in function `_intc_handler_function':
intc.c:(.text+0x274): undefined reference to `_memcpy'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(kernel.c.obj): in function `_kinit':
kernel.c:(.text+0x154): undefined reference to `_memcpy'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: kernel.c:(.text+0x19c): undefined reference to `_malloc'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(kernel.c.obj): in function `_kquit':
kernel.c:(.text+0x1f8): undefined reference to `_free'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(osmenu.c.obj): in function `___osmenu':
osmenu.c:(.text+0x64): undefined reference to `_memcpy'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(osmenu.c.obj): in function `_gint_osmenu':
osmenu.c:(.text+0xd4): undefined reference to `_memset'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(world.c.obj): in function `_gint_world_alloc':
world.c:(.text+0x88): undefined reference to `_malloc'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(world.c.obj): in function `_gint_world_free':
world.c:(.text+0x94): undefined reference to `_free'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(world.c.obj): in function `_gint_switch':
world.c:(.text+0x330): undefined reference to `_memset'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(arena_gint.c.obj): in function `_gint_realloc':
arena_gint.c:(.text+0x5ec): undefined reference to `_memcpy'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(arena_gint.c.obj): in function `_kmalloc_init_arena':
arena_gint.c:(.text+0x6c4): undefined reference to `_memset'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(kmalloc.c.obj): in function `_kmalloc_get_arena':
kmalloc.c:(.text+0x90): undefined reference to `_strcmp'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libgint-fx.a(kmalloc.c.obj): in function `_kmalloc':
kmalloc.c:(.text+0x124): undefined reference to `_strcmp'
collect2: error: ld returned 1 exit status
make: *** [Makefile:30: bad.elf] Error 1
Citer : Posté le 08/04/2022 08:38 | #
Il faut que tu rajoutes -lc dans les options de link après -lgint-fx.
Citer : Posté le 08/04/2022 15:55 | #
J'ai d'autres erreurs à ce moment là :
print.c:(.text+0xa8): undefined reference to `_write'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libc.a(fileutil.c.obj): in function `___fp_close':
fileutil.c:(.text+0x78): undefined reference to `_close'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libc.a(fileutil.c.obj): in function `___fp_read':
fileutil.c:(.text+0x288): undefined reference to `_read'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libc.a(fileutil.c.obj): in function `___fp_write':
fileutil.c:(.text+0x3e4): undefined reference to `_write'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libc.a(fseek.c.obj): in function `_fseek':
fseek.c:(.text+0x44): undefined reference to `_lseek'
/home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/../../../../sh3eb-elf/bin/ld: /home/potter/.local/share/giteapc/Lephenixnoir/sh-elf-gcc/lib/gcc/sh3eb-elf/11.1.0/libc.a(fflush.c.obj): in function `_fflush':
fflush.c:(.text+0x80): undefined reference to `_lseek'
collect2: error: ld returned 1 exit status
make: *** [Makefile:29: bad.elf] Error 1
Citer : Posté le 08/04/2022 15:59 | #
Ah oui pardon, j'avais oublié cette histoire. La dépendance entre gint et fxlibc est circulaire, il faut donc refaire une passe. Dans gintctl, j'ai ces flags-là :
Tu dois pas être loin.
Citer : Posté le 08/04/2022 16:01 | #
Super, ça marche ! Merci !
Citer : Posté le 08/04/2022 16:06 | #
Ce qui me fait penser que je suis pas encore revenu dessus... ça fait peur de voir que presque 1 an et y'a des idées comme ça qui ont pas avancé.
Citer : Posté le 08/04/2022 16:09 | #
Par contre quand je rebuild j'ai : make: Nothing to be done for 'all'.
Citer : Posté le 08/04/2022 16:12 | #
Et qu'est-ce que tu as modifié entre les deux builds qui aurait dû causer une recompilation ?
Citer : Posté le 08/04/2022 16:14 | #
Alors en fait :
J'ai fait ca hier soir tard donc j'étais fatigué, donc j'avais lancé le convertisseur en donnant un mp4 en output
Du coup j'ai compilé, ca a créé le fichier qui était genre File Error, donc j'ai relancé le python sans donner de deuxième argument (par défaut l'output c'est data.bin), j'ai recompilé et j'ai ça.
Citer : Posté le 08/04/2022 16:16 | #
C'est normal parce que data.bin n'affecte pas le résultat de la compilation. Tu es supposé transférer data.bin à côté de l'add-in, et le fichier g1a en lui-même marche pour toute vidéo.
Edit : Donc tu peux juste garder le même add-in et retransférer le nouveau data.bin.
Citer : Posté le 08/04/2022 16:18 | #
Ah ok j’avais mal compris. Merci !
Ajouté le 08/04/2022 à 16:21 :
Bon alors en mettant DATA.bin ça ne marche pas, j'ai toujours Stream init failed File Missing ?
Y'a pas moyen de rebuild ? Car le fichier g1a s’appelle BAD.g1a donc bon...
Citer : Posté le 08/04/2022 16:29 | #
Le fichier doit bien s'appeler data.bin en minuscules.
Pour recompiler, tu peux soit faire make -B qui force la recompilation de tout depuis le début, ou supprimer BAD.g1a et/ou le dossier de compilation qui forcera make à recompiler ce que tu auras supprimé. Mais en principe ça ne changera pas le résultat, tu te retrouveras toujours avec le même g1a qui donnera toujours la même erreur.
Citer : Posté le 08/04/2022 16:31 | #
Ah oui merde. En fait FA-124 me met le nom en majuscule, je fais comment ?
Citer : Posté le 08/04/2022 16:33 | #
Tu peux utiliser p7 si tu l'as, ou peut-être que tu peux utiliser Explorer pour le renommer une fois sur la calculatrice.
Citer : Posté le 08/04/2022 16:39 | #
Yay, pour p7 WSL gère pas l'USB et Explorer gère pas les minuscules...
Citer : Posté le 08/04/2022 16:42 | #
Tu peux aussi modifier le code du lecteur vidéo. Cherche "data.bin" dans le code et modifie-le pour correspondre à la casse que tu as sur la calto, puis recompile.