Recherche avancée

Médias (2)

Mot : - Tags -/kml

Autres articles (82)

  • Amélioration de la version de base

    13 septembre 2013

    Jolie sélection multiple
    Le plugin Chosen permet d’améliorer l’ergonomie des champs de sélection multiple. Voir les deux images suivantes pour comparer.
    Il suffit pour cela d’activer le plugin Chosen (Configuration générale du site > Gestion des plugins), puis de configurer le plugin (Les squelettes > Chosen) en activant l’utilisation de Chosen dans le site public et en spécifiant les éléments de formulaires à améliorer, par exemple select[multiple] pour les listes à sélection multiple (...)

  • Menus personnalisés

    14 novembre 2010, par

    MediaSPIP utilise le plugin Menus pour gérer plusieurs menus configurables pour la navigation.
    Cela permet de laisser aux administrateurs de canaux la possibilité de configurer finement ces menus.
    Menus créés à l’initialisation du site
    Par défaut trois menus sont créés automatiquement à l’initialisation du site : Le menu principal ; Identifiant : barrenav ; Ce menu s’insère en général en haut de la page après le bloc d’entête, son identifiant le rend compatible avec les squelettes basés sur Zpip ; (...)

  • Gestion de la ferme

    2 mars 2010, par

    La ferme est gérée dans son ensemble par des "super admins".
    Certains réglages peuvent être fais afin de réguler les besoins des différents canaux.
    Dans un premier temps il utilise le plugin "Gestion de mutualisation"

