Recherche avancée

Médias (91)

Autres articles (82)

  • Les tâches Cron régulières de la ferme

    1er décembre 2010, par

    La 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 (...)

  • XMP PHP

    13 mai 2011, par

    Dixit Wikipedia, XMP signifie :
    Extensible Metadata Platform ou XMP est un format de métadonnées basé sur XML utilisé dans les applications PDF, de photographie et de graphisme. Il a été lancé par Adobe Systems en avril 2001 en étant intégré à la version 5.0 d’Adobe Acrobat.
    Étant basé sur XML, il gère un ensemble de tags dynamiques pour l’utilisation dans le cadre du Web sémantique.
    XMP permet d’enregistrer sous forme d’un document XML des informations relatives à un fichier : titre, auteur, historique (...)

  • List of compatible distributions

    26 avril 2011, par

    The table below is the list of Linux distributions compatible with the automated installation script of MediaSPIP. Distribution nameVersion nameVersion number Debian Squeeze 6.x.x Debian Weezy 7.x.x Debian Jessie 8.x.x Ubuntu The Precise Pangolin 12.04 LTS Ubuntu The Trusty Tahr 14.04
    If you want to help us improve this list, you can provide us access to a machine whose distribution is not mentioned above or send the necessary fixes to add (...)

Sur d’autres sites (4401)

  • Revision e494df1a37 : Added ClearSystemState in a unit test There is another unit test that has been

    3 septembre 2013, par Yaowu Xu

    Changed Paths :
     Modify /test/fdct8x8_test.cc



    Added ClearSystemState in a unit test

    There is another unit test that has been failing randomly on win32
    build. Investigation has shown that the failure was caused by simd
    register state is not reset appropriately in the fdct8x8 test. This
    commit added ClearSystemState() in the teardown of this test, tests
    showed it resolved the random failure issue for win32 build.

    Related issue : https://code.google.com/p/webm/issues/detail?id=614

    Change-Id : I9381d0c1a6f4b855ccaeef1aca8c417ac8c71ee2

  • Android using JNI without static variables

    21 février 2013, par William Seemann

    I created my own version of Android's MediaMetadataRetriever using the source code for MediaMetadataRetriever.java as the basis. My version uses FFmpeg to retrieve the metadata. This approach works however it relies on static variables in the C code to retain state in between JNI calls. This means I can only use one instance of this class at a time or the state can get corrupted. The two Java functions are defined as follows :

    public class MediaMetadataRetriever
    {
       static {
           System.loadLibrary("metadata_retriever_jni");
       }

       public MediaMetadataRetriever() {

       }

       public native void setDataSource(String path) throws IllegalArgumentException;
       public native String extractMetadata(String key);

    }

    The corresponding C (JNI) code code is :

    const char *TAG = "Java_com_example_metadataexample_MediaMetadataRetriever";
    static AVFormatContext *pFormatCtx = NULL;

    JNIEXPORT void JNICALL
    Java_com_example_metadataexample_MediaMetadataRetriever_setDataSource(JNIEnv *env, jclass obj, jstring jpath) {

       if (pFormatCtx) {
           avformat_close_input(&pFormatCtx);
       }

       char duration[30] = "0";
       const char *uri;

       uri = (*env)->GetStringUTFChars(env, jpath, NULL);

       if (avformat_open_input(&pFormatCtx, uri, NULL, NULL) != 0) {
           __android_log_write(ANDROID_LOG_INFO, TAG, "Metadata could not be retrieved");
           (*env)->ReleaseStringUTFChars(env, jpath, uri);
           jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
           return;
       }

       if (avformat_find_stream_info(pFormatCtx, NULL) < 0) {
           __android_log_write(ANDROID_LOG_INFO, TAG, "Metadata could not be retrieved");
           avformat_close_input(&pFormatCtx);
           (*env)->ReleaseStringUTFChars(env, jpath, uri);
           jniThrowException(env, "java/lang/IllegalArgumentException", NULL);
           return;
       }

       (*env)->ReleaseStringUTFChars(env, jpath, uri);
    }

    JNIEXPORT jstring JNICALL
    Java_com_example_metadataexample_MediaMetadataRetriever_extractMetadata(JNIEnv *env, jclass obj, jstring jkey) {

       const char *key;
       jstring value = NULL;

       key = (*env)->GetStringUTFChars(env, jkey, NULL) ;

       if (!pFormatCtx) {
           goto fail;
       }

       if (key) {
           if (av_dict_get(pFormatCtx->metadata, key, NULL, AV_DICT_IGNORE_SUFFIX)) {
               value = (*env)->NewStringUTF(env, av_dict_get(pFormatCtx->metadata, key, NULL, AV_DICT_IGNORE_SUFFIX)->value);
           }
       }

       fail:
       (*env)->ReleaseStringUTFChars(env, jkey, key);

       return value;
    }

    Sample usage that outlines my issue would be :

    MediaMetadataRetriever mmr = new MediaMetadataRetriever();
    mmr.setDataSource("one.mp3");

    MediaMetadataRetriever mmr2 = new MediaMetadataRetriever();
    // This line resets the data source to two.mp3
    mmr2.setDataSource("two.mp3");

    // should retrieve the artist from one.mp3 but retrieves it from two.mp3 due to the static
    // variable being reset in the previous statement      
    String artist = mmr.extractMetadata(MediaMetadataRetriever.ARTIST);

    Can someone explain how I would structure this code so I could use multiple instances of MediaMetadataRetriever without them interfering with one another ? I don't want to switch the code to C++ and I'm fairly certain I don't need to modify MediaMetadataRetriever.java since this code is taken line-for-line from the Android framework (which allows multiple instances, see example below). It appears I need to re-structure the C code but I'm unsure how to retain state across JNI calls without using a static variable. Thanks in advance.

    File file1 = new File(Environment.getExternalStorageDirectory(), "Music/one.mp3");
    File file2 = new File(Environment.getExternalStorageDirectory(), "Music/two.mp3");

    android.media.MediaMetadataRetriever mmr = new android.media.MediaMetadataRetriever();
    mmr.setDataSource(file1.toString());

    android.media.MediaMetadataRetriever mmr2 = new android.media.MediaMetadataRetriever();
    mmr2.setDataSource(file2.toString());

    // Returns the artist of one.mp3, not two.mp3, as expected. This is the expected behavior
    // and confirms that multiple instances of MediaMetadataRetriever can be used simultaneously
    mmr.extractMetadata(android.media.MediaMetadataRetriever.METADATA_KEY_ARTIST));
  • exec() does not return to PHP process

    24 avril 2013, par Ivo Renkema

    I am running FFMPEG from PHP with the EXEC command. I am working on a XAMP stack.

    $command = 'ffmpeg -y -i input output 2>logfile';
    exec ($command);
    // after FFMPEG handling...

    As you can see, I am redirecting FFMPEG's output to a log file.

    This works fine from smaller video files (up to approximately 10 MB).

    My problem is that for larger video files, any PHP commands after the exec() will not get executed. Note however, that the FFMPEG process works just fine. The log file shows that FFMPEG terminates OK, and the resulting output file is also good.

    My max_execution_time is set to 10800, which should be plenty (and then some). Anyway, as I understand from max_time_limit :

    The set_time_limit() function and the configuration directive
    max_execution_time only affect the execution time of the script
    itself. Any time spent on activity that happens outside the execution
    of the script such as system calls using system() ... is not included
    when determining the maximum time that the script has been running.

    Update : error logs state : Premature end of script

    What is going on ?