Recherche avancée

Médias (91)

Autres articles (33)

  • Installation en mode ferme

    4 février 2011, par

    Le mode ferme permet d’héberger plusieurs sites de type MediaSPIP en n’installant qu’une seule fois son noyau fonctionnel.
    C’est la méthode que nous utilisons sur cette même plateforme.
    L’utilisation en mode ferme nécessite de connaïtre un peu le mécanisme de SPIP contrairement à la version standalone qui ne nécessite pas réellement de connaissances spécifique puisque l’espace privé habituel de SPIP n’est plus utilisé.
    Dans un premier temps, vous devez avoir installé les mêmes fichiers que l’installation (...)

  • Publier sur MédiaSpip

    13 juin 2013

    Puis-je poster des contenus à partir d’une tablette Ipad ?
    Oui, si votre Médiaspip installé est à la version 0.2 ou supérieure. Contacter au besoin l’administrateur de votre MédiaSpip pour le savoir

  • Other interesting software

    13 avril 2011, par

    We don’t claim to be the only ones doing what we do ... and especially not to assert claims to be the best either ... What we do, we just try to do it well and getting better ...
    The following list represents softwares that tend to be more or less as MediaSPIP or that MediaSPIP tries more or less to do the same, whatever ...
    We don’t know them, we didn’t try them, but you can take a peek.
    Videopress
    Website : http://videopress.com/
    License : GNU/GPL v2
    Source code : (...)