Sur d’autres sites (7997)

  • Crash at sws_scale when converting AVFrame to RGB32

    1er mars 2017, par WLGfx

    Crashing at sws_scale when converting an AVPicture

    At first I was using sws_scale to actually scale the frames up but the cpu overhead was too high, so I decided to just convert the frames and adjust the QImage size instead. Before it was working and I was getting the video displaying when rendered, but now it crashes at sws_scale.

    This is written in Qt for Android and using FFMpeg 3.1.4.

    Also, is there another way around not using the deprecated functions ?

    Does anybody know why I am getting the crash at sws_scale ?

    The class for the VideoFrameCopy

    class VideoFrameCopy {
    public:
       VideoFrameCopy() {}
       VideoFrameCopy(AVFrame *frame) { copyAVFrame(frame); }
       ~VideoFrameCopy();
       void copyAVFrame(AVFrame *frame); // copy essential data from AVFrame

       AVPicture picture;

       int64_t pkt_pts = -1; // show it hasn't been initialised
       int64_t best_pts;
       int interlaced_frame;
       int width = 0, height = 0;
       int format = -1;
    };

    The code that converts the frame to RGBA8888 QImage

    if (frame) {

       if (image->width() != vid_ctx->width || image->height() != vid_ctx->height) {
           QSize old_size(image->size());

           // block until renderer has finished with it

           while (parent->buffer_ready) {
               QThread::yieldCurrentThread();
           }

           delete image;

           image = new QImage(vid_ctx->width, vid_ctx->height, QImage::Format_RGBA8888);
           parent->image = image;

           if (scale_context) sws_freeContext(scale_context);
           scale_context = nullptr;

           qDebug() << "Video image size" << image->size() << "old" << old_size;
       }

       // the src width and height may need to change to use the context info instead

       if (!scale_context) { // create the scale context
           int src_width = vid_ctx->width;
           int src_height = vid_ctx->height;
           AVPixelFormat src_format = vid_ctx->pix_fmt;//(AVPixelFormat)frame->format;

           int dst_width = vid_ctx->width;
           int dst_height = vid_ctx->height;
           AVPixelFormat dst_format = AV_PIX_FMT_RGBA;

           scale_context = sws_getContext(src_width, src_height, src_format,
                                          dst_width, dst_height, dst_format,
                                          SWS_FAST_BILINEAR, NULL, NULL, NULL);

           av_image_fill_linesizes(scale_linesizes, dst_format, vid_ctx->width);

           qDebug() << "Created scale context" << scale_context;
       }

       if (scale_context) { // valid
           scale_data[0] = image->bits();

           sws_scale(scale_context,
                     frame->picture.data, // deprecated
                     frame->picture.linesize, // deprecated
                     0, image->height(),
                     scale_data,
                     scale_linesizes);

           qDebug() << "Frame converted";
       }

       //av_frame_unref(frame);

       //vid_frames_mutex.lock();
       //if (quit) av_frame_free(&frame);
       if (quit) delete frame;
       else vid_frames_unused.push_back(frame);
       //vid_frames_mutex.unlock();

       //qDebug() << "got frame" << clock_current_frame_last << "clock" << clock_current_time;
    }

    vid_frames_mutex.unlock();

    return frame != nullptr;

    Functions from the VideoFrameCopy class

    void VideoFrameCopy::copyAVFrame(AVFrame *frame) {
       if (pkt_pts != -1 &&
               (width != frame->width ||
                height != frame->height ||
                format != frame->format)
               ) { // picture changed?
           avpicture_free(&picture); // deprecated
           pkt_pts = -1;
       }

       width = frame->width;
       height = frame->height;
       format = frame->format;
       interlaced_frame = frame->interlaced_frame;

       if (pkt_pts == -1) { // alloc picture
           if (avpicture_alloc(&picture, (AVPixelFormat)format, width, height) < 0) return; // deprecated
           int size = avpicture_get_size((AVPixelFormat)format, width, height); // deprecated
           uint8_t *picture_data = (uint8_t*)av_malloc(size);
           avpicture_fill(&picture, picture_data, (AVPixelFormat)format, width, height); // deprecated

           qDebug() << "New frame" << width << "x" << height << format;
       }

       pkt_pts = frame->pkt_pts;
       best_pts = av_frame_get_best_effort_timestamp(frame);

       av_picture_copy(&picture, (AVPicture*)frame, (AVPixelFormat)format, width, height); // deprecated

       qDebug() << "picture" << picture.linesize[0] << picture.linesize[1]; // deprecated
    }

    VideoFrameCopy::~VideoFrameCopy() {
       if (pkt_pts != -1) {
           /*if (picture.data) {
               av_free(picture.data);
               picture.data = nullptr;
           }*/
           avpicture_free(&picture); // deprecated
       }
    }

    Sample output from the logcat

    D/libcwengage2.so(20157): ../cwengage2/ffmpegfile.cpp:659 (void VideoFrameCopy::copyAVFrame(AVFrame*)): New frame 640 x 358 0
    D/libcwengage2.so(20157): ../cwengage2/ffmpegfile.cpp:667 (void VideoFrameCopy::copyAVFrame(AVFrame*)): picture 640 320
    D/libcwengage2.so(20157): ../cwengage2/ffmpegfile.cpp:586 (bool FFMpegFile::getVideoFrame()): Video image size QSize(640, 358) old QSize(500, 320)
    D/libcwengage2.so(20157): ../cwengage2/ffmpegfile.cpp:659 (void VideoFrameCopy::copyAVFrame(AVFrame*)): New frame 640 x 358 0
    D/libcwengage2.so(20157): ../cwengage2/ffmpegfile.cpp:606 (bool FFMpegFile::getVideoFrame()): Created scale context 0x4bb49060
    D/libcwengage2.so(20157): ../cwengage2/ffmpegfile.cpp:667 (void VideoFrameCopy::copyAVFrame(AVFrame*)): picture 640 320
    F/libc    (20157): Fatal signal 7 (SIGBUS) at 0x4e065008 (code=1), thread 20335 (QThread)
    I/DEBUG   (  116): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
    I/DEBUG   (  116): Build fingerprint: 'ODROID/odroidc/odroidc:4.4.2/KOT49H/odroidc-eng-s805_4.4.2_master-410:eng/test-keys'
    I/DEBUG   (  116): Revision: '10'
    I/DEBUG   (  116): pid: 20157, tid: 20335, name: QThread  >>> org.qtproject.example <<<
    I/DEBUG   (  116): signal 7 (SIGBUS), code 1 (BUS_ADRALN), fault addr 4e065008
    I/DEBUG   (  116):     r0 00000280  r1 00000166  r2 4e065008  r3 00000a00
    I/DEBUG   (  116):     r4 4d9bd030  r5 00000280  r6 4d9f4f28  r7 00000140
    I/DEBUG   (  116):     r8 00000280  r9 00000010  sl 4da02ee8  fp 4e065a08
    I/DEBUG   (  116):     ip 4d9bd2a0  sp 4c1948f8  lr 4a8f1d2c  pc 4a8f4dc0  cpsr 280f0010
    I/DEBUG   (  116):     d0  004a004a004a004a  d1  0081ffccffe70066
    I/DEBUG   (  116):     d2  004a004a004a004a  d3  0000000000000000
    I/DEBUG   (  116):     d4  0000000000000000  d5  0000000000000000
    I/DEBUG   (  116):     d6  0000000001010101  d7  0000000001010101
    I/DEBUG   (  116):     d8  0000000001010101  d9  ffffffffffffffff
    I/DEBUG   (  116):     d10 0000000000000000  d11 0000000000000000
    I/DEBUG   (  116):     d12 0000000000000000  d13 ffffffffffffffff
    I/DEBUG   (  116):     d14 004a004a004a004a  d15 004a004a004a004a
    I/DEBUG   (  116):     d16 0000000000000000  d17 0000000000000000
    I/DEBUG   (  116):     d18 0000000000000000  d19 0000000000000000
    I/DEBUG   (  116):     d20 0000000000000000  d21 0000000000000000
    I/DEBUG   (  116):     d22 0000000000000000  d23 0000000000000000
    I/DEBUG   (  116):     d24 0000000000000000  d25 0000000000000000
    I/DEBUG   (  116):     d26 0000000000000000  d27 0000000000000000
    I/DEBUG   (  116):     d28 004a004a004a004a  d29 0000000000000000
    I/DEBUG   (  116):     d30 0000000000000000  d31 0000000000000000
    I/DEBUG   (  116):     scr 20000010
    I/DEBUG   (  116):
    I/DEBUG   (  116): backtrace:
    I/DEBUG   (  116):     #00  pc 0000edc0  /data/app-lib/org.qtproject.example-1/libswscale-4.so
    I/DEBUG   (  116):     #01  pc 0000bd28  /data/app-lib/org.qtproject.example-1/libswscale-4.so
    I/DEBUG   (  116):
    I/DEBUG   (  116): stack:
    I/DEBUG   (  116):          4c1948b8  0000004b  
    I/DEBUG   (  116):          4c1948bc  4bb2d270  
    I/DEBUG   (  116):          4c1948c0  0000013c  
    I/DEBUG   (  116):          4c1948c4  4011edbc  /system/lib/libc.so (dlmalloc+480)
    I/DEBUG   (  116):          4c1948c8  4c19494a  [stack:20335]
    I/DEBUG   (  116):          4c1948cc  4015e384  
    I/DEBUG   (  116):          4c1948d0  00000010  
    I/DEBUG   (  116):          4c1948d4  489033ef  /data/app-lib/org.qtproject.example-1/libQt5Core.so
    I/DEBUG   (  116):          4c1948d8  00001000  
    I/DEBUG   (  116):          4c1948dc  00000000  
    I/DEBUG   (  116):          4c1948e0  4bb2d470  
    I/DEBUG   (  116):          4c1948e4  4bb2d478  
    I/DEBUG   (  116):          4c1948e8  4bb2d478  
    I/DEBUG   (  116):          4c1948ec  4bb2d470  
    I/DEBUG   (  116):          4c1948f0  00000002  
    I/DEBUG   (  116):          4c1948f4  4012109c  /system/lib/libc.so (dlfree+996)
    I/DEBUG   (  116):     #00  4c1948f8  11111111  
    I/DEBUG   (  116):          ........  ........
    I/DEBUG   (  116):     #01  4c1948f8  11111111  
    I/DEBUG   (  116):          4c1948fc  3fa11111  
    I/DEBUG   (  116):          4c194900  40000000  
    I/DEBUG   (  116):          4c194904  40640d79  /system/lib/libskia.so
    I/DEBUG   (  116):          4c194908  00000000  
    I/DEBUG   (  116):          4c19490c  3ff00000  
    I/DEBUG   (  116):          4c194910  00000000  
    I/DEBUG   (  116):          4c194914  3ff00000  
    I/DEBUG   (  116):          4c194918  00000000  
    I/DEBUG   (  116):          4c19491c  3ff00000  
    I/DEBUG   (  116):          4c194920  00000000  
    I/DEBUG   (  116):          4c194924  3f800000  
    I/DEBUG   (  116):          4c194928  00000000  
    I/DEBUG   (  116):          4c19492c  00000000  
    I/DEBUG   (  116):          4c194930  00000000  
    I/DEBUG   (  116):          4c194934  00000000  
    I/DEBUG   (  116):
    I/DEBUG   (  116): memory near r2:
    I/DEBUG   (  116):     4e064fe8 00000000 00000000 00000000 00000007  

    ...

    I/DEBUG   (  116): memory map around fault addr 4e065008:
    I/DEBUG   (  116):     4dd15000-4df15000 rw- /dev/mali
    I/DEBUG   (  116):     4df15000-4e199000 rw-
    I/DEBUG   (  116):     4e676000-4e876000 rw- /dev/mali
    I/BootReceiver(  479): Copying /data/tombstones/tombstone_07 to DropBox (SYSTEM_TOMBSTONE)
    W/ActivityManager(  479):   Force finishing activity org.qtproject.example/org.qtproject.qt5.android.bindings.QtActivity
    I/WindowState(  479): WIN DEATH: Window{64cf3a40 u0 org.qtproject.example/org.qtproject.qt5.android.bindings.QtActivity}
    I/WindowState(  479): WIN DEATH: Window{64d0f6e0 u0 SurfaceView}
    I/UsageStats(  479): No package stats for pkg:org.qtproject.example
    I/art     (  118): Process 20157 terminated by signal (7)
    W/ActivityManager(  479): Exception thrown during pause
    W/ActivityManager(  479): android.os.DeadObjectException
    W/ActivityManager(  479):   at android.os.BinderProxy.transact(Native Method)
    W/ActivityManager(  479):   at android.app.ApplicationThreadProxy.schedulePauseActivity(ApplicationThreadNative.java:660)
    W/ActivityManager(  479):   at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:778)
    W/ActivityManager(  479):   at com.android.server.am.ActivityStack.finishActivityLocked(ActivityStack.java:2614)
    W/ActivityManager(  479):   at com.android.server.am.ActivityStack.finishTopRunningActivityLocked(ActivityStack.java:2488)
    W/ActivityManager(  479):   at com.android.server.am.ActivityStackSupervisor.finishTopRunningActivityLocked(ActivityStackSupervisor.java:2196)
    W/ActivityManager(  479):   at com.android.server.am.ActivityManagerService.handleAppCrashLocked(ActivityManagerService.java:9705)
    W/ActivityManager(  479):   at com.android.server.am.ActivityManagerService.makeAppCrashingLocked(ActivityManagerService.java:9598)
    W/ActivityManager(  479):   at com.android.server.am.ActivityManagerService.crashApplication(ActivityManagerService.java:10243)
    W/ActivityManager(  479):   at com.android.server.am.ActivityManagerService.handleApplicationCrashInner(ActivityManagerService.java:9794)
    W/ActivityManager(  479):   at com.android.server.am.NativeCrashListener$NativeCrashReporter.run(NativeCrashListener.java:86)
    D/ActivityManager(  479): resumeClassName is com.android.launcher2.Launcher
    D/ActivityManager(  479): resumePackageName is com.android.launcher
    I/ActivityManager(  479): Process org.qtproject.example (pid 20157) has died.
    D/ActivityManager(  479): send app_CRASH broadcast, packageName:org.qtproject.example

    Much appreciated if anyone can help...

  • Generate fmp4 chunks for HLS with ffmpeg

    9 mars 2017, par genxstylez

    I am trying to generate fragmented MP4 as the chunks for HLS as introduced by apple last year.

    See link -> https://bitmovin.com/hls-news-wwdc-2016/

    Does ffmpeg supports this ?

    Thanks !

  • Nomenclature #3470 : Introduire une balise #AUTEUR

    14 février 2017, par tetue tetue

    Ah voilà, je viens de comprendre pourquoi il fut ainsi nommé : parce que ce ticket est une sous-tâche du #3466 (où n’est pas oublié le cas particulier des articles syndiqués). Il me semblait logique d’étendre d’abord l’existant, puis de renommer ensuite, mais ce n’est peut-être pas logique, d’un point de vue code :P