Recherche avancée

Médias (1)

Mot : - Tags -/biomaping

Autres articles (76)

  • Organiser par catégorie

    17 mai 2013, par

    Dans MédiaSPIP, une rubrique a 2 noms : catégorie et rubrique.
    Les différents documents stockés dans MédiaSPIP peuvent être rangés dans différentes catégories. On peut créer une catégorie en cliquant sur "publier une catégorie" dans le menu publier en haut à droite ( après authentification ). Une catégorie peut être rangée dans une autre catégorie aussi ce qui fait qu’on peut construire une arborescence de catégories.
    Lors de la publication prochaine d’un document, la nouvelle catégorie créée sera proposée (...)

  • Récupération d’informations sur le site maître à l’installation d’une instance

    26 novembre 2010, par

    Utilité
    Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
    Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...)

  • 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

Sur d’autres sites (3822)

  • avio : Copy URLContext generic options into child URLContexts

    28 février 2015, par Martin Storsjö
    avio : Copy URLContext generic options into child URLContexts
    

    Since all URLContexts have the same AVOptions, such AVOptions
    will be applied on the outermost context only and removed from the
    dict, while they probably make sense on all contexts.

    This makes sure that rw_timeout gets propagated to the innermost
    URLContext (to make sure it gets passed to the tcp protocol, when
    opening a http connection for instance).

    Alternatively, such matching options would be kept in the dict
    and only removed after the ffurl_connect call.

    Signed-off-by : Martin Storsjö <martin@martin.st>

    • [DBH] libavformat/avio.c
    • [DBH] libavformat/aviobuf.c
    • [DBH] libavformat/concat.c
    • [DBH] libavformat/crypto.c
    • [DBH] libavformat/gopher.c
    • [DBH] libavformat/hlsproto.c
    • [DBH] libavformat/http.c
    • [DBH] libavformat/icecast.c
    • [DBH] libavformat/md5proto.c
    • [DBH] libavformat/mmst.c
    • [DBH] libavformat/rtmpcrypt.c
    • [DBH] libavformat/rtmpproto.c
    • [DBH] libavformat/rtpproto.c
    • [DBH] libavformat/rtsp.c
    • [DBH] libavformat/rtspdec.c
    • [DBH] libavformat/sapdec.c
    • [DBH] libavformat/sapenc.c
    • [DBH] libavformat/smoothstreamingenc.c
    • [DBH] libavformat/srtpproto.c
    • [DBH] libavformat/tls.c
    • [DBH] libavformat/url.h
  • hwcontext_vulkan : create all images with concurrent sharing mode

    10 mai 2020, par Lynne
    hwcontext_vulkan : create all images with concurrent sharing mode
    

    As it turns out, we were already assuming and treating all images as if they had
    concurrent access mode. This just changes the flag to CONCURRENT, which has less
    restrictions than EXCLUSIVE, and fixed validation messages on machines with
    multiple queues.
    The validation layer didn't pick this up because the machine I was testing on
    had only a single queue.

    • [DH] libavutil/hwcontext_vulkan.c
    • [DH] libavutil/hwcontext_vulkan.h
  • UDP Networking - SO_REUSEADDR and select failing on Windows

    22 janvier 2019, par Luca

    I’m trying to set up multiple instances of FFMpeg for receiving a MPEG 2 TS stream. Both application setup the SO_REUSEADDR socket option.

    The UDP socket bind is successful, but only the first FFMpeg instance is actually receiving. As soon as the receiving instance is closed, the second instance starts receiving.

    I’ve set up a unit test demonstrating the actual FFMpeg behavior, extracting the actual system calls executed. The test is failing because the select call does not detect an I/O event on the second socket.

    What prevents the second socket to receive the datagram ?

    Note : this is a Google Test test. Just replace the TEST macro with a main function to get it working.

    #include
    #include

    #pragma comment(lib, "ws2_32.lib")

    typedef unsigned long nfds_t;

    int FFMPEGSocket_CreateSocketTx()
    {
       return socket(AF_INET, SOCK_DGRAM, 0);
    }

    int FFMPEGSocket_CreateSocket()
    {
       // Create socket
       int fd = socket(AF_INET, SOCK_DGRAM, 0);

       EXPECT_GT(fd, 0);

       // Set SO_REUSEADDR
       int reuse_socket = 1;

       EXPECT_EQ(setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const char*)&amp;reuse_socket, sizeof(reuse_socket)), 0);

       // Bind
       struct sockaddr_in udpService;

       udpService.sin_family = AF_INET;
       udpService.sin_addr.s_addr = htonl(INADDR_ANY);
       udpService.sin_port = htons(4609);

       EXPECT_EQ(::bind(fd, (SOCKADDR*)&amp;udpService, sizeof(udpService)), 0);

       // Set non blocking IO
       u_long param = 1;

       EXPECT_EQ(ioctlsocket(fd, FIONBIO, &amp;param), 0);

       return fd;
    }

    void FFMPEGSocket_CloseSocket(int fd)
    {
       closesocket(fd);
    }

    int FFMPEGSocket_Pool(struct pollfd *fds, nfds_t numfds, int timeout)
    {
       fd_set read_set;
       fd_set write_set;
       fd_set exception_set;
       nfds_t i;
       int n = 0;
       int rc;

       FD_ZERO(&amp;read_set);
       FD_ZERO(&amp;write_set);
       FD_ZERO(&amp;exception_set);

       for (int i = 0; i &lt; numfds; i++) {
           if (fds[i].events &amp; POLLIN)
               FD_SET(fds[i].fd, &amp;read_set);
           if (fds[i].events &amp; POLLOUT)
               FD_SET(fds[i].fd, &amp;write_set);
           if (fds[i].events &amp; POLLERR)
               FD_SET(fds[i].fd, &amp;exception_set);

           if (fds[i].fd >= n)
               n = fds[i].fd + 1;
       }

       timeval tv;
       tv.tv_sec = 100 / 1000;
       tv.tv_usec = 1000 * (100 % 1000);
       rc = select(n, &amp;read_set, &amp;write_set, &amp;exception_set, &amp;tv);

       for (int i = 0; i &lt; numfds; i++) {
           fds[i].revents = 0;

           if (FD_ISSET(fds[i].fd, &amp;read_set))
               fds[i].revents |= POLLIN;
           if (FD_ISSET(fds[i].fd, &amp;write_set))
               fds[i].revents |= POLLOUT;
           if (FD_ISSET(fds[i].fd, &amp;exception_set))
               fds[i].revents |= POLLERR;
       }

       return rc;
    }

    TEST(FFMPEGSocket, PosixReuseAddr)
    {
       WSADATA wsaData;

       // Initialize network layer
       std::memset(&amp;wsaData, 0, sizeof(wsaData));
       WSAStartup(MAKEWORD(2, 2), &amp;wsaData);

       // Create two receiving sockets
       int fd1 = FFMPEGSocket_CreateSocket();
       int fd2 = FFMPEGSocket_CreateSocket();
       int fdtx = FFMPEGSocket_CreateSocketTx();

       // Read loop
       int ev = POLLIN;
       struct pollfd p1 = { fd1, ev, 0 };
       struct pollfd p2 = { fd2, ev, 0 };

       bool p1event = false, p2event = false;
       char datagram[32] = { 0 };

       for (int i = 0; (i &lt; 10) &amp;&amp; (!p1event || !p2event); i++) {
           {   // Transmit a single datagram
               struct sockaddr_in udpService;

               udpService.sin_family = AF_INET;
               udpService.sin_addr.s_addr = htonl(0x7F000001);
               udpService.sin_port = htons(4609);

               sendto(fdtx, datagram, 32, 0, (const sockaddr*)&amp;udpService, sizeof(udpService));
           }

           // Receive
           struct pollfd fds[2] = { p1, p2 };

           if (FFMPEGSocket_Pool(fds, 2, 1000) &lt; 0)
               break;      // Fail

           if (fds[0].revents &amp; POLLIN)
               p1event = true;
           if (fds[1].revents &amp; POLLIN)
               p2event = true;
       }

       EXPECT_TRUE(p1event);
       EXPECT_TRUE(p2event);

       FFMPEGSocket_CloseSocket(fd1);
       FFMPEGSocket_CloseSocket(fd2);

       // Shutdown network layer
       WSACleanup();
    }