Recherche avancée

Médias (1)

Mot : - Tags -/bug

Autres articles (74)

  • Ecrire une actualité

    21 juin 2013, par

    Présentez les changements dans votre MédiaSPIP ou les actualités de vos projets sur votre MédiaSPIP grâce à la rubrique actualités.
    Dans le thème par défaut spipeo de MédiaSPIP, les actualités sont affichées en bas de la page principale sous les éditoriaux.
    Vous pouvez personnaliser le formulaire de création d’une actualité.
    Formulaire de création d’une actualité Dans le cas d’un document de type actualité, les champs proposés par défaut sont : Date de publication ( personnaliser la date de publication ) (...)

  • Le profil des utilisateurs

    12 avril 2011, par

    Chaque utilisateur dispose d’une page de profil lui permettant de modifier ses informations personnelle. Dans le menu de haut de page par défaut, un élément de menu est automatiquement créé à l’initialisation de MediaSPIP, visible uniquement si le visiteur est identifié sur le site.
    L’utilisateur a accès à la modification de profil depuis sa page auteur, un lien dans la navigation "Modifier votre profil" est (...)

  • Configurer la prise en compte des langues

    15 novembre 2010, par

    Accéder à la configuration et ajouter des langues prises en compte
    Afin de configurer la prise en compte de nouvelles langues, il est nécessaire de se rendre dans la partie "Administrer" du site.
    De là, dans le menu de navigation, vous pouvez accéder à une partie "Gestion des langues" permettant d’activer la prise en compte de nouvelles langues.
    Chaque nouvelle langue ajoutée reste désactivable tant qu’aucun objet n’est créé dans cette langue. Dans ce cas, elle devient grisée dans la configuration et (...)

Sur d’autres sites (8542)

  • Fatal Python error : could not acquire lock for at interpreter shutdown, possibly due to daemon threads

    3 octobre 2019, par JavNoor

    Running the following :

    import imageio

    class vidrdf:
       def __init__(self, vidfile):
           self.vid = imageio.get_reader(vidfile,  'ffmpeg')

    vidfile = 'movie.mov'
    rdfobj = vidrdf(vidfile)

    I get :

    Fatal Python error: could not acquire lock for <_io.BufferedReader name=8> at interpreter shutdown, possibly due to daemon threads

    Thread 0x00007fd2dc2a8700 (most recent call first):
     File “/path/miniconda3/envs/flower/lib/python3.7/site-packages/imageio_ffmpeg/_parsing.py", line 61 in run
     File "miniconda3/envs/flower/lib/python3.7/threading.py", line 926 in _bootstrap_inner
     File “/path/miniconda3/envs/flower/lib/python3.7/threading.py", line 890 in _bootstrap

    Current thread 0x00007fd2f0bb9700 (most recent call first):
     File “/path/miniconda3/envs/flower/lib/python3.7/subprocess.py", line 1704 in _communicate
     File “/path/miniconda3/envs/flower/lib/python3.7/subprocess.py", line 939 in communicate
     File “/path/miniconda3/envs/flower/lib/python3.7/site-packages/imageio_ffmpeg/_io.py", line 193 in read_frames
     File “/path/miniconda3/envs/flower/lib/python3.7/site-packages/imageio/plugins/ffmpeg.py", line 342 in _close
     File “/path/miniconda3/envs/flower/lib/python3.7/site-packages/imageio/core/format.py", line 252 in close
     File “/path/miniconda3/envs/flower/lib/python3.7/site-packages/imageio/core/format.py", line 241 in __del__
    Aborted (core dumped)

    It doesn’t happen if I try :

    import imageio

    class vidrdf:
       def __init__(self, vidfile):
           self.vid = imageio.get_reader(vidfile,  'ffmpeg')

    vidfile = 'movie.mov'
    vidrdf(vidfile)

    or

    import imageio

    class vidrdf:
       def __init__(self, vidfile):
           vid = imageio.get_reader(vidfile,  'ffmpeg')

    vidfile = 'movie.mov'
    rdfobj = vidrdf(vidfile)

    So this is clearly an issue with copying the object. I’ve searched about daemon threads, but since I’m using imageio directly I can’t figure out why and how to resolve it. I would appreciate any recommendations.

  • Ffmpeg does not properly convert videos when run as daemon

    20 janvier 2019, par DGoiko

    I’m using ffmpeg to convert and split videos from a Python process. When I run it from console as a normal user everything works as expected, however, if I run it as a daemon it produces the same amount of files but with silence in almost the whole file.

    This is the line I execute from python :

    def convert_to_ffmpeg(file, ffmpeg_folder, chunk_length):
       res = -1
       try:
           file_name = os.path.join(ffmpeg_folder, ntpath.basename(file) + ".flac")
           res = os.system("ffmpeg -i " + file + " -f segment -segment_time "+str(chunk_length)+" " + file_name + " -y  >/dev/null 2>&1")
       except Exception as e:
           raise MyException(code=210005, detalails=file, cause=e)
       if not res == 0:
           raise MyException(code=210004, detalails=str(res) + " - " + file)
       return file_name

    When I run it from a normal console it works as expected : it splits the video in chunks of "self._chunk_length" seconds.

    However, if I run the program using python-daemon with this code :

    if daemon_run:
       pid_file = check_unclean_exit(config['pidfile'], log)

       context = daemon.DaemonContext(
           working_directory=approot,
           umask=0o002,
           pidfile=pid_file,
       )
       context.signal_map = {
           signal.SIGTERM: programa_cleanup,
           signal.SIGHUP: 'terminate',
           # signal.SIGUSR1: reload_program_config,
       }

       with context:
           convert_to_ffmpeg("/foo/testfile.mkv", "/foo/ffmpeg", 40)

    It produces EXACTLY the same chunks, however, most of the content of the chunks is just silence. It splits in the proper point, but doesn’t fill the contents of the audio output properly. Of course, no exception is thrown, as ffmpeg always returns 0

    I did even install a completly fresh Debian 9 into a virtual machine to discard problems with ffmpeg and my old-good computer’s setup.

    Of course this is a simplified example. The real thing is a multithread application which watches a directory for files to convert.

  • hevc : fix race condition in max_ra/seq_decode.

    24 mai 2017, par Ronald S. Bultje
    hevc : fix race condition in max_ra/seq_decode.
    

    These variables are shared between frame threads, but they are updated
    post-setup_finished() if a EOB/EOS slice type occurs. Moving the EOB/EOS
    slices to the next frame thread instance (by parsing them leading into
    the next picture instead of trailing behind the last picture) effectively
    prevents this race condition.

    This fixes tsan failures on hevc-conformance-NoOutPrior_A_Qualcomm_1.

    • [DH] libavcodec/hevc_parser.c
    • [DH] libavcodec/hevcdec.c