Recherche avancée

Médias (91)

Autres articles (55)

  • MediaSPIP version 0.1 Beta

    16 avril 2011, par

    MediaSPIP 0.1 beta est la première version de MediaSPIP décrétée comme "utilisable".
    Le fichier zip ici présent contient uniquement les sources de MediaSPIP en version standalone.
    Pour avoir une installation fonctionnelle, il est nécessaire d’installer manuellement l’ensemble des dépendances logicielles sur le serveur.
    Si vous souhaitez utiliser cette archive pour une installation en mode ferme, il vous faudra également procéder à d’autres modifications (...)

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

  • Mise à jour de la version 0.1 vers 0.2

    24 juin 2013, par

    Explications des différents changements notables lors du passage de la version 0.1 de MediaSPIP à la version 0.3. Quelles sont les nouveautés
    Au niveau des dépendances logicielles Utilisation des dernières versions de FFMpeg (>= v1.2.1) ; Installation des dépendances pour Smush ; Installation de MediaInfo et FFprobe pour la récupération des métadonnées ; On n’utilise plus ffmpeg2theora ; On n’installe plus flvtool2 au profit de flvtool++ ; On n’installe plus ffmpeg-php qui n’est plus maintenu au (...)

Sur d’autres sites (6445)

  • libswresample : swr_convert() returns empty buffer

    11 septembre 2019, par Герман Лиманський

    I try to convert audio in format AV_SAMPLE_FMT_S32. I use swr_convert(), but out buffer still empty.

    // frame is decoded frame, rframe - is empty frame(out buffer)

       if (!main_context->resampler) {
                       main_context->resampler =
                       swr_alloc_set_opts(main_context->resampler,
                       AV_CH_LAYOUT_STEREO,                    // output
                       AV_SAMPLE_FMT_S32,                      // output
                       44100,                                  // output
                       audio_codec_context->channel_layout,    // input
                       audio_codec_context->sample_fmt,        // input
                       audio_codec_context->sample_rate,       // input
                       0,
                       nullptr);
                   swr_init(main_context->resampler);

               }

               //int in_samples = frame->nb_samples;
               int out_samples = av_rescale_rnd(swr_get_delay(
                   main_context->resampler, 44100) + 44100,
                   44100,
                   44100,
                   AV_ROUND_UP);

               size_t buffSize = av_samples_alloc(rframe->data, NULL,audio_codec_context->channels, out_samples, AV_SAMPLE_FMT_S32, 0);
               int len = swr_convert(main_context->resampler, rframe->data, frame->nb_samples, (const uint8_t * *)frame->data, frame->nb_samples);
    //here.. rframe->data should have some data, but its empty
               while (len > 0)
               {
                   size_t size_ = rframe->nb_samples * av_get_bytes_per_sample(AV_SAMPLE_FMT_S32);
                   main_context->audio_buf.write(rframe->data[0], size_, 1);

                   len = swr_convert(main_context->resampler, rframe->data, frame->nb_samples, NULL, NULL);
               }
  • Anomalie #2020 : Rendre optionnelles les extensions

    8 juin 2011, par cedric -

    Oui typiquement dans ce cas "analyser_backend" est une fonction de portée générique qui mérite d’être dans le core. Il faut gérer ces problèmes au cas par cas.

  • av_video_decode2 RETURNS THE VALUE -1094995529 in the threaded function

    24 mai 2014, par Whoami

    I am developing rtsp streaming player, and followed the below approach.

    1) Read packet, decode, display -> works perfectly.

    while (1) {
       if ( av_read_frame(pFormatCtx, &packet) >= 0) {
           if (packet.stream_index == videoStream) {
               retDecoder = avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, &packet);
               if  ( retDecoder <= 0)
                   LOGD (" Unable to Decode...retval %d ", retDecoder);
               if (frameFinished) {
               }
           }
           av_free_packet (&packet);
       }
    }

    Whereas,

    I introduced two threads, one is reading and pushing into the queue and the second one is reading from the queue.

    My problem is while reading the same packet, and decode, i m unable to decode, the return value of the av_video_decode2 is -1094995529.

    Below is the short description of code. Kindly help to solve this issue ?.

    AVPacketList *firstNode=NULL, *lastNode=NULL;

    int pushPacket (AVPacket * pkt)
    {
       AVPacketList *newNode = av_malloc(sizeof(AVPacketList));
       newNode->pkt = *pkt;
       newNode->next = NULL;

       SDL_LockMutex (rwMutex);

       if (lastNode != NULL )  {
           lastNode->next = newNode;
           lastNode = newNode;
       } else {
           firstNode = lastNode = newNode;
       }

    SDL_UnlockMutex (rwMutex);
    }

    int pullPacket ()
    {
       AVPacketList *tempNode;
       AVPacket *pkt;
       int res=0;

       SDL_LockMutex (rwMutex);
       if ( firstNode != NULL ) {
           tempNode = firstNode;
           *pkt = tempNode->pkt;
           res = avcodec_decode_video2(pCodecCtx, pFrame, &frameFinished, pkt);  // HERE IS THE PROBLEM.
           if (frameFinished) {
               LOGD (" fRAME DECODED.. %d \n", counter++);
           }

           if (firstNode->next != NULL) {  
               firstNode = firstNode->next;
           }
           else {
               firstNode = NULL;
               lastNode = NULL;
           }
           av_free (tempNode);
       }
    }

    In Thread 1 :

    int PacketReader (void *ptr)
    {
       AVPacket pkt1, *rpacket;
       rpacket = &pkt1;
       while (globalQuit != 0)  {
           if ( av_read_frame(pFormatCtx, rpacket) >= 0) {
               if (packet.stream_index == videoStream) {
                   pushPacket (rpacket);
               }
               av_free_packet(rpacket);
           }
       }
    }

    In thread 2 :

    while (1) {
      pullPacket ();
    }