Recherche avancée

Médias (0)

Mot : - Tags -/protocoles

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

Autres articles (87)

  • Contribute to translation

    13 avril 2011

    You can help us to improve the language used in the software interface to make MediaSPIP more accessible and user-friendly. You can also translate the interface into any language that allows it to spread to new linguistic communities.
    To do this, we use the translation interface of SPIP where the all the language modules of MediaSPIP are available. Just subscribe to the mailing list and request further informantion on translation.
    MediaSPIP is currently available in French and English (...)

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

  • Gestion générale des documents

    13 mai 2011, par

    MédiaSPIP ne modifie jamais le document original mis en ligne.
    Pour chaque document mis en ligne il effectue deux opérations successives : la création d’une version supplémentaire qui peut être facilement consultée en ligne tout en laissant l’original téléchargeable dans le cas où le document original ne peut être lu dans un navigateur Internet ; la récupération des métadonnées du document original pour illustrer textuellement le fichier ;
    Les tableaux ci-dessous expliquent ce que peut faire MédiaSPIP (...)

Sur d’autres sites (7236)

  • How do I play back video on Android with custom playback speed ?

    13 novembre 2015, par guidow

    I want to play back a video in Android, rendering it to a SurfaceTexture or something else that is usable as an OpenGL ES texture, but I need very precise control over the playback speed of the video to synchronize it to a stream of external events. These events will happen at a roughly predictable speed, but the exact speed will depend on many small mechanical details, influenced by many small factors, including the weather (and possibly even the phase of the moon...).

    The android.media.MediaPlayer class provided by android allows rendering to a SurfaceTexture (and the 360Videos app from the Oculus Mobile SDK successfully uses that feature), but unfortunately does not seem to allow altering the playback speed, at least not as far as I could tell from the documentation here.

    I have tried pausing and resuming the playback using pause() and start() respectively, to influence the playback speed, but that leads to extremely choppy and slow playback. My idea here was to make the video have a higher framerate than would ever be needed, and to then manually retard every frame until it actually needs to be shown. From the messages in the log, it looks to me like the MediaPlayer class will release various needed resources on pause and rerequest them on resume, which obviously kills performance if you do that once per frame.

    Another option I am looking at is ffmpeg. This one seems like it will do what i want, it doesn’t do any timings itself, it just decodes frames whenever I tell it to to a buffer, leaving me to use it however I want, whenever I want. The obvious drawback is that ffmpeg, at least on android, doesn’t do hardware decoding and probably won’t be able to decode 4K media in realtime.

    Yet another thing I was looking at was OpenMAX AL. Unfortunately, OpenMax AL is pretty hard to get into. I haven’t found any good beginner’s documentation yet, only some old, maybe outdated, READMEs as well as the interface specification from Khronos. The latter is a very long and cumbersome read, though, and I couldn’t yet even figure out if OpenMAX AL will even allow me to do my own timings...

  • swresample/resample : speed up upsampling by precomputing sines

    9 novembre 2015, par Ganesh Ajjanagadde
    swresample/resample : speed up upsampling by precomputing sines
    

    When upsampling, factor is set to 1 and sines need to be evaluated only
    once for each phase, and the complexity should not depend on the number
    of filter taps. This does the desired precomputation, yielding
    significant speedups. Hard guarantees on the gain are not possible, but gains
    themselves are obvious and are illustrated below.

    Sample benchmark (x86-64, Haswell, GNU/Linux)
    test : fate-swr-resample-dblp-2626-44100
    old :
    29161085 decicycles in build_filter (loop 1000), 256 runs, 0 skips
    28821467 decicycles in build_filter (loop 1000), 512 runs, 0 skips
    28668201 decicycles in build_filter (loop 1000), 1000 runs, 24 skips

    new :
    14351936 decicycles in build_filter (loop 1000), 256 runs, 0 skips
    14306652 decicycles in build_filter (loop 1000), 512 runs, 0 skips
    14299923 decicycles in build_filter (loop 1000), 1000 runs, 24 skips

    Note that this does not statically allocate the sin lookup table. This
    may be done for the default 1024 phases, yielding a 512*8 = 4kB array
    which should be small enough.
    This should yield a small improvement. Nevertheless, this is separate from
    this patch, is more ambiguous due to the binary increase, and requires a
    lut to be generated offline.

    Reviewed-by : Michael Niedermayer <michael@niedermayer.cc>
    Signed-off-by : Ganesh Ajjanagadde <gajjanagadde@gmail.com>

    • [DH] libswresample/resample.c
  • swresample/resample : speed up Blackman Nuttall filter

    9 novembre 2015, par Ganesh Ajjanagadde
    swresample/resample : speed up Blackman Nuttall filter
    

    This may be a slightly surprising optimization, but is actually based on
    an understanding of how math libraries compute trigonometric functions.
    Explanation is given here so that future development uses libm more effectively
    across the codebase.

    All libm’s essentially compute transcendental functions via some kind of
    polynomial approximation, be it Taylor-Maclaurin or Chebyshev.
    Correction terms are added via polynomial correction factors when needed
    to squeeze out the last bits of accuracy. Lookup tables are also
    inserted strategically.

    In the case of trigonometric functions, periodicity is exploited via
    first doing a range reduction to an interval around zero, and then using
    some polynomial approximation.

    This range reduction is the most natural way of doing things - else one
    would need polynomials for ranges in different periods which makes no
    sense whatsoever.

    To avoid the need for the range reduction, it is helpful to feed in
    arguments as close to the origin as possible for the trigonometric
    functions. In fact, this also makes sense from an accuracy point of view :
    IEEE floating point has far more resolution for small numbers than big ones.

    This patch does this for the Blackman-Nuttall filter, and yields a
    non-negligible speedup.

    Sample benchmark (x86-64, Haswell, GNU/Linux)
    test : fate-swr-resample-dblp-2626-44100
    old :
    18893514 decicycles in build_filter (loop 1000), 256 runs, 0 skips
    18599863 decicycles in build_filter (loop 1000), 512 runs, 0 skips
    18445574 decicycles in build_filter (loop 1000), 1000 runs, 24 skips

    new :
    16290697 decicycles in build_filter (loop 1000), 256 runs, 0 skips
    16267172 decicycles in build_filter (loop 1000), 512 runs, 0 skips
    16251105 decicycles in build_filter (loop 1000), 1000 runs, 24 skips

    Reviewed-by : Michael Niedermayer <michael@niedermayer.cc>
    Signed-off-by : Ganesh Ajjanagadde <gajjanagadde@gmail.com>

    • [DH] libswresample/resample.c