Recherche avancée

Médias (5)

Mot : - Tags -/open film making

Autres articles (46)

  • 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.

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

  • Support audio et vidéo HTML5

    10 avril 2011

    MediaSPIP utilise les balises HTML5 video et audio pour la lecture de documents multimedia en profitant des dernières innovations du W3C supportées par les navigateurs modernes.
    Pour les navigateurs plus anciens, le lecteur flash Flowplayer est utilisé.
    Le lecteur HTML5 utilisé a été spécifiquement créé pour MediaSPIP : il est complètement modifiable graphiquement pour correspondre à un thème choisi.
    Ces technologies permettent de distribuer vidéo et son à la fois sur des ordinateurs conventionnels (...)

Sur d’autres sites (9981)

  • C++ smart pointers to FFmpeg objects

    15 octobre 2024, par Elija

    Can I create and use C++ smart pointers for different pointer types from FFmpeg ?

    


      

    1. "AVCodecContext *" which is used only as a pointer in all functions except deallocation.
    2. 


    


    Alloc :

    


    AVCodecContext *avcodec_alloc_context3(const AVCodec *codec);


    


    Free :

    


    void avcodec_free_context(AVCodecContext **avctx);


    


    Use :

    


    int avcodec_open2(AVCodecContext *avctx, const AVCodec *codec, AVDictionary **options);


    


    Then the smart pointer :

    


    std::shared_ptr<avcodeccontext> av_codec_context(avcodec_alloc_context3(av_codec),&#xA;[](AVCodecContext* _context)&#xA;{&#xA;  if (_context) avcodec_free_context(&amp;_context);&#xA;});&#xA;avcodec_open2(av_codec_context.get(), av_codec, NULL)&#xA;</avcodeccontext>

    &#xA;

    Is this correct ?

    &#xA;

      &#xA;
    1. "AVDictionary **" which is used in all functions only as a pointer to a pointer.
    2. &#xA;

    &#xA;

    Alloc and use :

    &#xA;

    int av_dict_set(AVDictionary **pm, const char *key, const char *value, int flags);&#xA;

    &#xA;

    where pm is a Pointer to a pointer to a dictionary struct. If *pm is NULL a dictionary struct is allocated and put in *pm.

    &#xA;

    Free :

    &#xA;

    void av_dict_free(AVDictionary **m);&#xA;

    &#xA;

    Then a smart pointer :

    &#xA;

    std::shared_ptr av_dict(new (AVDictionary*),&#xA;[](AVDictionary** _dict)&#xA;{&#xA;  if (_dict)&#xA;  {&#xA;    if(*_dict)&#xA;      av_dict_free(_dict);&#xA;    delete _dict;&#xA;  }&#xA;});&#xA;av_dict_set(av_dict.get(), "key", "value", 0);&#xA;

    &#xA;

    Is this correct ?

    &#xA;

      &#xA;
    1. "AVFormatContext *" which is used both as a pointer and as a pointer to a pointer.
    2. &#xA;

    &#xA;

    Alloc :

    &#xA;

    AVFormatContext *avformat_alloc_context(void);&#xA;

    &#xA;

    Free :

    &#xA;

    void avformat_free_context(AVFormatContext *s);&#xA;

    &#xA;

    Use :

    &#xA;

    int avformat_find_stream_info(AVFormatContext *ic, AVDictionary **options);&#xA;

    &#xA;

    or

    &#xA;

    int avformat_open_input(AVFormatContext **ps, const char *url, const AVInputFormat *fmt, AVDictionary **options);&#xA;

    &#xA;

    where ps is a Pointer to user-supplied AVFormatContext (allocated by avformat_alloc_context). May be a pointer to NULL, in which case an AVFormatContext is allocated by this function and written into ps.

    &#xA;

    Then a smart pointer :

    &#xA;

    std::shared_ptr<avformatcontext> av_format_context(avformat_alloc_context(),&#xA;[](AVFormatContext* _context)&#xA;{&#xA;  if(_context)&#xA;    avformat_free_context(_context);&#xA;});&#xA;avformat_find_stream_info(av_format_context.get(), NULL);&#xA;</avformatcontext>

    &#xA;

    Is this correct ? But how can I use it with the avformat_open_input() function, which needs a pointer to a pointer and may want to create an object by this pointer ?

    &#xA;

  • Revision 32192 : code plus smart puisque extraire_attribut accepte un tableau en entree

    18 octobre 2009, par cedric@… — Log

    code plus smart puisque extraire_attribut accepte un tableau en entree

  • Révision 23409 : |affdate{Y-m-d} qui utilise la fonction PHP est un peu plus smart et sait traiter...

    9 février 2017, par cedric@yterium.com