Recherche avancée

Médias (3)

Mot : - Tags -/collection

Autres articles (90)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (10026)

  • Revision 101059 : saisies_verifier() : dans le cas d’une vérification de type fichiers il ...

    11 décembre 2016, par maieul@… — Log

    saisies_verifier() : dans le cas d’une vérification de type fichiers
    il faut également stocker quelque part le détail des erreurs par fichier
    en revanche il n’y pas besoin de normaliser les saisies de type fichiers

  • Return only video type (extension) by ffmpeg

    3 juillet 2018, par soroush

    I’m developing an converter service and I use FFMPEG to convert videos.

    I want to check input files, which kind of really is video.

    I used following command and get file type. But if the file has been manipulated It can not understand :

    curl -s -o /dev/null -w "%{content_type}" ${url}

    I really want to just get video type by ffmpeg.

    can anyone help me ?

  • Do we have to return full buffers each time our AVIO `read_packet()` callback from FFMPEG is called ?

    8 janvier 2023, par Alexis Wilke

    I allocate an AVIO context with my own read_packet() implementation. Only my implementation is such that I may return with a count smaller than the required input buf_size. Is that allowed ? Or do we have to fill the buffer as much as possible each time out read_packet() function gets called ?

    


    // initialization&#xA;    [...snip...]&#xA;    m_avio_context.reset(avio_alloc_context(&#xA;                          avio_buffer&#xA;                        , avio_buffer_size&#xA;                        , 0             // write flag&#xA;                        , this          // opaque&#xA;                        , &amp;FFMPEGDecoder::decoder_read_static&#xA;                        , nullptr       // write func.&#xA;                        , nullptr));    // seek func.&#xA;    [...snip...]&#xA;&#xA;// implementation of static function&#xA;int FFMPEGDecoder::decoder_read_static(void * opaque, std::uint8_t * buf, int size)&#xA;{&#xA;    return reinterpret_cast<ffmpegdecoder>(opaque)->decoder_read(buf, size);&#xA;}&#xA;&#xA;// the actual read_packet()&#xA;int FFMPEGDecoder::decoder_read(std::uint8_t * buf, int size)&#xA;{&#xA;    // in flushing mode, we won&#x27;t receive any more packets&#xA;    //&#xA;    if(m_flushing)&#xA;    {&#xA;        return 0;&#xA;    }&#xA;&#xA;    // m_packet is my own packet implementation (an std::vector&lt;>)&#xA;    //&#xA;    while(m_packet == nullptr&#xA;       || static_cast(m_read_pos) >= m_packet->size())&#xA;    {&#xA;        if(!m_incoming_packets.pop_front(m_packet, -1))&#xA;        {&#xA;            return 0;&#xA;        }&#xA;        if(m_packet->is_flush())&#xA;        {&#xA;            m_flushing = true;&#xA;            return 0;&#xA;        }&#xA;        m_read_pos = 0;&#xA;    }&#xA;&#xA;    // the number of bytes to copy size `size` or less if there are&#xA;    // less bytes available in my m_packet&#xA;    //&#xA;    int const copy(std::min(static_cast(size), m_packet->size() - m_read_pos));&#xA;&#xA;    memcpy(buf, m_packet->data().data() &#x2B; m_read_pos, copy);&#xA;&#xA;    m_read_pos &#x2B;= copy;&#xA;&#xA;    return copy;&#xA;}&#xA;</ffmpegdecoder>

    &#xA;

    I'm not looking for a way to fill the buffer, I'm going to implement it that way now. I'm looking for confirmation (or not) that the FFMPEG libraries are not capable of accepting less than size bytes in buf when our read_packet() gets called.

    &#xA;

    Do you know ?

    &#xA;