Recherche avancée

Médias (29)

Mot : - Tags -/Musique

Autres articles (102)

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

  • MediaSPIP 0.1 Beta version

    25 avril 2011, par

    MediaSPIP 0.1 beta is the first version of MediaSPIP proclaimed as "usable".
    The zip file provided here only contains the sources of MediaSPIP in its standalone version.
    To get a working installation, you must manually install all-software dependencies on the server.
    If you want to use this archive for an installation in "farm mode", you will also need to proceed to other manual (...)

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

Sur d’autres sites (18174)

  • Anomalie #1948 : Suppression documents attachés à des forums

    16 mars 2011, par cedric -

    il faut auparavant s’assurer que dans un message de forum ne provoque plus l’attachement automatique du doc23 sur le message !

  • NV12 textures not working in DirectX 11.1

    28 mars 2017, par André Vitor

    I’m trying to render NV12 textures from frames decoded with ffmpeg 2.8.11 using DirectX 11.1 but when I do render them the texture is broken and the color is always off.

    Result is : http://imgur.com/a/YIVQk

    Code below is how I get the frame decoded by ffmpeg that is in YUV420P format and then I convert(not sure) to NV12 format by interleaving the U and V planes.

    static uint8_t *pixelsPtr_ = nullptr;

    UINT rowPitch = ((width + 1) >> 1) * 2;
    UINT imageSize = (rowPitch * height) + ((rowPitch * height + 1) >> 1);

    if (!pixelsPtr_)
    {
       pixelsPtr_ = new uint8_t[imageSize];
    }

    int j, position = 0;

    uint32_t pitchY = avFrame.linesize[0];
    uint32_t pitchU = avFrame.linesize[1];
    uint32_t pitchV = avFrame.linesize[2];

    uint8_t *avY = avFrame.data[0];
    uint8_t *avU = avFrame.data[1];
    uint8_t *avV = avFrame.data[2];

    ::SecureZeroMemory(pixelsPtr_, imageSize);

    for (j = 0; j < height; j++)
    {              
       ::CopyMemory(pixelsPtr_ + position, avY, (width));
       position += (width);
       avY += pitchY;
    }

    for (j = 0; j < height >> 1; j++)
    {
       ::CopyMemory(pixelsPtr_ + position, avU, (width >> 1));
       position += (width >> 1);
       avU += pitchU;

       ::CopyMemory(pixelsPtr_ + position, avV, (width >> 1));
       position += (width >> 1);
       avV += pitchV;
    }

    This is how I’m creating the Texture2D with the data I just got.

    // Create texture
    D3D11_TEXTURE2D_DESC desc;
    desc.Width = width;
    desc.Height = height;
    desc.MipLevels = 1;
    desc.ArraySize = 1;
    desc.Format = DXGI_FORMAT_NV12;
    desc.SampleDesc.Count = 1;
    desc.SampleDesc.Quality = 0;
    desc.Usage = D3D11_USAGE_DEFAULT;
    desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
    desc.CPUAccessFlags = 0;
    desc.MiscFlags = 0;

    D3D11_SUBRESOURCE_DATA initData;
    initData.pSysMem = pixelsPtr_;
    initData.SysMemPitch = rowPitch;

    ID3D11Texture2D* tex = nullptr;
    hr = d3dDevice->CreateTexture2D(&desc, &initData, &tex);
    if (SUCCEEDED(hr) && tex != 0)
    {
       D3D11_SHADER_RESOURCE_VIEW_DESC SRVDesc;
       memset(&SRVDesc, 0, sizeof(SRVDesc));
       SRVDesc.Format = DXGI_FORMAT_R8_UNORM;
       SRVDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D;
       SRVDesc.Texture2D.MipLevels = 1;

       hr = d3dDevice->CreateShaderResourceView(tex, &SRVDesc, &textureViewYUV[0]);
       if (FAILED(hr))
       {
           tex->Release();
           return hr;
       }

       SRVDesc.Format = DXGI_FORMAT_R8G8_UNORM;

       hr = d3dDevice->CreateShaderResourceView(tex, &SRVDesc, &textureViewYUV[1]);
       if (FAILED(hr))
       {
           tex->Release();
           return hr;
       }

       tex->Release();
    }

    Then I pass both Shader Resource View to Pixel Shader

    graphics->Context()->PSSetShaderResources(0, 2, textureViewYUV);

    This is the pixel shader :

    struct PixelShaderInput
    {
       float4 pos         : SV_POSITION;
       float4 Color       : COLOR;
       float2 texCoord    : TEXCOORD;
    };

    static const float3x3 YUVtoRGBCoeffMatrix =
    {
       1.164383f,  1.164383f, 1.164383f,
       0.000000f, -0.391762f, 2.017232f,
       1.596027f, -0.812968f, 0.000000f
    };

    Texture2D<float>  luminanceChannel;
    Texture2D<float2> chrominanceChannel;

    SamplerState linearfilter
    {
       Filter = MIN_MAG_MIP_LINEAR;
    };

    float3 ConvertYUVtoRGB(float3 yuv)
    {
       // Derived from https://msdn.microsoft.com/en-us/library/windows/desktop/dd206750(v=vs.85).aspx
       // Section: Converting 8-bit YUV to RGB888

       // These values are calculated from (16 / 255) and (128 / 255)
       yuv -= float3(0.062745f, 0.501960f, 0.501960f);
       yuv = mul(yuv, YUVtoRGBCoeffMatrix);

       return saturate(yuv);
    }

    float4 main(PixelShaderInput input) : SV_TARGET
    {
       float y = luminanceChannel.Sample(linearfilter, input.texCoord);
       float2 uv = chrominanceChannel.Sample(linearfilter, input.texCoord);

       float3 YUV = float3(y, uv.x, uv.y);
       float4 YUV4 = float4(YUV.x, YUV.y, YUV.z, 1);

       float3 RGB = ConvertYUVtoRGB(YUV);
       float4 RGB4 = float4(RGB.x, RGB.y, RGB.z, 1);

       return RGB4;
    }
    </float2></float>

    Can someone help me ? What I’m doing wrong ?

    EDIT #1

    int skipLineArea = 0;
    int uvCount = (height >> 1) * (width >> 1);

    for (j = 0, k = 0; j &lt; uvCount; j++, k++)
    {
       if (skipLineArea == (width >> 1))
       {
           k += pitchU - (width >> 1);
           skipLineArea = 0;
       }

       pixelsPtr_[position++] = avU[k];
       pixelsPtr_[position++] = avV[k];
       skipLineArea++;
    }

    EDIT #2

    Updating the texture instead of creating new ones

    D3D11_MAPPED_SUBRESOURCE mappedResource;
    d3dContext->Map(tex, 0, D3D11_MAP_WRITE_DISCARD, 0, &amp;mappedResource);

    uint8_t* mappedData = reinterpret_cast(mappedResource.pData);

    for (UINT i = 0; i &lt; height * 1.5; ++i)
    {
       memcpy(mappedData, frameData, rowPitch);
       mappedData += mappedResource.RowPitch;
       frameData += rowPitch;
    }

    d3dContext->Unmap(tex, 0);
  • create Accord.Video.FFMPEG object intial error

    14 mars 2018, par lokcyi

    I create an project with C# Visual studio 2013 and reference Accord.Video.FFMPEG.dll.
    The Configure of projects Target Platforms is set to x86.
    It is ok while compileing.
    But,It would throw run time error when application running.
    The exception is below. showing =>This application cannot be run in 64-bits
    I have no idea what wrong with the error ?


    System.TypeInitializationException   IsTransient=false
     Message='<module>' 的型別初始設定式發生例外狀況。
     Source=VideoMarkerAccord
     TypeName=<module>
     StackTrace:
          於 VideoMarker.Form1.test()
          於 VideoMarker.Form1.ConvertVedio(Int32 iFps, Int32 bitrate, Int32 width, Int32 height, Int32 iSpeed, String sOutputPath, String xml, String sVCode) 於 d:\Projects\AForge\VideoMarkerAccord\VideoMarker\Form1.cs: 行 201
          於 VideoMarker.Form1.btnConvertVedio_Click(Object sender, EventArgs e) 於 d:\Projects\AForge\VideoMarkerAccord\VideoMarker\Form1.cs: 行 181
          於 System.Windows.Forms.Control.OnClick(EventArgs e)
          於 System.Windows.Forms.Button.OnClick(EventArgs e)
          於 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
          於 System.Windows.Forms.Control.WmMouseUp(Message&amp; m, MouseButtons button, Int32 clicks)
          於 System.Windows.Forms.Control.WndProc(Message&amp; m)
          於 System.Windows.Forms.ButtonBase.WndProc(Message&amp; m)
          於 System.Windows.Forms.Button.WndProc(Message&amp; m)
          於 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message&amp; m)
          於 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message&amp; m)
          於 System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
          於 System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG&amp; msg)
          於 System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
          於 System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
          於 System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
          於 System.Windows.Forms.Application.Run(Form mainForm)
          於 VideoMarker.Program.Main() 於 d:\Projects\AForge\VideoMarkerAccord\VideoMarker\Program.cs: 行 18
          於 System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
          於 System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)
          於 System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel)
          於 System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly()
          於 System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
          於 System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext)
          於 System.Activator.CreateInstance(ActivationContext activationContext)
          於 Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
          於 System.Threading.ThreadHelper.ThreadStart_Context(Object state)
          於 System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
          於 System.Threading.ThreadHelper.ThreadStart()
     InnerException: <crtimplementationdetails>.ModuleLoadException
          _HResult=-2146233088
          _message=The C++ module failed to load during process initialization.

          IsTransient=false
          Message=The C++ module failed to load during process initialization.

          Source=msvcm90
          StackTrace:
               於 <crtimplementationdetails>.ThrowModuleLoadException(String errorMessage, Exception innerException)
               於 <crtimplementationdetails>.ThrowModuleLoadException(String , Exception )
               於 <crtimplementationdetails>.LanguageSupport.Initialize(LanguageSupport* )
               於 .cctor()
          InnerException: System.InvalidOperationException
               _HResult=-2146233079
               _message=This application cannot be run in 64-bits.
               IsTransient=false
               Message=This application cannot be run in 64-bits.
               Source=Accord.Video.FFMPEG
               StackTrace:
                    於 _init.{ctor}(_init* )
                    於 ?A0xbe509209.??__E?A0xbe509209@_initializer@@YMXXZ()
                    於 _initterm_m((fnptr)* pfbegin, (fnptr)* pfend)
                    於 <crtimplementationdetails>.LanguageSupport.InitializePerProcess(LanguageSupport* )
                    於 <crtimplementationdetails>.LanguageSupport._Initialize(LanguageSupport* )
                    於 <crtimplementationdetails>.LanguageSupport.Initialize(LanguageSupport* )
               InnerException:
    </crtimplementationdetails></crtimplementationdetails></crtimplementationdetails></crtimplementationdetails></crtimplementationdetails></crtimplementationdetails></crtimplementationdetails></module></module>