Recherche avancée

Médias (91)

Autres articles (58)

  • Les statuts des instances de mutualisation

    13 mars 2010, par

    Pour des raisons de compatibilité générale du plugin de gestion de mutualisations avec les fonctions originales de SPIP, les statuts des instances sont les mêmes que pour tout autre objets (articles...), seuls leurs noms dans l’interface change quelque peu.
    Les différents statuts possibles sont : prepa (demandé) qui correspond à une instance demandée par un utilisateur. Si le site a déjà été créé par le passé, il est passé en mode désactivé. publie (validé) qui correspond à une instance validée par un (...)

  • Problèmes fréquents

    10 mars 2010, par

    PHP et safe_mode activé
    Une des principales sources de problèmes relève de la configuration de PHP et notamment de l’activation du safe_mode
    La solution consiterait à soit désactiver le safe_mode soit placer le script dans un répertoire accessible par apache pour le site

  • ANNEXE : Les plugins utilisés spécifiquement pour la ferme

    5 mars 2010, par

    Le site central/maître de la ferme a besoin d’utiliser plusieurs plugins supplémentaires vis à vis des canaux pour son bon fonctionnement. le plugin Gestion de la mutualisation ; le plugin inscription3 pour gérer les inscriptions et les demandes de création d’instance de mutualisation dès l’inscription des utilisateurs ; le plugin verifier qui fournit une API de vérification des champs (utilisé par inscription3) ; le plugin champs extras v2 nécessité par inscription3 (...)

Sur d’autres sites (9407)

  • h264 : revert 1189af429211ac650aac730368a6cf5b23756605.

    27 mars 2017, par Ronald S. Bultje
    h264 : revert 1189af429211ac650aac730368a6cf5b23756605.
    

    The patch introduces race conditions.

    • [DH] libavcodec/h264_slice.c
    • [DH] libavcodec/h264dec.c
    • [DH] libavcodec/h264dec.h
  • pthread_frame : don’t sync items between threads for intra-only codecs.

    28 mars 2017, par Ronald S. Bultje
    pthread_frame : don’t sync items between threads for intra-only codecs.
    

    Intra-only codecs should either be able to read these items from the
    bitstream, or they should be set upon codec initialization. In both
    cases, syncing these items at runtime is unnecessary.

    In practice, this fixes race conditions for decoders that read these
    values from the bitstream.

    • [DH] libavcodec/pthread_frame.c
  • How do I run two indefinite loops simultaneously, while also changing variables within them ?

    11 octobre 2016, par Nyalmo

    I’m trying to write a script in Python that records a stream of an IP camera in realtime. It only keeps about a minute worth of recording, constantly overwriting the same files. Whenever an external sensor is triggered I want a variable to be set (event variable) which merges the recording with an extra 30 seconds it records after the sensor is triggered. The combined 90 seconds are then saved as the date and time for later review.

    The idea was to have 2 indefinite while loops, the first containing both the real time recording and the event. The second one would constantly read input and activate the ’event’ function. Initially I though I could just have a software version of the hardware interrupt I’ve learned before, though after some research it seems that’s only for exceptions. I’m currently using TkInter, simulating the external input with keypresses.

    When I tried it out the input wouldn’t cause the event to be triggered. So my question is : How do I run the two indefinite loops simultaneously, while also having the input loop change variables in the main loop so that the ’event’ can actually occur in real-time ?

    Since I’m using ffmpeg to record the stream, once the command is called to record it can’t be stopped, but I want the event variable to be changed as soon as possible.

    I’ve looked at several similar questions regarding multiple loops, and have tried multiprocessing(though this only seems to be used for performance, which is not that important here), making two separate files(not sure how to have them work together) and lastly, threads. None of these seem to work in my situation as I can’t get them running in the way that I want.

    Here is my latest attempt, using threads :

    i = 0
    event = False
    aboutToQuit = False
    someVar = 'Event Deactivated'
    lastVar = False

    def process(frame):
       print "Thread"
       i = 0    
       frame = frame
       frame.bind("<space>", switch)
       frame.bind("<escape>", exit)
       frame.pack()
       frame.focus_set()

    def switch(eventl):
       print(['Activating','Deactivating'][event])
       event = eventl
       event = not(event)

    def exit(eventl):
       print'Exiting Application'
       global aboutToQuit
       #aboutToQuit = True
       root.destroy()

    print("the imported file is", tkinter.__file__)
    def GetTime(): #function opens a script which saves the final merged file as date and time.
       time = datetime.datetime.now()
       subprocess.call("./GetTime.sh", shell = True)
       return (time)

    def main(root):
       global event, aboutToQuit, someVar,lastVar      
       while (not aboutToQuit):
           root.update() # always process new events

           if event == False:
               someVar = 'Event Deactivated'
               subprocess.call(Last30S_Command) #records last 30 seconds overwriting itself.
               print "Merge now"
               subprocess.call(Merge_Command) #merges last 30 seconds with the old 30 seconds      
               print "Shift now"
               subprocess.call(Shift_Command) #copies the last30s recording to the old 30 seconds, overwriting it.
               if lastVar == True: #Triggers only when lastVar state changes
                   print someVar
                   lastVar = False
               time.sleep(.1)

           if event == True:
                someVar = 'Event Activated'
               print"Record Event"
               subprocess.call(EventRecord_Command) #records 30 seconds after event is triggered.
               print"EventMerge Now"
               subprocess.call(EventMerge_Command) # merges the 1 minute recording of Merge_Command with 30 seconds of EventRecord_Command
               if lastVar == False:
                   print someVar
                   lastVar = True
               time.sleep(.1)
               GetTime() #Saves 90 seconds of EventMerge_Command as date and time.
               subprocess.call(EventShift_Command) #Copies EventRecord file to the old 30 second recording, overwriting it

           if aboutToQuit:
              break


    if __name__ == "__main__":
       root = Tk()
       frame = Frame(root, width=100, height=100)  
    #   maintthread = threading.Thread(target=main(root))
    #   inputthread = threading.Thread(target=process(frame))
    #   inputthread.daemon = True
    #   inputthread.start()
    #   maintthread.daemon = True
    #   maintthread.start()
    #   maintthread.join()
       Process(target=process(frame)).start()
       Process(target=main(root)).start()
       print "MainLoop"
    </escape></space>