Recherche avancée

Médias (3)

Mot : - Tags -/Valkaama

Autres articles (24)

  • Soumettre améliorations et plugins supplémentaires

    10 avril 2011

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

  • Automated installation script of MediaSPIP

    25 avril 2011, par

    To overcome the difficulties mainly due to the installation of server side software dependencies, an "all-in-one" installation script written in bash was created to facilitate this step on a server with a compatible Linux distribution.
    You must have access to your server via SSH and a root account to use it, which will install the dependencies. Contact your provider if you do not have that.
    The documentation of the use of this installation script is available here.
    The code of this (...)

  • Gestion générale des documents

    13 mai 2011, par

    MédiaSPIP ne modifie jamais le document original mis en ligne.
    Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
    Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)

Sur d’autres sites (3431)

  • Anomalie #4543 : Accessibilité des chargements ajax (live regions)

    9 septembre 2020, par RastaPopoulos ♥

    Mmh pour le polite, elle dit pas de le supprimer tout court donc, mais le supprimer de cet endroit et le déplacer à un autre… Donc l’idée ça serait que c’est au final à chacun⋅e de le placer sur un élément au début de l’intérieur de ce qu’on recherche… si c’est pertinent pour ce cas de rechargement. Le "problème" étant que c’est effectivement pertinent d’après ce que je comprends dans 99% (allez 90% pour être gentil) des utilisations d’ajax de SPIP, liens et forms compris (sur 100% des forms déjà, quand on les recharge en ajax, c’est volontaire, et on veut que ça lise le début du bloc rechargé, indiquant qu’il y a XX erreurs par ex ou inverse que tout s’est bien passé). Mais donc ça veut dire qu’il faudrait reprendre des centaines de squelettes pour ajouter cet attribut au début de chaque morceau rechargé, manuellement… :(

    Au-delà de la recommandation, l’explication précise c’est quoi derrière ? Quand l’attribut est sur le parent, ça fait que le bloc rechargé entier est lu (sans pouvoir être arrêté ?) par le lecteur ? Alors que si on met l’attribut que sur un premier élément au début de l’intérieur du bloc, alors seul cet élément est relu et ça laisse le focus du lecteur à cet endroit ?

    Ça serait bien de savoir concrètement ce que ça veut dire, ce que ça produit comme effet, et donc pourquoi on conseille de pas le mettre sur le div du bloc rechargé entier mais seulement sur un élément du début interne.

    Surtout que ces conseils sont inverses à ce qui est documenté sur MozDev, qui dans ses exemples de l’attribut "polite" (comme pour les fiches oiseaux cités plus haut) met bien l’attribut sur le bloc rechargé entier.

  • Video Encoding issue

    6 octobre 2014, par pbellema

    I’m making an app that records small videos and concatenates them together (like Vine).
    If I record a video without concatenation there are no problems.
    But if I assemble recordings, two problems appear : records disappear or they are cut out.

    When I start to record :

    private boolean prepareVideoRecorder(){
       if (mCamera != null) {
           mMediaRecorder = new MediaRecorder();

           Camera.Parameters p = mCamera.getParameters();

           CamcorderProfile profile = CamcorderProfile.get(CamcorderProfile.QUALITY_480P);

           // Step 1: Unlock and set camera to MediaRecorder
           mCamera.unlock();
           mMediaRecorder.setCamera(mCamera);

          //mMediaRecorder.setOrientationHint(90);

           Log.i("MY_LOG", "set preview display");


           mMediaRecorder.setMaxDuration(8000);

           // Step 2: Set sources
           mMediaRecorder.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);
           mMediaRecorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);

           // Step 3: Set a CamcorderProfile (requires API Level 8 or higher)
           mMediaRecorder.setProfile(profile);




           mMediaRecorder.setVideoSize(profile.videoFrameWidth,profile.videoFrameHeight);

           // Step 4: Set output file
           mMediaRecorder.setOutputFile(getOutputMediaFile().toString());

           if (mFrontCamera) {

               mMediaRecorder.setPreviewDisplay(mFrontPreview.getHolder().getSurface());
           } else {
               mMediaRecorder.setPreviewDisplay(mBackPreview.getHolder().getSurface());
           }

           // Step 6: Prepare configured MediaRecorder
           try {
               mMediaRecorder.prepare();
           } catch (IllegalStateException e) {
               Log.d("MY_LOG", "IllegalStateException preparing MediaRecorder: " + e.getMessage());
               releaseMediaRecorder();
               return false;
           } catch (IOException e) {
               Log.d("MY_LOG", "IOException preparing MediaRecorder: " + e.getMessage());
               releaseMediaRecorder();
               return false;
           }
           return true;
       } else {
           Log.i("MY_LOG", "camera null");
           return false;
       }

    And when I stop :

    private void stopRecording(boolean forcedStop) {
       mRecording = false;
       try {
           mMediaRecorder.stop();
           releaseMediaRecorder();
           mCamera.lock();
           rotateVideo(mPaths.size() - 1, mFrontCamera);
          if (forcedStop) manageVideos(forcedStop);
       } catch (RuntimeException e) {
           Log.i("MY_LOG", "Exception" + e.toString());
       }
    }

    and when I finish, those are my concatenation functions :

    private void manageVideos(boolean forcedStop) {
       if (mPaths.size() > 1 || forcedStop) {
           String mediaStorageDirPath = Helper.getMediaStorageDirPath();
           String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
           final String path = mediaStorageDirPath + File.separator +
                   "APPEND_"+ timeStamp + ".mp4";

           finalVideo = path;
           ffmpegAppend(path);
       } else {
           finalVideo = mPaths.get(0);
           if (!isProcessingFFmpeg) {
               goToSubtitleFragment(finalVideo);
           }
       }
    }

    private void ffmpegAppend(String path) {
       String mediaStorageDirPath = Helper.getMediaStorageDirPath();
       String filePath = mediaStorageDirPath + File.separator + "append.txt";

       try {
           File f = new File(filePath);

           OutputStreamWriter out = new OutputStreamWriter(new FileOutputStream(f));
           BufferedWriter writer = new BufferedWriter(out);

           for (int i = 0; i < mPaths.size(); i++) {
               writer.write("file '" + mPaths.get(i) + "'");
               writer.newLine();
           }

           writer.close();

           String cmd = "ffmpeg -f concat -i " + filePath + " -c copy " + path;

           mCmd.add(cmd);

           manageCommands();

       } catch (Exception e) {

       }
    }

    private void manageCommands() {
       if (!isProcessingFFmpeg && mCmd.size() > 0) {
           new FFmpegTask().execute(mCmd.get(0));
       }
    }

    private class FFmpegTask extends AsyncTask {
       protected Integer doInBackground(String... cmd) {
           isProcessingFFmpeg = true;
           int fileCount = cmd.length;

           Processor p = new Processor(Helper.getEncodingLibraryPath(getActivity()), getActivity());

           for (String c : cmd) {
               String[] strArr = c.split(" ");
               p.process(strArr);
           }

           return fileCount;
       }

       protected void onProgressUpdate(Integer... progress) {

       }

       protected void onPostExecute(Integer result) {
           StackTraceElement[] ste = Thread.currentThread().getStackTrace();
           isProcessingFFmpeg = false;
           if (mCmd.size() > 0) {
               mCmd.remove(0);
           }
           if (mCmd.size() > 0) {
               new FFmpegTask().execute(mCmd.get(0));
           } else if (isFinished) {
               goToSubtitleFragment(finalVideo);
           }
       }
    }

    Do you see where the problems might be coming from ?
    Thanks to you.

  • pthread_frame : save the FF_DEBUG_THREADS option in PerThreadContext.

    10 juillet 2017, par Wan-Teh Chang
    pthread_frame : save the FF_DEBUG_THREADS option in PerThreadContext.
    

    Add the debug_threads boolean field to PerThreadContext. For
    PerThreadContext *p, p->debug_threads records whether the
    FF_DEBUG_THREADS bit is set in p->avctx->debug, and p->debug_threads and
    p->avctx->debug are kept in sync. The debug_threads field is defined as
    an atomic_int to allow atomic read by another thread in
    ff_thread_await_progress().

    This fixes the tsan warning that
    2e664b9c1e73c80aab91070c1eb7676f04bdd12d attempted to fix :

    WARNING : ThreadSanitizer : data race (pid=452658)
    Write of size 4 at 0x7b640003f4fc by main thread (mutexes : write M248499) :
    #0 update_context_from_user [..]/libavcodec/pthread_frame.c:335:19 (5ab42bb1a6f4b068d7863dabe9b2bacc+0xe73859)
    [..]
    Previous read of size 4 at 0x7b640003f4fc by thread T130 (mutexes : write M248502, write M248500) :
    #0 ff_thread_await_progress [..]/libavcodec/pthread_frame.c:591:26 (5ab42bb1a6f4b068d7863dabe9b2bacc+0xe749a1)

    Signed-off-by : Wan-Teh Chang <wtc@google.com>
    Signed-off-by : Ronald S. Bultje <rsbultje@gmail.com>

    • [DH] libavcodec/pthread_frame.c