Recherche avancée

Médias (0)

Mot : - Tags -/formulaire

Aucun média correspondant à vos critères n’est disponible sur le site.

Autres articles (49)

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

  • Emballe Médias : Mettre en ligne simplement des documents

    29 octobre 2010, par

    Le plugin emballe médias a été développé principalement pour la distribution mediaSPIP mais est également utilisé dans d’autres projets proches comme géodiversité par exemple. Plugins nécessaires et compatibles
    Pour fonctionner ce plugin nécessite que d’autres plugins soient installés : CFG Saisies SPIP Bonux Diogène swfupload jqueryui
    D’autres plugins peuvent être utilisés en complément afin d’améliorer ses capacités : Ancres douces Légendes photo_infos spipmotion (...)

  • Prérequis à l’installation

    31 janvier 2010, par

    Préambule
    Cet article n’a pas pour but de détailler les installations de ces logiciels mais plutôt de donner des informations sur leur configuration spécifique.
    Avant toute chose SPIPMotion tout comme MediaSPIP est fait pour tourner sur des distributions Linux de type Debian ou dérivées (Ubuntu...). Les documentations de ce site se réfèrent donc à ces distributions. Il est également possible de l’utiliser sur d’autres distributions Linux mais aucune garantie de bon fonctionnement n’est possible.
    Il (...)

Sur d’autres sites (6479)

  • Can't lock std::mutex again

    16 juillet 2017, par user3567631

    Sorry for poor English.
    I referenced this FFMPEG to make ffmpeg decoder.
    The open will block, I make it run in detach thread.
    I added std::unique_lock to lock mutex in beginning of open.

    bool FFmpegWrapper::open(std::string strFileName)
    {
    std::unique_lock lock(g_Mutex, std::try_to_lock);

    m_pFormatContext = avformat_alloc_context();
    m_pFormatContext->probesize = 4 * 1024 *100;
    m_pFormatContext->max_analyze_duration = 0 * AV_TIME_BASE;

    if (avformat_open_input(&m_pFormatContext, strFileName.c_str(), nullptr, nullptr) != 0)
       return false;

    if (avformat_find_stream_info(m_pFormatContext, NULL) < 0)
       return false;

    m_iVideoStream = m_iAudioStream = -1;
    for (unsigned int i = 0; i < m_pFormatContext->nb_streams; i++)
    {
       if ((m_iVideoStream < 0) && (m_pFormatContext->streams[i]->codec->codec_type == AVMEDIA_TYPE_VIDEO))
       {
           m_iVideoStream = i;
       }
       else if ((m_iAudioStream < 0) && (m_pFormatContext->streams[i]->codec->codec_type == AVMEDIA_TYPE_AUDIO))
       {
           m_iAudioStream = i;
       }
    }

    if (!(hasVideo() || hasAudio()))
       return false; // Didn't find video or audio stream

    if (hasVideo())
    {
       if (!openVideoStream())
           return false;
    }

    if (hasAudio())
    {
       if (!openAudioStream())
           return false;
    }

    retrieveFileInfo();

    m_bIsFileOpen = true;
    m_strFileName = strFileName;

    if (isImage())
    {
       m_dDurationInMs = 0;
       m_dFps = 0;
       m_lCurrentFrameNumber = 1;
       decodeImage();
    }

    m_bIsThreadRunning = false;
    if (m_bIsFileOpen)
       CCLOG("FFmpeg open stream succeed");
    else
       CCLOG("FFmpeg open stream failed");
    m_iState = eOpened;

    return m_bIsFileOpen;
    }

    and added unique_lock in close beginning like this.

    void FFmpegWrapper::close()
    {
    std::unique_lock lock(g_Mutex, std::try_to_lock);
    while (!lock.owns_lock())
    {
       lock.try_lock()
    }

    stop();

    if (m_pVideoBuffer != nullptr)
    {
       delete m_pVideoBuffer;
       m_pVideoBuffer = nullptr;
    }

    if (m_pVideoFrameRGB != nullptr)
    {
       av_free(m_pVideoFrameRGB);
       m_pVideoFrameRGB = nullptr;
    }

    if (m_pVideoFrame != nullptr)
    {
       av_free(m_pVideoFrame);
       m_pVideoFrame = nullptr;
    }

    if (m_pAudioFrame != nullptr)
    {
       av_free(m_pAudioFrame);
       m_pAudioFrame = nullptr;
    }


    if (m_pSwScalingContext != nullptr)
    {
       sws_freeContext(m_pSwScalingContext);
       m_pSwScalingContext = nullptr;
    }

    if (m_pVideoCodecContext != nullptr)
    {
       avcodec_close(m_pVideoCodecContext);
       m_pVideoCodecContext = nullptr;
    }
    if (m_pAudioCodecContext != nullptr)
    {
       avcodec_close(m_pAudioCodecContext);
       m_pAudioCodecContext = nullptr;
    }

    if (m_pFormatContext != nullptr)
    {
       avformat_free_context(m_pFormatContext);    
       m_pFormatContext = nullptr;
    }
    if(m_pSwr != nullptr)
       swr_free(&m_pSwr);

    CCLOG("CLOSE DONE");
    }

    When open is still running ,I want lock mutex again in close in main thread.
    it failed to get mutex ownership it is no problem. But even while loop waited the open() done, try_lock still can’t get the mutex ownership.I thought unique_lock out of scope will unlock mutex ,but it didn’t. I want to know how can I lock the mutex correctly.Thank you !

  • Failed to obtain lock for new video threads [closed]

    31 août 2023, par taha zahid

    We are facing issue with a software which uses ffmpeg for conversion to h264

    


    During a routine test for multiple camera for video loss on the software for more that 2 minutes

    


    We get below message
"Failed to obtain lock for new video thread"

    


    Since i am not into software developement i need to understand how we can optimise this so that this application can minimise cpu usage to 50% and or less but still no compromise on h264 quality during streaming and also recover video without any error during a failover test

    


    Since i am not into software i could not test anything

    


  • Revision 5671 : Un lock sur les champs readonly +des couleurs différentes

    9 août 2011, par kent1 — Log

    Un lock sur les champs readonly +des couleurs différentes