
Recherche avancée
Autres articles (54)
-
Soumettre améliorations et plugins supplémentaires
10 avril 2011Si vous avez développé une nouvelle extension permettant d’ajouter une ou plusieurs fonctionnalités utiles à MediaSPIP, faites le nous savoir et son intégration dans la distribution officielle sera envisagée.
Vous pouvez utiliser la liste de discussion de développement afin de le faire savoir ou demander de l’aide quant à la réalisation de ce plugin. MediaSPIP étant basé sur SPIP, il est également possible d’utiliser le liste de discussion SPIP-zone de SPIP pour (...) -
Création définitive du canal
12 mars 2010, parLorsque votre demande est validée, vous pouvez alors procéder à la création proprement dite du canal. Chaque canal est un site à part entière placé sous votre responsabilité. Les administrateurs de la plateforme n’y ont aucun accès.
A la validation, vous recevez un email vous invitant donc à créer votre canal.
Pour ce faire il vous suffit de vous rendre à son adresse, dans notre exemple "http://votre_sous_domaine.mediaspip.net".
A ce moment là un mot de passe vous est demandé, il vous suffit d’y (...) -
Les tâches Cron régulières de la ferme
1er décembre 2010, parLa gestion de la ferme passe par l’exécution à intervalle régulier de plusieurs tâches répétitives dites Cron.
Le super Cron (gestion_mutu_super_cron)
Cette tâche, planifiée chaque minute, a pour simple effet d’appeler le Cron de l’ensemble des instances de la mutualisation régulièrement. Couplée avec un Cron système sur le site central de la mutualisation, cela permet de simplement générer des visites régulières sur les différents sites et éviter que les tâches des sites peu visités soient trop (...)
Sur d’autres sites (6362)
-
Evolution #4720 : [css vars] Utiliser nos variables CSS dans le thème de l’espace privé
27 avril 2021Ah oui bien les astuces à base de —spip-is-ltr.
Pour compléter sur le sujet des propriétés de positionnement, dans le futur, pour avoir le support complet quelque soit la direction (horizontale ou verticale) il faudra définir le writing-mode : https://developer.mozilla.org/en-US/docs/Web/CSS/writing-mode
Valeur qu’il faudrait pouvoir récupérer en fonction du code de langue, donc.
D’après ce que j’ai compris, en son absence ça se repose sur la direction du document (dir="rtl"), donc c’est bon pour les langues à l’horizontale.Bref, on a donc pris un peu d’avance et commencé à utiliser tout de suite des variables CSS.
Le choix s’est fait un peu tout seul : ça simplifie énormément la tâche, surtout en l’absence de préprocesseur, et ça permet d’unifier et maintenir plus facilement tous les composants.Par contre avant de poursuivre, il faudrait peut-être faire un petit point d’étape, voir rédiger des guidelines pour ne pas assister à une hyper-inflation de ces variables, et qu’elles ne soient pas utilisées à tord et à travers dans tous les sens.
La règle que j’ai suivie jusqu’à présent :
- Des variables globales
--spip-xxx
, de portée générale et utilisables partout : couleurs, propriétés de texte, arrondis des blocs, gouttières, etc. - Et pour chaque composant, quelques variables qui lui sont propres :
--composant-xxx
. À quelques exceptions près, elles ne devraient pas être utilisées en dehors. J’essaie de limiter le nombre en général, une dizaine au max (sauf pour les boutons, un cas spécial).
Enfin, il y a 2 variables globales bien importantes qu’il va falloir mettre au point : ce sont celles qui définissent les gouttières horizontales et verticales. Importantes cas après, chaque composant se basera dessus pour ses propres besoins, et au final on aura des espacements bien harmonisés et facilement contrôlables.
Il peut s’agit d’une mesure arbitraire, mais en général pour la gouttière horizontale on prend l’équivalent d’une hauteur de ligne, c’est à dire
font-size * line-height
à la racine du document.
Je l’ai ajoutée en prévision (spip-spacing-y
), sauf que pour l’instant elle est pas trop utilisable : le font-size qu’on reçoit dans l’env est pas celui qui est utilisé sur le body, donc ça fausse toutes les mesures. Le font-size du body est redéfini plusieurs fois d’affilée, c’est le bordel. Bref, encore des choses à mettre au point. - Des variables globales
-
Compiled ffmpeg
27 juin 2016, par Sunday Victoram on shared hosting that doesn’t support the use of ffmpeg. I’ve been busy since last week doing research on google on how to load my videos with my own static build of ffmpeg binary, from there I learn the one can use compiled ffmpeg. Have search for this file but to no avail. Pls where can I get this file or which search key can I use to search it on google. Thanks.
-
On memcpy application crashes - FFMPEG, C++
3 mai 2013, par SpamdarkI have been working with ffmpeg, I got it working good, but I got a memory leak, I followed some instructions to fix it (like use
av_frame_unref
), so I needed to update ffmpeg to the version 1.2.
This is weird for me, because everything was working good, and then, with the update, the application started to crash in a memcpy.Honestly, I don't know what's happening, I tried to google it but no answer. I would appreciate your help, here is the segment of the code which is failing :
int WbMedia::DecodeAudioFrame(int16_t *audio_buf){
static AVFrame *frame;
static AVPacket pkt;
static uint8_t *audio_pkt_data = NULL;
static int audio_pkt_size = 0;
static bool first_time = true;
if(first_time){
first_time=false;
}
int len1, data_size = 0;
for(;;){
bool do_rt = false;
while(audio_pkt_size > 0){
int obt_frame = 0;
if (!frame) {
if (!(frame = avcodec_alloc_frame())) {
MessageBox(0,"Out of memory error","Error: Memory",MB_ICONWARNING | MB_OK);
return -1;
}
}
len1 = avcodec_decode_audio4(_audio_ccontext,frame,&obt_frame,&pkt);
if(len1 < 0){
audio_pkt_size = 0;
break;
}
if(obt_frame){
data_size = av_samples_get_buffer_size(NULL,channel_count,sample_fr,_audio_ccontext->sample_fmt,1);
memcpy(audio_buf,frame->data[0],data_size);
}
audio_pkt_data+=len1;
audio_pkt_size-=len1;
if(data_size < 0){
continue;
}
return data_size;
}
if(pkt.data){
//MessageBox(0,"hi","Hi",MB_OK); // This is only for test if the app si reaching this av_free_packet
av_free_packet(&pkt);
}
if(do_rt){
return data_size;
}
// Try to get a new packet
if(!audio_packets.empty()){
WaitForSingleObject(Queue_Audio_Mutex,INFINITE);
pkt = *audio_packets.front();
audio_packets.pop();
ReleaseMutex(Queue_Audio_Mutex);
audio_pkt_size = pkt.size;
audio_pkt_data = pkt.data;
}else{
return -1;
}
}
return 0;
}Thanks so much.