Recherche avancée

Médias (1)

Mot : - Tags -/ipad

Autres articles (78)

  • Personnaliser en ajoutant son logo, sa bannière ou son image de fond

    5 septembre 2013, par

    Certains thèmes prennent en compte trois éléments de personnalisation : l’ajout d’un logo ; l’ajout d’une bannière l’ajout d’une image de fond ;

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • (Dés)Activation de fonctionnalités (plugins)

    18 février 2011, par

    Pour gérer l’ajout et la suppression de fonctionnalités supplémentaires (ou plugins), MediaSPIP utilise à partir de la version 0.2 SVP.
    SVP permet l’activation facile de plugins depuis l’espace de configuration de MediaSPIP.
    Pour y accéder, il suffit de se rendre dans l’espace de configuration puis de se rendre sur la page "Gestion des plugins".
    MediaSPIP est fourni par défaut avec l’ensemble des plugins dits "compatibles", ils ont été testés et intégrés afin de fonctionner parfaitement avec chaque (...)

Sur d’autres sites (8887)

  • avfilter/vf_readeia608 : if parity bit check fails, set correct value

    21 décembre 2019, par Paul B Mahol
    avfilter/vf_readeia608 : if parity bit check fails, set correct value
    

    As described in U.S. Federal Register, Volume 56, Number 114, June 13, 1991, pages 27204-27205.

    • [DH] libavfilter/vf_readeia608.c
  • aarch64 : h264pred : Optimize the inner loop of existing 8 bit functions

    12 avril 2021, par Martin Storsjö
    aarch64 : h264pred : Optimize the inner loop of existing 8 bit functions
    

    Move the loop counter decrement further from the branch instruction,
    this hides the latency of the decrement.

    In loops that first load, then store (the horizontal prediction cases),
    do the decrement after the load (where the next instruction would
    stall a bit anyway, waiting for the result of the load).

    In loops that store twice using the same destination register,
    also do the decrement between the two stores (as the second store
    would need to wait for the updated destination register from the
    first instruction).

    In loops that store twice to two different destination registers,
    do the decrement before both stores, to do it as soon before the
    branch as possible.

    This gives minor (1-2 cycle) speedups in most cases (modulo measurement
    noise), but the horizontal prediction functions get a rather notable
    speedup on the Cortex A53.

    Before : Cortex A53 A72 A73
    pred8x8_dc_8_neon : 60.7 46.2 39.2
    pred8x8_dc_128_8_neon : 30.7 18.0 14.0
    pred8x8_horizontal_8_neon : 42.2 29.2 18.5
    pred8x8_left_dc_8_neon : 52.7 36.2 32.2
    pred8x8_mad_cow_dc_0l0_8_neon : 48.2 27.7 25.7
    pred8x8_mad_cow_dc_0lt_8_neon : 52.5 33.2 34.7
    pred8x8_mad_cow_dc_l0t_8_neon : 52.5 31.7 33.2
    pred8x8_mad_cow_dc_l00_8_neon : 43.2 27.0 25.5
    pred8x8_plane_8_neon : 112.2 86.2 88.2
    pred8x8_top_dc_8_neon : 40.7 23.0 21.2
    pred8x8_vertical_8_neon : 27.2 15.5 14.0
    pred16x16_dc_8_neon : 91.0 73.2 70.5
    pred16x16_dc_128_8_neon : 43.0 34.7 30.7
    pred16x16_horizontal_8_neon : 86.0 49.7 44.7
    pred16x16_left_dc_8_neon : 87.0 67.2 67.5
    pred16x16_plane_8_neon : 236.0 175.7 173.0
    pred16x16_top_dc_8_neon : 53.2 39.0 41.7
    pred16x16_vertical_8_neon : 41.7 29.7 31.0

    After :
    pred8x8_dc_8_neon : 59.0 46.7 42.5
    pred8x8_dc_128_8_neon : 28.2 18.0 14.0
    pred8x8_horizontal_8_neon : 34.2 29.2 18.5
    pred8x8_left_dc_8_neon : 51.0 38.2 32.7
    pred8x8_mad_cow_dc_0l0_8_neon : 46.7 28.2 26.2
    pred8x8_mad_cow_dc_0lt_8_neon : 55.2 33.7 37.5
    pred8x8_mad_cow_dc_l0t_8_neon : 51.2 31.7 37.2
    pred8x8_mad_cow_dc_l00_8_neon : 41.7 27.5 26.0
    pred8x8_plane_8_neon : 111.5 86.5 89.5
    pred8x8_top_dc_8_neon : 39.0 23.2 21.0
    pred8x8_vertical_8_neon : 27.2 16.0 14.0
    pred16x16_dc_8_neon : 85.0 70.2 70.5
    pred16x16_dc_128_8_neon : 42.0 30.0 30.7
    pred16x16_horizontal_8_neon : 66.5 49.5 42.5
    pred16x16_left_dc_8_neon : 81.0 66.5 67.5
    pred16x16_plane_8_neon : 235.0 175.7 173.0
    pred16x16_top_dc_8_neon : 52.0 39.0 41.7
    pred16x16_vertical_8_neon : 40.2 33.2 31.0

    Despite this, a number of these functions still are slower than
    what e.g. GCC 7 generates - this shows the relative speedup of the
    neon codepaths over the compiler generated ones :

    Cortex A53 A72 A73
    pred8x8_dc_8_neon : 0.86 0.65 1.04
    pred8x8_dc_128_8_neon : 0.59 0.44 0.62
    pred8x8_horizontal_8_neon : 1.51 0.58 1.30
    pred8x8_left_dc_8_neon : 0.72 0.56 0.89
    pred8x8_mad_cow_dc_0l0_8_neon : 0.93 0.93 1.37
    pred8x8_mad_cow_dc_0lt_8_neon : 1.37 1.41 1.68
    pred8x8_mad_cow_dc_l0t_8_neon : 1.21 1.17 1.32
    pred8x8_mad_cow_dc_l00_8_neon : 1.24 1.19 1.60
    pred8x8_plane_8_neon : 3.36 3.58 3.76
    pred8x8_top_dc_8_neon : 0.97 0.99 1.43
    pred8x8_vertical_8_neon : 0.86 0.78 1.18
    pred16x16_dc_8_neon : 1.20 1.06 1.49
    pred16x16_dc_128_8_neon : 0.83 0.95 0.99
    pred16x16_horizontal_8_neon : 1.78 0.96 1.59
    pred16x16_left_dc_8_neon : 1.06 0.96 1.32
    pred16x16_plane_8_neon : 5.78 6.49 7.19
    pred16x16_top_dc_8_neon : 1.48 1.53 1.94
    pred16x16_vertical_8_neon : 1.39 1.34 1.98

    In particular, on Cortex A72, many of these functions are slower
    than the compiler generated code, while they're more beneficial on
    e.g. the Cortex A73.

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

    • [DH] libavcodec/aarch64/h264pred_neon.S
  • FFMPEG Encode webcam to webm videos

    10 août 2016, par Mohammad Abu Musa

    I am building a screen recorder that captures the screen from Chrome then encode the video to webm extension using FFMPEG.

    The code below handles each frame I get from Chrome, I convert it to unit8_t I also have buffer size and frame size. The thread is working and I am handling all the frames correctly.

    I tired this these two sample codes to encode frames into a video
    https://ffmpeg.org/doxygen/trunk/encoding-example_8c-source.html
    https://www.ffmpeg.org/doxygen/0.6/output-example_8c-source.html

    but I failed,

    I want help to achieve the following

    1- Register only VP8 codec, I do not want to register all codecs because I am not using all of them. (The compilation time takes to long to link all codecs)

    2- Write frames to a context in the function write_frame(const uint8_t * data, uint32_t size, int w, int h,float timestamp)

    3- Encoding the video and store it.

    I think I will make this code open source since many people asked for it using Google Native Client but I do not have enough experience with FFMPEG so I need some help

    void OnGetFrame(int32_t result, pp::VideoFrame frame) {
           if (result != PP_OK) {
               LogToConsole(PP_LOGLEVEL_ERROR, pp::Var("OnGetFrame error"));
           }

           //get the bufffer data
           const uint8_t* data = static_cast<const>(frame.GetDataBuffer());

           pp::Size size;
           frame.GetSize(&amp;size);

           if (!attrib_width_ || !attrib_height_) {
               //initialize width, height and starttime
               attrib_starttime_ = frame.GetTimestamp();
               attrib_width_ = size.width();
               attrib_height_ = size.height();
           }

           //DO SOMETHING WITH THE FRAME
           if (is_recording_) {
               uint32_t buffersize = frame.GetDataBufferSize();
               frames_counter_++;
               write_frame(data, buffersize, size.width(), size.height(),
                       frame.GetTimestamp());
           } else
               return;

           //THEN DISPOSE IT
           video_track_.RecycleFrame(frame);

           //make sure tracks are configured properly
           if (need_config_) {
               ConfigureTrack();
               return;
           } else {
               //AND REQUEST A NEW FRAME
               video_track_.GetFrame(
                       callback_factory_.NewCallbackWithOutput(
                               &amp;EncoderInstance::OnGetFrame));

           }

       }

       void write_frame(const uint8_t * data, uint32_t size, int w, int h,
               float timestamp) {
           PostMessage("LOG:: Writing Frame \n");
       }
    </const>