Recherche avancée

Médias (91)

Autres articles (79)

  • D’autres logiciels intéressants

    12 avril 2011, par

    On ne revendique pas d’être les seuls à faire ce que l’on fait ... et on ne revendique surtout pas d’être les meilleurs non plus ... Ce que l’on fait, on essaie juste de le faire bien, et de mieux en mieux...
    La liste suivante correspond à des logiciels qui tendent peu ou prou à faire comme MediaSPIP ou que MediaSPIP tente peu ou prou à faire pareil, peu importe ...
    On ne les connais pas, on ne les a pas essayé, mais vous pouvez peut être y jeter un coup d’oeil.
    Videopress
    Site Internet : (...)

  • MediaSPIP Player : problèmes potentiels

    22 février 2011, par

    Le lecteur ne fonctionne pas sur Internet Explorer
    Sur Internet Explorer (8 et 7 au moins), le plugin utilise le lecteur Flash flowplayer pour lire vidéos et son. Si le lecteur ne semble pas fonctionner, cela peut venir de la configuration du mod_deflate d’Apache.
    Si dans la configuration de ce module Apache vous avez une ligne qui ressemble à la suivante, essayez de la supprimer ou de la commenter pour voir si le lecteur fonctionne correctement : /** * GeSHi (C) 2004 - 2007 Nigel McNie, (...)

  • L’agrémenter visuellement

    10 avril 2011

    MediaSPIP est basé sur un système de thèmes et de squelettes. Les squelettes définissent le placement des informations dans la page, définissant un usage spécifique de la plateforme, et les thèmes l’habillage graphique général.
    Chacun peut proposer un nouveau thème graphique ou un squelette et le mettre à disposition de la communauté.

Sur d’autres sites (5028)

  • Revision be6aeadaf4 : Try again to merge branch 'frame-parallel' into master branch. In frame paralle

    27 janvier 2015, par hkuang

    Changed Paths :
     Modify /test/decode_test_driver.cc


     Modify /test/test-data.mk


     Modify /test/test-data.sha1


     Modify /test/test.mk


     Modify /test/test_vector_test.cc


     Modify /test/test_vectors.cc


     Modify /test/vp9_encoder_parms_get_to_decoder.cc


     Add /test/vp9_frame_parallel_test.cc


     Modify /test/webm_video_source.h


     Modify /vp9/common/vp9_alloccommon.c


     Modify /vp9/common/vp9_alloccommon.h


     Modify /vp9/common/vp9_entropymode.c


     Modify /vp9/common/vp9_mvref_common.c


     Modify /vp9/common/vp9_mvref_common.h


     Modify /vp9/common/vp9_onyxc_int.h


     Modify /vp9/common/vp9_reconinter.c


     Modify /vp9/common/vp9_reconinter.h


     Modify /vp9/decoder/vp9_decodeframe.c


     Modify /vp9/decoder/vp9_decodeframe.h


     Modify /vp9/decoder/vp9_decodemv.c


     Modify /vp9/decoder/vp9_decodemv.h


     Modify /vp9/decoder/vp9_decoder.c


     Modify /vp9/decoder/vp9_decoder.h


     Add /vp9/decoder/vp9_dthread.c


     Add /vp9/decoder/vp9_dthread.h


     Modify /vp9/encoder/vp9_encoder.c


     Modify /vp9/encoder/vp9_encoder.h


     Modify /vp9/encoder/vp9_firstpass.c


     Modify /vp9/encoder/vp9_pickmode.c


     Modify /vp9/encoder/vp9_rd.c


     Modify /vp9/encoder/vp9_rdopt.c


     Modify /vp9/vp9_cx_iface.c


     Modify /vp9/vp9_dx_iface.c


     Modify /vp9/vp9dx.mk


     Modify /vpx/vpx_frame_buffer.h


     Modify /webmdec.cc


     Modify /webmdec.h



    Try again to merge branch ’frame-parallel’ into master branch.

    In frame parallel decode, libvpx decoder decodes several frames on all
    cpus in parallel fashion. If not being flushed, it will only return frame
    when all the cpus are busy. If getting flushed, it will return all the
    frames in the decoder. Compare with current serial decode mode in which
    libvpx decoder is idle between decode calls, libvpx decoder is busy
    between decode calls.

    Current frame parallel decode will only speed up the decoding for frame
    parallel encoded videos. For non frame parallel encoded videos, frame
    parallel decode is slower than serial decode due to lack of loopfilter
    worker thread.

    There are still some known issues that need to be addressed. For example :
    decode frame parallel videos with segmentation enabled is not right sometimes.

    * frame-parallel :
    Add error handling for frame parallel decode and unit test for that.
    Fix a bug in frame parallel decode and add a unit test for that.
    Add two test vectors to test frame parallel decode.
    Add key frame seeking to webmdec and webm_video_source.
    Implement frame parallel decode for VP9.
    Increase the thread test range to cover 5, 6, 7, 8 threads.
    Fix a bug in adding frame parallel unit test.
    Add VP9 frame-parallel unit test.
    Manually pick "Make the api behavior conform to api spec." from master branch.
    Move vp9_dec_build_inter_predictors_* to decoder folder.
    Add segmentation map array for current and last frame segmentation.
    Include the right header for VP9 worker thread.
    Move vp9_thread.* to common.
    ctrl_get_reference does not need user_priv.
    Seperate the frame buffers from VP9 encoder/decoder structure.
    Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to
    build :"""
    Conflicts :
    test/codec_factory.h
    test/decode_test_driver.cc
    test/decode_test_driver.h
    test/invalid_file_test.cc
    test/test-data.sha1
    test/test.mk
    test/test_vectors.cc
    vp8/vp8_dx_iface.c
    vp9/common/vp9_alloccommon.c
    vp9/common/vp9_entropymode.c
    vp9/common/vp9_loopfilter_thread.c
    vp9/common/vp9_loopfilter_thread.h
    vp9/common/vp9_mvref_common.c
    vp9/common/vp9_onyxc_int.h
    vp9/common/vp9_reconinter.c
    vp9/decoder/vp9_decodeframe.c
    vp9/decoder/vp9_decodeframe.h
    vp9/decoder/vp9_decodemv.c
    vp9/decoder/vp9_decoder.c
    vp9/decoder/vp9_decoder.h
    vp9/encoder/vp9_encoder.c
    vp9/encoder/vp9_pickmode.c
    vp9/encoder/vp9_rdopt.c
    vp9/vp9_cx_iface.c
    vp9/vp9_dx_iface.c

    This reverts commit a18da9760a74d9ce6fb9f875706dc639c95402f5.

    Change-Id : I361442ffec1586d036ea2e0ee97ce4f077585f02

  • Revision 1eb6e683f2 : Add superframe support for frame parallel decoding. A superframe is a bunch of

    13 juin 2014, par hkuang

    Changed Paths :
     Modify /vp9/vp9_dx_iface.c



    Add superframe support for frame parallel decoding.

    A superframe is a bunch of frames that bundled as one frame. It is mostly
    used to combine one or more non-displayable frames and one displayable frame.

    For frame parallel decoding, libvpx decoder will only support decoding one
    normal frame or a super frame with superframe index.

    If an application pass a superframe without superframe index or a chunk
    of displayable frames without superframe index to libvpx decoder, libvpx
    will not decode it in frame parallel mode. But libvpx decoder still could
    decode it in serial mode.

    Change-Id : I04c9f2c828373d64e880a8c7bcade5307015ce35

  • ffplay cannot play more than one song

    5 février 2020, par Bernie gach

    i have taken ffplay.c file from http://ffmpeg.org/doxygen/trunk/ffplay_8c-source.html and re edited it to a cpp file to embed in my win32 gui application . i have made the following changes to it.

    1. made the int main function into a local function as follows, i can pass the HWND to embedd the player
    void Ffplay::play_song(string file, HWND parent, bool* successfull)
    {
       int flags;
       VideoState* is;
       input_filename = file;
       /* register all codecs, demux and protocols */
    #if CONFIG_AVDEVICE
       avdevice_register_all();
    #endif
       //avformat_network_init();
       //check whether the filename is valid
       if (input_filename.empty())
       {
           logger.log(logger.LEVEL_ERROR, "filename %s is not valid\n", file);
           return;
       }
       if (display_disable)
       {
           video_disable = 1;
       }
       flags = SDL_INIT_VIDEO | SDL_INIT_AUDIO | SDL_INIT_TIMER;
       if (audio_disable)
           flags &= ~SDL_INIT_AUDIO;
       else
       {
           /* Try to work around an occasional ALSA buffer underflow issue when the
            * period size is NPOT due to ALSA resampling by forcing the buffer size. */
           if (!SDL_getenv("SDL_AUDIO_ALSA_SET_BUFFER_SIZE"))
               SDL_setenv("SDL_AUDIO_ALSA_SET_BUFFER_SIZE", "1", 1);
       }
       if (display_disable)
           flags &= ~SDL_INIT_VIDEO;
       SDL_SetMainReady();
       if (SDL_Init(flags))
       {
           logger.log(logger.LEVEL_ERROR, "Could not initialize SDL - %s\n", SDL_GetError());
           logger.log(logger.LEVEL_ERROR, "(Did you set the DISPLAY variable?)\n");
           return;
       }
       //Initialize optional fields of a packet with default values.
       //Note, this does not touch the data and size members, which have to be initialized separately.
       av_init_packet(&flush_pkt);
       flush_pkt.data = (uint8_t*)&flush_pkt;

       if (!display_disable)
       {
           int flags = SDL_WINDOW_HIDDEN;
           if (alwaysontop)
    #if SDL_VERSION_ATLEAST(2,0,5)
               flags |= SDL_WINDOW_ALWAYS_ON_TOP;
    #else
               logger.log(logger.LEVEL_INFO, "SDL version doesn't support SDL_WINDOW_ALWAYS_ON_TOP. Feature will be inactive.\n");
    #endif
           if (borderless)
               flags |= SDL_WINDOW_BORDERLESS;
           else
               flags |= SDL_WINDOW_RESIZABLE;
           SDL_InitSubSystem(flags);
           ShowWindow(parent, true);
           //window = SDL_CreateWindow(program_name, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, default_width, default_height, flags);
           window = SDL_CreateWindowFrom(parent);
           SDL_SetHint(SDL_HINT_RENDER_SCALE_QUALITY, "linear");
           if (window) {
               renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
               if (!renderer)
               {
                   logger.log(logger.LEVEL_ERROR, "Failed to initialize a hardware accelerated renderer: %s\n", SDL_GetError());
                   renderer = SDL_CreateRenderer(window, -1, 0);
               }
               if (renderer)
               {
                   if (!SDL_GetRendererInfo(renderer, &renderer_info))
                   {
                       logger.log(logger.LEVEL_INFO, "Initialized %s renderer.\n", renderer_info.name);
                   }
               }
           }
           if (!window || !renderer || !renderer_info.num_texture_formats)
           {
               logger.log(logger.LEVEL_ERROR, "Failed to create window or renderer: %s\n", SDL_GetError());
               return;
           }
       }

       is = stream_open(input_filename.c_str(), file_iformat);
       if (!is)
       {
           logger.log(logger.LEVEL_ERROR, "Failed to initialize VideoState!\n");
           return;
       }
       //the song is playing now
       *successfull = true;
       event_loop(is);
       //the song has quit;
       *successfull = false;
    }
    1. changed the callback functions as the static ones couldn’t be used by c++ eg,
    void Ffplay::static_sdl_audio_callback(void* opaque, Uint8* stream, int len)
    {
       static_cast(opaque)->sdl_audio_callback(opaque, stream, len);
    }

    closing doesn’t change from the main file to close the audio and sdl framework

    void Ffplay::do_exit(VideoState* is)
    {
       abort = true;
       if(is)
       {
           stream_close(is);
       }
       if (renderer)
           SDL_DestroyRenderer(renderer);
       if (window)
            SDL_DestroyWindow(window);
    #if CONFIG_AVFILTER
       av_freep(&vfilters_list);
    #endif
       avformat_network_deinit();
       SDL_Quit();

    }

    i call the functions as follows from main gui

    ft=std::async(launch::async, &Menu::play_song, this, songs_to_play.at(0));

    the menu::play_song function is :

    void Menu::play_song(wstring song_path)
    {
       ready_to_play_song = false;
       OutputDebugString(L"\nbefore song\n");
       using std::future;
       using std::async;
       using std::launch;

       string input{ song_path.begin(),song_path.end() };
       Ffplay ffplay;
       ffplay.play_song(input, h_sdl_window, &song_opened);

       OutputDebugString(L"\nafter song\n");
       ready_to_play_song = true;
    }

    THE PROBLEM is i can only play one song . if i call the menu::play_song function again the sound is missing and the video/art cover is occasionally missing also. it seems some resources are not been released or something like that.

    i have localised the proble to this function

    int Ffplay::packet_queue_get(PacketQueue* q, AVPacket* pkt, int block, int* serial)
    {

       MyAVPacketList* pkt1;
       int ret;
       int count=0;
       SDL_LockMutex(q->mutex);

       for (;;)
       {


           if (q->abort_request)
           {
               ret = -1;
               break;
           }

           pkt1 = q->first_pkt;
           if (pkt1) {
               q->first_pkt = pkt1->next;
               if (!q->first_pkt)
                   q->last_pkt = NULL;
               q->nb_packets--;
               q->size -= pkt1->pkt.size + sizeof(*pkt1);
               q->duration -= pkt1->pkt.duration;
               *pkt = pkt1->pkt;
               if (serial)
                   *serial = pkt1->serial;
               av_free(pkt1);
               ret = 1;
               break;
           }
           else if (!block) {
               ret = 0;
               break;
           }
           else
           {
               logger.log(logger.LEVEL_INFO, "packet_queue before");
               SDL_CondWait(q->cond, q->mutex);
               logger.log(logger.LEVEL_INFO, "packet_queue after");

           }
       }
       SDL_UnlockMutex(q->mutex);
       return ret;
    }

    the call to SDL_CondWait(q->cond, q->mutex); never returns