Recherche avancée

Médias (0)

Mot : - Tags -/organisation

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

Autres articles (51)

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

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • HTML5 audio and video support

    13 avril 2011, par

    MediaSPIP uses HTML5 video and audio tags to play multimedia files, taking advantage of the latest W3C innovations supported by modern browsers.
    The MediaSPIP player used has been created specifically for MediaSPIP and can be easily adapted to fit in with a specific theme.
    For older browsers the Flowplayer flash fallback is used.
    MediaSPIP allows for media playback on major mobile platforms with the above (...)

Sur d’autres sites (8293)

  • a lot of GREEN Color at YUV420p —> RGB in OpenGL 2.0 Shader on iOS

    25 octobre 2012, par 이형근

    I want to make a movie player for iOS using ffmpeg and OpenGL ES 2.0
    but I have some problem. Output RGB image has a lot of GREEN color.
    This is code and images

    • 480x320 width & height :
    • 512x512 Texture width & height

    I got a YUV420p row data from ffmpeg AVFrame.

       for (int i = 0, nDataLen = 0; i < 3; i++) {
           int nShift = (i == 0) ? 0 : 1;
           uint8_t *pYUVData = (uint8_t *)_frame->data[i];
           for (int j = 0; j < (mHeight >> nShift); j++) {
               memcpy(&pData->pOutBuffer[nDataLen], pYUVData, (mWidth >> nShift));
               pYUVData += _frame->linesize[i];
               nDataLen += (mWidth >> nShift);
           }
       }

    and prepare texture for Y, U & V channel.

    //: U Texture
       if (sampler1Texture) glDeleteTextures(1, &sampler1Texture);

       glActiveTexture(GL_TEXTURE1);
       glGenTextures(1, &sampler1Texture);
       glBindTexture(GL_TEXTURE_2D, sampler1Texture);

       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
       // This is necessary for non-power-of-two textures
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
       glEnable(GL_TEXTURE_2D);

       glTexImage2D(GL_TEXTURE_2D,
                    0,
                    GL_LUMINANCE,
                    texW / 2,
                    texH / 2,
                    0,
                    GL_LUMINANCE,
                    GL_UNSIGNED_BYTE,
                    NULL);

       //: V Texture
       if (sampler2Texture) glDeleteTextures(1, &sampler2Texture);

       glActiveTexture(GL_TEXTURE2);
       glGenTextures(1, &sampler2Texture);
       glBindTexture(GL_TEXTURE_2D, sampler2Texture);

       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
       // This is necessary for non-power-of-two textures
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
       glEnable(GL_TEXTURE_2D);

       glTexImage2D(GL_TEXTURE_2D,
                    0,
                    GL_LUMINANCE,
                    texW / 2,
                    texH / 2,
                    0,
                    GL_LUMINANCE,
                    GL_UNSIGNED_BYTE,
                    NULL);

       //: Y Texture
       if (sampler0Texture) glDeleteTextures(1, &sampler0Texture);

       glActiveTexture(GL_TEXTURE0);
       glGenTextures(1, &sampler0Texture);
       glBindTexture(GL_TEXTURE_2D, sampler0Texture);

       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
       // This is necessary for non-power-of-two textures
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
       glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
       glEnable(GL_TEXTURE_2D);

       glTexImage2D(GL_TEXTURE_2D,
                    0,
                    GL_LUMINANCE,
                    texW,
                    texH,
                    0,
                    GL_LUMINANCE,
                    GL_UNSIGNED_BYTE,
                    NULL);

    Rendering part is below.

    int _idxU = mFrameW * mFrameH;
    int _idxV = _idxU + (_idxU / 4);

    // U data
    glActiveTexture(GL_TEXTURE1);
    glBindTexture(GL_TEXTURE_2D, sampler1Texture);
    glUniform1i(sampler1Uniform, 1);

    glTexSubImage2D(
                   GL_TEXTURE_2D,
                   0,
                   0,
                   0,
                   mFrameW / 2,            // source width
                   mFrameH / 2,            // source height
                   GL_LUMINANCE,
                   GL_UNSIGNED_BYTE,
                   &_frameData[_idxU]);

    // V data
    glActiveTexture(GL_TEXTURE2);
    glBindTexture(GL_TEXTURE_2D, sampler2Texture);
    glUniform1i(sampler2Texture, 2);

    glTexSubImage2D(
                   GL_TEXTURE_2D,
                   0,
                   0,
                   0,
                   mFrameW / 2,            // source width
                   mFrameH / 2,            // source height
                   GL_LUMINANCE,
                   GL_UNSIGNED_BYTE,
                   &_frameData[_idxV]);

    // Y data
    glActiveTexture(GL_TEXTURE0);
    glBindTexture(GL_TEXTURE_2D, sampler0Texture);
    glUniform1i(sampler0Uniform, 0);

    glTexSubImage2D(
                   GL_TEXTURE_2D,
                   0,
                   0,
                   0,
                   mFrameW,            // source width
                   mFrameH,            // source height
                   GL_LUMINANCE,
                   GL_UNSIGNED_BYTE,
                   _frameData);

    Vertex Shader & Fragment Shader is below.

    attribute vec4 Position;
    attribute vec2 TexCoordIn;

    varying vec2 TexCoordOut;
    varying vec2 TexCoordOut_UV;

    uniform mat4 Projection;
    uniform mat4 Modelview;

    void main()
    {
       gl_Position = Projection * Modelview * Position;
       TexCoordOut = TexCoordIn;
    }



    uniform sampler2D sampler0; // Y Texture Sampler
    uniform sampler2D sampler1; // U Texture Sampler
    uniform sampler2D sampler2; // V Texture Sampler

    varying highp vec2 TexCoordOut;

    void main()
    {
       highp float y = texture2D(sampler0, TexCoordOut).r;
       highp float u = texture2D(sampler2, TexCoordOut).r - 0.5;
       highp float v = texture2D(sampler1, TexCoordOut).r - 0.5;

       //y = 0.0;
       //u = 0.0;
       //v = 0.0;

       highp float r = y + 1.13983 * v;
       highp float g = y - 0.39465 * u - 0.58060 * v;
       highp float b = y + 2.03211 * u;

       gl_FragColor = vec4(r, g, b, 1.0);
    }

    Y Texture (Grayscale) is correct but U & V has a lot of Green Color.
    So final RGB image (Y+U+V) has a lot of GREEN Color.
    What's the problem ?

    Please help.
    thanks.

  • libaomenc : Add support for tiles

    23 octobre 2018, par Mark Thompson
    libaomenc : Add support for tiles
    

    Adds an option to specify the number of tile rows and columns, then uses
    a uniform tiling if possible and otherwise a fixed tiling with equal-sized
    tiles to fill the frame.

    Also adds -tile-columns and -tile-rows options to make tilings with
    power-of-two numbers of tiles, matching the behaviour of the libvpx/VP9
    encoder.

    • [DH] libavcodec/libaomenc.c
  • Revision 399823b6f5 : Add support for setting byte alignment. Add support for setting byte alignment

    13 novembre 2014, par Frank Galligan

    Changed Paths :
     Add /test/byte_alignment_test.cc


     Modify /test/decode_test_driver.h


     Modify /test/test.mk


     Modify /vp9/common/vp9_alloccommon.c


     Modify /vp9/common/vp9_onyxc_int.h


     Modify /vp9/decoder/vp9_decodeframe.c


     Modify /vp9/encoder/vp9_denoiser.c


     Modify /vp9/encoder/vp9_encoder.c


     Modify /vp9/encoder/vp9_lookahead.c


     Modify /vp9/encoder/vp9_svc_layercontext.c


     Modify /vp9/encoder/vp9_temporal_filter.c


     Modify /vp9/vp9_dx_iface.c


     Modify /vpx/vp8dx.h


     Modify /vpx_scale/generic/yv12config.c


     Modify /vpx_scale/yv12config.h



    Add support for setting byte alignment.

    Add support for setting byte alignment on the Y, U, and V plane of the
    reference buffers. The byte alignment must be a power of 2, from 32 to
    1024. A value of 0 sets legacy alignment.

    Change-Id : I7c1399622f7aa68e123646369216b32047dda73d