Sur d’autres sites (4632)

  • Android java.lang.UnsatisfiedLinkError : android error for .so libraries

    14 septembre 2017, par Burak iren

    so libraries to my project for ffmpeg camera but I have got some errors when I load the library.

    I’m getting error like that "java.lang.UnsatisfiedLinkError : android" .

    My .so files directory is src-main-jniLibs-armeabi - so files. When I loading the so file gettting error I can’t load the so file. I have tried many answer but still going this error.

    If you want other config files I can load here.

    Error log is here also

    09-14 17:40:33.739 19728-20196/? E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #6
                                                  Process: com.leadtimeapp.io.internal.debug, PID: 19728
                                                  java.lang.RuntimeException: An error occurred while executing doInBackground()
                                                      at android.os.AsyncTask$3.done(AsyncTask.java:309)
                                                      at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
                                                      at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
                                                      at java.util.concurrent.FutureTask.run(FutureTask.java:242)
                                                      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
                                                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                      at java.lang.Thread.run(Thread.java:818)
                                                   Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.leadtimeapp.io.internal.debug-2/base.apk"],nativeLibraryDirectories=[/data/app/com.leadtimeapp.io.internal.debug-2/lib/arm64, /data/app/com.leadtimeapp.io.internal.debug-2/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "libjniavformat.so"
                                                      at java.lang.Runtime.loadLibrary(Runtime.java:367)
                                                      at java.lang.System.loadLibrary(System.java:1076)
                                                      at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:711)
                                                      at com.googlecode.javacpp.Loader.load(Loader.java:586)
                                                      at com.googlecode.javacpp.Loader.load(Loader.java:540)
                                                      at com.googlecode.javacv.cpp.avformat.<clinit>(avformat.java:40)
                                                      at com.googlecode.javacv.cpp.avformat.av_register_all(Native Method)
                                                      at com.leadtimeapp.io.ffmpeg.NewFFmpegFrameRecorder.<clinit>(NewFFmpegFrameRecorder.java:302)
                                                      at com.leadtimeapp.io.ffmpeg.FFmpegRecorderActivity.initVideoRecorder(FFmpegRecorderActivity.java:464)
                                                      at com.leadtimeapp.io.ffmpeg.FFmpegRecorderActivity.access$1400(FFmpegRecorderActivity.java:66)
                                                      at com.leadtimeapp.io.ffmpeg.FFmpegRecorderActivity$2.doInBackground(FFmpegRecorderActivity.java:368)
                                                      at com.leadtimeapp.io.ffmpeg.FFmpegRecorderActivity$2.doInBackground(FFmpegRecorderActivity.java:360)
                                                      at android.os.AsyncTask$2.call(AsyncTask.java:295)
                                                      at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
                                                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                                                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                                                      at java.lang.Thread.run(Thread.java:818) 
                                                   Caused by: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.leadtimeapp.io.internal.debug-2/base.apk"],nativeLibraryDirectories=[/data/app/com.leadtimeapp.io.internal.debug-2/lib/arm64, /data/app/com.leadtimeapp.io.internal.debug-2/base.apk!/lib/arm64-v8a, /vendor/lib64, /system/lib64]]] couldn't find "libavformat.so"
                                                      at java.lang.Runtime.loadLibrary(Runtime.java:367)
                                                      at java.lang.System.loadLibrary(System.java:1076)
                                                      at com.googlecode.javacpp.Loader.loadLibrary(Loader.java:711)
                                                      at com.googlecode.javacpp.Loader.load(Loader.java:577)
                                                      at com.googlecode.javacpp.Loader.load(Loader.java:540) 
                                                      at com.googlecode.javacv.cpp.avformat.<clinit>(avformat.java:40) 
                                                      at com.googlecode.javacv.cpp.avformat.av_register_all(Native Method) 
                                                      at com.leadtimeapp.io.ffmpeg.NewFFmpegFrameRecorder.<clinit>(NewFFmpegFrameRecorder.java:302) 
                                                      at com.leadtimeapp.io.ffmpeg.FFmpegRecorderActivity.initVideoRecorder(FFmpegRecorderActivity.java:464) 
                                                      at com.leadtimeapp.io.ffmpeg.FFmpegRecorderActivity.access$1400(FFmpegRecorderActivity.java:66) 
                                                      at com.leadtimeapp.io.ffmpeg.FFmpegRecorderActivity$2.doInBackground(FFmpegRecorderActivity.java:368) 
                                                      at com.leadtimeapp.io.ffmpeg.FFmpegRecorderActivity$2.doInBackground(FFmpegRecorderActivity.java:360) 
                                                      at android.os.AsyncTask$2.call(AsyncTask.java:295) 
                                                      at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
                                                      at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
                                                      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
                                                      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
                                                      at java.lang.Thread.run(Thread.java:818) 
    09-14 17:40:34.168 19728-19790/? E/NativeCrypto: ssl=0x7f643ae900
    cert_verify_callback x509_store_ctx=0x7f76e3e1a0 arg=0x0
    09-14 17:40:34.168 19728-19790/? E/NativeCrypto: ssl=0x7f643ae900
    cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
    </clinit></clinit></clinit></clinit>

    My gradle is

    apply plugin: 'com.android.application'
    apply plugin: 'io.fabric'
    apply plugin: 'com.github.triplet.play'
    apply plugin: 'project-report'

    def buildVersionCode = new Date().format("yyMMddHHmm",
    TimeZone.getTimeZone("Europe/Istanbul")).toInteger()
    def buildVersionName = "1.1.2"
    def SupportVersion = '25.3.1'
    def OkHttpVersion = '3.2.0'
    def RetrofitVersion = '2.0.2'
    def FacebookVersion = '4.+'
    def GSonVersion = '2.6.2'

    android {

    compileSdkVersion 25
    buildToolsVersion "25.0.3"

    playAccountConfigs {
       defaultAccountConfig {
           ...
       }
    }

    defaultConfig {
       applicationId "...."
       resValue "string", "app_name", "..."
       resValue "string", "face_app_id", "...."
       minSdkVersion 16
       playAccountConfig = playAccountConfigs.defaultAccountConfig
       //noinspection OldTargetApi
       targetSdkVersion 25
       versionCode buildVersionCode
       versionName buildVersionName
       multiDexEnabled true
       renderscriptTargetApi 19
       renderscriptSupportModeEnabled true


    }

    signingConfigs {
       ....
    }

    lintOptions {
       abortOnError false        // true by default
       checkAllWarnings false
       checkReleaseBuilds false
       ignoreWarnings true       // false by default
       quiet true                // false by default
    }

    sourceSets {
       main.jni.srcDirs = []
       main.jniLibs.srcDirs = ['libs']
    }

    buildTypes {
       release {
           minifyEnabled true
           debuggable false
           signingConfig signingConfigs.release
           proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

           applicationVariants.all { variant ->
               variant.outputs.each { output ->
                   output.outputFile = new File(output.outputFile.parent,
                           output.outputFile.name.replace("-release", "-release-" + buildVersionName + "-" + buildVersionCode)
                   )
               }
           }
       }

       debug {
           debuggable true
           zipAlignEnabled true
           applicationIdSuffix ".debug"
       }

       productFlavors {
           arm7 {
               // in the future, ndk.abiFilter might also work
               ndk {
                   abiFilter 'armeabi-v7a'
               }
           }
           arm8 {
               ndk {
                   abiFilters 'arm64-v8a'
               }
           }
           arm {
               ndk {
                   abiFilter 'armeabi'
               }
           }
           x86 {
               ndk {
                   abiFilter 'x86'
               }
           }
           x86_64 {
               ndk {
                   abiFilter 'x86_64'
               }
           }
           mips {
               ndk {
                   abiFilters 'mips', 'mips64'
               }
           }
           universal {
               ndk {
                   abiFilters 'mips', 'mips64', 'x86', 'x86_64'
               }
           }
       }
    }

    lintOptions {
       abortOnError false
       checkReleaseBuilds false
       checkAllWarnings true
       htmlReport true
       htmlOutput file("lint-report.html")
       checkReleaseBuilds true

       disable 'MissingTranslation'
       disable 'UnusedResources'
       disable 'IconLauncherShape'
       disable 'GoogleAppIndexingApiWarning'
       disable 'SelectableText'
       error 'CommitTransaction'
       error 'InconsistentArrays'
       error 'Registered'
       error 'ManifestOrder'
    }

    }

    play {
    track = 'alpha'
    }

    dependencies {
    compile fileTree(dir: 'libs', include: ['.jar', '.so'])
    compile files('libs/javacpp.jar')
    compile files('libs/javacv.jar')

    compile project(':camera')
    compile project(':VideoRecorder')

    compile("com.android.support:appcompat-v7:$SupportVersion") {
       exclude group: 'com.android.support', module: 'support-v4'
       exclude group: 'com.android.support', module: 'support-annotations'
    }
    compile("com.android.support:cardview-v7:$SupportVersion") {
       exclude group: 'com.android.support', module: 'support-annotations'
    }
    compile("com.android.support:design:$SupportVersion") {
       exclude group: 'com.android.support', module: 'support-core-ui'
       exclude group: 'com.android.support', module: 'appcompat-v7'
       exclude group: 'com.android.support', module: 'support-v4'
    }
    compile("com.android.support:support-v4:$SupportVersion") {
       exclude group: 'com.android.support', module: 'support-media-compat'
       exclude group: 'com.android.support', module: 'support-compat'
    }
    compile('com.android.support:multidex:1.0.1') {
       exclude group: 'com.android.support', module: 'support-vector-drawable'
    }

    compile(group: 'org.bytedeco', name: 'javacv-platform', version: '1.3') {
       exclude group: 'org.bytedeco.javacpp-presets'
    }
    compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '3.2.1-1.3'
    compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '3.2.1-1.3', classifier: 'android-arm'

    compile "com.google.code.gson:gson:$GSonVersion"
    compile "com.squareup.okhttp3:okhttp:$OkHttpVersion"
    compile "com.squareup.retrofit2:retrofit:$RetrofitVersion"
    compile "com.facebook.android:facebook-android-sdk:$FacebookVersion"


    compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
       transitive = true;
    }
    compile('com.twitter.sdk.android:twitter:2.3.0@aar') {
       transitive = true;
    }
    compile 'com.davemorrissey.labs:subsampling-scale-image-view:3.5.0'
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'de.hdodenhof:circleimageview:2.0.0'
    compile 'com.wdullaer:materialdatetimepicker:2.3.0'
    compile 'com.github.zhaokaiqiang.klog:library:1.4.0'
    compile 'com.github.filippudak.progresspieview:library:1.0.4'
    compile 'com.daimajia.swipelayout:library:1.2.0@aar'
    compile 'com.amazonaws:aws-android-sdk-s3:2.4.7'
    compile 'io.paperdb:paperdb:1.5'
    compile 'org.greenrobot:eventbus:3.0.0'
    compile 'com.jakewharton:butterknife:8.4.0'
    compile 'com.flipboard:bottomsheet-core:1.5.0'
    compile 'com.flipboard:bottomsheet-commons:1.5.0'
    compile 'com.yqritc:android-scalablevideoview:1.0.4'
    compile 'com.github.bumptech.glide:okhttp3-integration:1.4.0@aar'
    compile 'com.google.android.gms:play-services-gcm:11.0.4'
    compile 'me.relex:circleindicator:1.1.8@aar'
    compile 'com.github.ihsanbal:scissors:1.1.3'
    compile 'org.zakariya.stickyheaders:stickyheaders:0.7.5'
    compile 'com.parse.bolts:bolts-android:1.4.0'
    compile 'com.parse:parse-android:1.15.8'
    compile 'com.getbase:floatingactionbutton:1.10.1'
    compile 'com.github.wooplr:Spotlight:1.2.3'
    compile 'com.adjust.sdk:adjust-android:4.7.0'
    compile 'com.google.android.gms:play-services-analytics:11.0.4'
    compile 'com.makeramen:roundedimageview:2.3.0'
    compile 'com.squareup.okhttp3:logging-interceptor:3.3.1'
    compile 'com.github.castorflex.verticalviewpager:library:19.0.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.4.0'
    compile 'jp.wasabeef:blurry:2.1.1'
    compile 'com.writingminds:FFmpegAndroid:0.3.2'

    }
  • FFmpeg avcodec_decode_video2 decode RTSP H264 HD-video packet to video picture with error

    29 mai 2018, par Nguyen Ba Thi

    I used FFmpeg library version 4.0 to have simple C++ program, in witch is a thread to receive RTSP H264 video data from IP-camera and display it in program window.

    Code of this thread is follow :

    DWORD WINAPI GrabbProcess(LPVOID lpParam)
    // Grabbing thread
    {
     DWORD i;
     int ret = 0, nPacket=0;
     FILE *pktFile;
     // Open video file
     pFormatCtx = avformat_alloc_context();
     if(avformat_open_input(&amp;pFormatCtx, nameVideoStream, NULL, NULL)!=0)
         fGrabb=-1; // Couldn't open file
     else
     // Retrieve stream information
     if(avformat_find_stream_info(pFormatCtx, NULL)&lt;0)
         fGrabb=-2; // Couldn't find stream information
     else
     {
         // Find the first video stream
         videoStream=-1;
         for(i=0; inb_streams; i++)
           if(pFormatCtx->streams[i]->codec->codec_type==AVMEDIA_TYPE_VIDEO)
           {
             videoStream=i;
             break;
           }
         if(videoStream==-1)
             fGrabb=-3; // Didn't find a video stream
         else
         {
             // Get a pointer to the codec context for the video stream
             pCodecCtxOrig=pFormatCtx->streams[videoStream]->codec;
             // Find the decoder for the video stream
             pCodec=avcodec_find_decoder(pCodecCtxOrig->codec_id);
             if(pCodec==NULL)
                 fGrabb=-4; // Codec not found
             else
             {
                 // Copy context
                 pCodecCtx = avcodec_alloc_context3(pCodec);
                 if(avcodec_copy_context(pCodecCtx, pCodecCtxOrig) != 0)
                     fGrabb=-5; // Error copying codec context
                 else
                 {
                     // Open codec
                     if(avcodec_open2(pCodecCtx, pCodec, NULL)&lt;0)
                         fGrabb=-6; // Could not open codec
                     else
                     // Allocate video frame for input
                     pFrame=av_frame_alloc();
                     // Determine required buffer size and allocate buffer
                     numBytes=avpicture_get_size(pCodecCtx->pix_fmt, pCodecCtx->width,
                         pCodecCtx->height);
                     buffer=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));
                     // Assign appropriate parts of buffer to image planes in pFrame
                     // Note that pFrame is an AVFrame, but AVFrame is a superset
                     // of AVPicture
                     avpicture_fill((AVPicture *)pFrame, buffer, pCodecCtx->pix_fmt,
                         pCodecCtx->width, pCodecCtx->height);

                     // Allocate video frame for display
                     pFrameRGB=av_frame_alloc();
                     // Determine required buffer size and allocate buffer
                     numBytes=avpicture_get_size(AV_PIX_FMT_RGB24, pCodecCtx->width,
                         pCodecCtx->height);
                     bufferRGB=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));
                     // Assign appropriate parts of buffer to image planes in pFrameRGB
                     // Note that pFrameRGB is an AVFrame, but AVFrame is a superset
                     // of AVPicture
                     avpicture_fill((AVPicture *)pFrameRGB, bufferRGB, AV_PIX_FMT_RGB24,
                         pCodecCtx->width, pCodecCtx->height);
                     // initialize SWS context for software scaling to FMT_RGB24
                     sws_ctx_to_RGB = sws_getContext(pCodecCtx->width,
                         pCodecCtx->height,
                         pCodecCtx->pix_fmt,
                         pCodecCtx->width,
                         pCodecCtx->height,
                         AV_PIX_FMT_RGB24,
                         SWS_BILINEAR,
                         NULL,
                         NULL,
                         NULL);

                     // Allocate video frame (grayscale YUV420P) for processing
                     pFrameYUV=av_frame_alloc();
                     // Determine required buffer size and allocate buffer
                     numBytes=avpicture_get_size(AV_PIX_FMT_YUV420P, pCodecCtx->width,
                         pCodecCtx->height);
                     bufferYUV=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));
                     // Assign appropriate parts of buffer to image planes in pFrameYUV
                     // Note that pFrameYUV is an AVFrame, but AVFrame is a superset
                     // of AVPicture
                     avpicture_fill((AVPicture *)pFrameYUV, bufferYUV, AV_PIX_FMT_YUV420P,
                         pCodecCtx->width, pCodecCtx->height);
                     // initialize SWS context for software scaling to FMT_YUV420P
                     sws_ctx_to_YUV = sws_getContext(pCodecCtx->width,
                         pCodecCtx->height,
                         pCodecCtx->pix_fmt,
                         pCodecCtx->width,
                         pCodecCtx->height,
                         AV_PIX_FMT_YUV420P,
                         SWS_BILINEAR,
                         NULL,
                         NULL,
                         NULL);
                   RealBsqHdr.biWidth = pCodecCtx->width;
                   RealBsqHdr.biHeight = -pCodecCtx->height;
                 }
             }
         }
     }
     while ((fGrabb==1)||(fGrabb==100))
     {
         // Grabb a frame
         if (av_read_frame(pFormatCtx, &amp;packet) >= 0)
         {
           // Is this a packet from the video stream?
           if(packet.stream_index==videoStream)
           {
               // Decode video frame
               int len = avcodec_decode_video2(pCodecCtx, pFrame, &amp;frameFinished, &amp;packet);
               nPacket++;
               // Did we get a video frame?
               if(frameFinished)
               {
                   // Convert the image from its native format to YUV
                   sws_scale(sws_ctx_to_YUV, (uint8_t const * const *)pFrame->data,
                       pFrame->linesize, 0, pCodecCtx->height,
                       pFrameYUV->data, pFrameYUV->linesize);
                   // Convert the image from its native format to RGB
                   sws_scale(sws_ctx_to_RGB, (uint8_t const * const *)pFrame->data,
                       pFrame->linesize, 0, pCodecCtx->height,
                       pFrameRGB->data, pFrameRGB->linesize);
                   HDC hdc=GetDC(hWndM);
                   SetDIBitsToDevice(hdc, 0, 0, pCodecCtx->width, pCodecCtx->height,
                       0, 0, 0, pCodecCtx->height,pFrameRGB->data[0], (LPBITMAPINFO)&amp;RealBsqHdr, DIB_RGB_COLORS);
                   ReleaseDC(hWndM,hdc);
                   av_frame_unref(pFrame);
               }
           }
           // Free the packet that was allocated by av_read_frame
           av_free_packet(&amp;packet);
         }
      }
      // Free the org frame
     av_frame_free(&amp;pFrame);
     // Free the RGB frame
     av_frame_free(&amp;pFrameRGB);
     // Free the YUV frame
     av_frame_free(&amp;pFrameYUV);

     // Close the codec
     avcodec_close(pCodecCtx);
     avcodec_close(pCodecCtxOrig);

     // Close the video file
     avformat_close_input(&amp;pFormatCtx);
     avformat_free_context(pFormatCtx);

     if (fGrabb==1)
         sprintf(tmpstr,"Grabbing Completed %d frames", nCntTotal);
     else if (fGrabb==2)
         sprintf(tmpstr,"User break on %d frames", nCntTotal);
     else if (fGrabb==3)
         sprintf(tmpstr,"Can't Grabb at frame %d", nCntTotal);
     else if (fGrabb==-1)
         sprintf(tmpstr,"Couldn't open file");
     else if (fGrabb==-2)
         sprintf(tmpstr,"Couldn't find stream information");
     else if (fGrabb==-3)
         sprintf(tmpstr,"Didn't find a video stream");
     else if (fGrabb==-4)
         sprintf(tmpstr,"Codec not found");
     else if (fGrabb==-5)
         sprintf(tmpstr,"Error copying codec context");
     else if (fGrabb==-6)
         sprintf(tmpstr,"Could not open codec");
     i=(UINT) fGrabb;
     fGrabb=0;
     SetWindowText(hWndM,tmpstr);
     ExitThread(i);
     return 0;
    }
    // End Grabbing thread  

    When program receive RTSP H264 video data with resolution 704x576 then decoded video pictures are OK. When receive RTSP H264 HD-video data with resolution 1280x720 it look like that first video picture is decoded OK and then video pictures are decoded but always with some error.

    Please help me to fix this problem !

    Here is problems brief :
    I have an IP camera model HI3518E_50H10L_S39 (product of China).
    Camera can provide H264 video stream both at resolution 704x576 (with RTSP URI "rtsp ://192.168.1.18:554/user=admin_password=tlJwpbo6_channel=1_stream=1.sdp ?real_stream") or 1280x720 (with RTSP URI "rtsp ://192.168.1.18:554/user=admin_password=tlJwpbo6_channel=1_stream=0.sdp ?real_stream").
    Using FFplay utility I can access and display them with good picture quality.
    For testing of grabbing from this camera, I have a simple (above mentioned) program in VC-2005. In "Grabbing thread" program use FFmpeg library version 4.0 for opening camera RTSP stream, retrieve stream information, find the first video stream... and prepare some variables.
    Center of this thread is loop : Grab a frame (function av_read_frame) - Decode it if it’s video (function avcodec_decode_video2) - Convert to RGB format (function sws_scale) - Display to program window (GDI function SetDIBitsToDevice).
    When proram run with camera RTSP stream at resolution 704x576, I have good video picture. Here is a sample :
    704x576 sample
    When program run with camera RTSP stream at resolution 1280x720, first video picture is good :
    First good at res.1280x720
    but then not good :
    not good at res.1280x720
    Its seem to be my FFmpeg function call to avcodec_decode_video2 can’t fully decode certain packet for some reasons.

  • "error C2400 : inline assembler syntax error in ‘opcode’" pxor compiling ffmpeg with mmx flag enabled

    4 octobre 2013, par Kristofer

    I'm trying to compile (visual studio 2005) ffmpeg with mmx flag enabled (HAVE_MMX) but get the following error :
    "error C2400 : inline assembler syntax error in ‘opcode’"
    And it's complaining about xpor_r2r

    Ideas ?

    [Update]
    Jester pointed out that it's probably a problem with the macro :

    #define         mmx_r2r(op,regs,regd) \
           __asm__ volatile (#op " %" #regs ", %" #regd)

    Directly using :
    __asm__ pxor mm7 mm7 works
    Adding volatile (as in the macro mentioned) gives the same error, syntax error as before in 'opcode' found 'data_type'.

    Just removing volatile from the macro does not work, instead gives error in 'opcode' found '('

    Removing the paranthesis instead gives error in 'opcode' found 'bad_token'