Recherche avancée

Médias (0)

Mot : - Tags -/médias

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

Autres articles (101)

  • Multilang : améliorer l’interface pour les blocs multilingues

    18 février 2011, par

    Multilang est un plugin supplémentaire qui n’est pas activé par défaut lors de l’initialisation de MediaSPIP.
    Après son activation, une préconfiguration est mise en place automatiquement par MediaSPIP init permettant à la nouvelle fonctionnalité d’être automatiquement opérationnelle. Il n’est donc pas obligatoire de passer par une étape de configuration pour cela.

  • Des sites réalisés avec MediaSPIP

    2 mai 2011, par

    Cette page présente quelques-uns des sites fonctionnant sous MediaSPIP.
    Vous pouvez bien entendu ajouter le votre grâce au formulaire en bas de page.

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

  • Data Privacy Day 2020

    27 janvier 2020, par Matthieu Aubry — Privacy

    It’s January 28th which means it’s Data Privacy Day !

    Today is an important day for the Matomo team as we reflect on our mission and our goals for 2020. This year I wanted to send a video message to all Matomo users, community members and customers. 

    Check it out (full transcript below)

    A video message from Matomo founder, Matthieu Aubry

    Privacy-friendly alternatives

    Video transcript

    Hey everyone,

    Matthieu here, Founder of Matomo.

    Today is one of the most significant days of the year for the Matomo team – it’s Data Privacy Day. And so I wanted to quickly reflect on our mission and the significance of this day. 

    In today’s busy online world where data is king, this day is an important reminder of being vigilant in protecting our personal information online.

    Matomo began 12 years ago as an open-source alternative to Google Analytics – the goal was, and still is to give full control of data back to users. 

    In 2020, we are determined to see through this commitment. We will keep building a powerful and ethical web analytics platform that focuses on privacy protection, data ownership, and provides value to all Matomo users and customers.

    And what’s fantastic is to see the rise of other quality software companies offering privacy-friendly alternatives for web browsers, search engines, file sharing, email providers, all with a similar mission. And with these products now widely available, we encourage you to take back control of all your online activities and begin this new decade with a resolution to stay safe online.

    I’ll provide you with some links below the video to check out these privacy-friendly alternatives. If you have a website and want to gain valuable insights on the visitors while owning your data, join us ! 

    Matomo Analytics On-Premise is and always will be free to download and install on your own servers and on your own terms.

    Also feel free to join our active community or spread the word to your friends and network about the importance of data privacy.

    Thank you all and wishing you a great 2020 !

    For more information on how Matomo protects the privacy of your users, visit : https://matomo.org/privacy/

    Do you have privacy concerns ?

    What better day than today to speak up ! What privacy concerns have you experienced ?

  • Updating SDL yuv Texture

    15 juin 2015, par madprogrammer2015

    I am receiving an H.264 video stream and successfully decoding it with FFMPEG. It can display the first frame of data but then after that the screen never updates. It just appears to become a static image. I am using YUV pixel format, and I am receiving it in that format as well. Also I am using SDL_UpdateYUVTexture().

    Here is my code :

    int main()
    {
       WORD wVersionRequested;
       WSADATA wsaData;
       int wsaerr;

       if (SDL_Init(SDL_INIT_EVERYTHING)) {
           fprintf(stderr, "Could not initialize SDL - %s\n", SDL_GetError());
           exit(1);
       }

       // Using MAKEWORD macro, Winsock version request 2.2
       wVersionRequested = MAKEWORD(2, 2);

       wsaerr = WSAStartup(wVersionRequested, &wsaData);

       if (wsaerr != 0)
       {
           /* Tell the user that we could not find a usable */
           /* WinSock DLL.*/
           printf("The Winsock dll not found!\n");
           return 0;
       }
       else
       {
           printf("The Winsock dll found!\n");
           printf("The status: %s.\n", wsaData.szSystemStatus);
       }

       /* Confirm that the WinSock DLL supports 2.2.*/
       /* Note that if the DLL supports versions greater    */
       /* than 2.2 in addition to 2.2, it will still return */
       /* 2.2 in wVersion since that is the version we      */
       /* requested.                                        */
       if (LOBYTE(wsaData.wVersion) != 2 || HIBYTE(wsaData.wVersion) != 2)
       {
           /* Tell the user that we could not find a usable */
           /* WinSock DLL.*/
           printf("The dll do not support the Winsock version %u.%u!\n", LOBYTE(wsaData.wVersion), HIBYTE(wsaData.wVersion));
           WSACleanup();
           return 0;
       }
       else
       {
           printf("The dll supports the Winsock version %u.%u!\n", LOBYTE(wsaData.wVersion), HIBYTE(wsaData.wVersion));
           printf("The highest version this dll can support: %u.%u\n", LOBYTE(wsaData.wHighVersion), HIBYTE(wsaData.wHighVersion));
       }

       ULONG              localif;
       /*INT Ret;
       HANDLE ThreadHandle;
       DWORD ThreadId;
       WSAEVENT AcceptEvent;
       char               buf[1024];
       int                buflen = 1024, rc, err;*/

       SOCKET s;
       SOCKET ns;
       SOCKADDR_IN        multi, safrom;
       int fromlen;

       int totalSize = 0;

       AVCodec *codec;
       AVCodecContext *codecContext;
       int frame;
       int got_picture;
       AVFrame *picture;
       AVPacket packet;
       SwsContext* convertContext;
       uint16_t i = 1;
       //std::queue<madproto> queue;
       //std::list<madproto> list;
       AVCodecParserContext *parser;
       std::vector buffer;
       //moodycamel::ConcurrentQueue<madproto> protoQueue;

       SDL_Window *window;
       SDL_Renderer *renderer;
       SDL_Texture *bmp;
       SDL_Rect rect;

       file.open("log.txt");

       s = socket(AF_INET, SOCK_STREAM, IPPROTO_RM);

       multi.sin_family = AF_INET;
       multi.sin_port = htons(5150);
       multi.sin_addr.s_addr = inet_addr("234.5.6.7");
       int bindResult = bind(s, (PSOCKADDR)&amp;multi, sizeof(multi));

       if (bindResult &lt; 0)
       {
           std::cout &lt;&lt; "bindResult: " &lt;&lt; WSAGetLastError() &lt;&lt; std::endl;
       }

       listen(s, 10);

       //if ((AcceptEvent = WSACreateEvent()) == WSA_INVALID_EVENT)
       //{
       //  printf("WSACreateEvent() failed with error %d\n", WSAGetLastError());
       //  return 1;
       //}
       //else
       //  printf("WSACreateEvent() is OK!\n");

       //// Create a worker thread to service completed I/O requests
       //if ((ThreadHandle = CreateThread(NULL, 0, WorkerThread, (LPVOID)AcceptEvent, 0, &amp;ThreadId)) == NULL)
       //{
       //  printf("CreateThread() failed with error %d\n", GetLastError());
       //  return 1;
       //}
       //else
       //  printf("CreateThread() should be fine!\n");

       localif = inet_addr("192.168.1.2");
       setsockopt(s, IPPROTO_RM, RM_ADD_RECEIVE_IF, (char *)&amp;localif, sizeof(localif));

       fromlen = sizeof(safrom);
       ns = accept(s, (SOCKADDR *)&amp;safrom, &amp;fromlen);

       closesocket(s);  // Don't need to listen anymore

       std::string received;

       av_register_all();

       int horizontal = 0;
       int vertical = 0;

       GetDesktopResolution(horizontal, vertical);

       codec = avcodec_find_decoder(CODEC_ID_H264);
       if (!codec) {
           std::cout &lt;&lt; "codec not found" &lt;&lt; std::endl;
           std::cin.get();
       }

       codecContext = avcodec_alloc_context3(codec);

       /*if (codec->capabilities &amp; CODEC_CAP_TRUNCATED)
           codecContext->flags |= CODEC_FLAG_TRUNCATED;*/

       //codecContext->flags |= CODEC_FLAG_LOW_DELAY;
       codecContext->flags2 |= CODEC_FLAG2_CHUNKS;

       codecContext->width = horizontal;
       codecContext->height = vertical;
       codecContext->codec_id = CODEC_ID_H264;
       codecContext->codec_type = AVMEDIA_TYPE_VIDEO;
       codecContext->pix_fmt = PIX_FMT_YUV420P;
       codecContext->thread_type = 0;

       if (avcodec_open2(codecContext, codec, NULL) &lt; 0) {
           std::cout &lt;&lt; "could not open codec" &lt;&lt; std::endl;
           std::cin.get();
       }

       convertContext = sws_getContext(
           codecContext->width,
           codecContext->height,
           PIX_FMT_RGB32,
           codecContext->width,
           codecContext->height,
           PIX_FMT_YUV420P,
           SWS_BICUBIC,
           NULL,
           NULL,
           NULL
           );

       parser = av_parser_init(CODEC_ID_H264);

       picture = av_frame_alloc();

       if (ns == INVALID_SOCKET)
       {
           std::cout &lt;&lt; "accept didn't work!" &lt;&lt; std::endl;
           std::cin.get();
       }

       /*if (WSASetEvent(AcceptEvent) == FALSE)
       {
           printf("WSASetEvent() failed with error %d\n", WSAGetLastError());
           return 1;
       }
       else
           printf("WSASetEvent() should be working!\n");*/

       window = SDL_CreateWindow("YUV", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, codecContext->width, codecContext->height, SDL_WINDOW_SHOWN);
       renderer = SDL_CreateRenderer(window, -1, 0);
       bmp = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_IYUV, SDL_TEXTUREACCESS_STREAMING, codecContext->width, codecContext->height);

       //receive = SDL_CreateThread(receiveThread, "ReceiveThread", (void *)NULL);
       bool quit = false;

       rect.x = 0;
       rect.y = 0;
       rect.w = codecContext->width;
       rect.h = codecContext->height;

       while (!quit)
       {
           while (true)
           {
               MadProto proto;
               int result = recvfrom(ns, (char *)&amp;proto, sizeof(MadProto), 0, (struct sockaddr *)&amp;multi, &amp;fromlen);

               if (result &lt; 0)
               {
                   std::cout &lt;&lt; "receive failed! error: " &lt;&lt; WSAGetLastError() &lt;&lt; std::endl;
                   break;
               }
               else
               {
                   std::cout &lt;&lt; "receive successful, received " &lt;&lt; result &lt;&lt; " bytes" &lt;&lt; std::endl;

                   if (ntohs(proto.frame_end) == 1)
                   {
                       uint8_t *outbuffer = NULL;
                       int outBufSize = 0;
                       int rc = av_parser_parse2(parser, codecContext, &amp;outbuffer, &amp;outBufSize, buffer.data(), buffer.size(), 0, 0, 0);

                       if (outBufSize &lt;= 0)
                       {
                           std::cout &lt;&lt; "parsing failed!" &lt;&lt; std::endl;
                           std::cout &lt;&lt; "outBufSize: " &lt;&lt; outBufSize &lt;&lt; std::endl;
                           break;
                       }

                       if (rc)
                       {
                           std::cout &lt;&lt; "rc: " &lt;&lt; rc &lt;&lt; std::endl;
                           std::cout &lt;&lt; "parsing successful!" &lt;&lt; std::endl;
                           //std::cin.get();

                           av_init_packet(&amp;packet);
                           packet.size = outBufSize;
                           packet.data = outbuffer;

                           frame = avcodec_decode_video2(codecContext, picture, &amp;got_picture, &amp;packet);

                           if (frame &lt; 0)
                           {
                               std::cout &lt;&lt; "decoding was unsuccessful!" &lt;&lt; std::endl;
                               break;
                           }

                           if (got_picture)
                           {
                               std::cout &lt;&lt; "decoding was successful!" &lt;&lt; std::endl;
                               std::cout &lt;&lt; "decoded length was: " &lt;&lt; frame &lt;&lt; std::endl;
                               buffer.empty();

                               //std::cin.get();
                               int code = SDL_UpdateYUVTexture(bmp, NULL, picture->data[0], picture->linesize[0],
                                   picture->data[1], picture->linesize[1],
                                   picture->data[2], picture->linesize[2]);

                               if (code &lt; 0)
                               {
                                   std::cout &lt;&lt; "unable to update texture " &lt;&lt; SDL_GetError() &lt;&lt; std::endl;
                                   std::cin.get();
                               }

                               code = SDL_RenderClear(renderer);

                               if (code &lt; 0)
                               {
                                   std::cout &lt;&lt; "renderer clear failed " &lt;&lt; SDL_GetError() &lt;&lt; std::endl;
                                   std::cin.get();
                               }

                               code = SDL_RenderCopy(renderer, bmp, NULL, &amp;rect);

                               if (code &lt; 0)
                               {
                                   std::cout &lt;&lt; "renderer copy failed " &lt;&lt; SDL_GetError() &lt;&lt; std::endl;
                                   std::cin.get();
                               }

                               SDL_RenderPresent(renderer);

                               SDL_Delay(40);
                           }

                           av_free_packet(&amp;packet);
                       }
                   }
                   else
                   {
                       std::copy(proto.payload, proto.payload + ntohs(proto.nal_length), std::back_inserter(buffer));
                       std::cout &lt;&lt; "frame is continuing!" &lt;&lt; std::endl;

                       //queue.push(proto);
                       //list.push_front(proto);
                   }
               }
           }

           SDL_WaitEvent(&amp;event);
           switch (event.type)
           {
           case SDL_QUIT:
               quit = true;
               break;
           }
       }

       std::cout &lt;&lt; "closing everything!" &lt;&lt; std::endl;
       av_frame_free(&amp;picture);
       closesocket(ns);
       fclose(f);
       std::cin.get();
       return 0;
    }
    </madproto></madproto></madproto>
  • Revision 33976 : bugs html

    27 décembre 2009, par cedric@… — Log

    bugs html