Exemple #1
0
 static {
   final boolean libAVGood = FFMPEGDynamicLibraryBundleInfo.initSingleton();
   final boolean libAVVersionGood;
   if (FFMPEGDynamicLibraryBundleInfo.libsLoaded()) {
     natives = FFMPEGDynamicLibraryBundleInfo.getNatives();
     if (null != natives) {
       avCodecMajorVersionCC = natives.getAvCodecMajorVersionCC0();
       avFormatMajorVersionCC = natives.getAvFormatMajorVersionCC0();
       avUtilMajorVersionCC = natives.getAvUtilMajorVersionCC0();
       avResampleMajorVersionCC = natives.getAvResampleMajorVersionCC0();
       swResampleMajorVersionCC = natives.getSwResampleMajorVersionCC0();
     } else {
       avUtilMajorVersionCC = 0;
       avFormatMajorVersionCC = 0;
       avCodecMajorVersionCC = 0;
       avResampleMajorVersionCC = 0;
       swResampleMajorVersionCC = 0;
     }
     final VersionNumber avCodecVersion = FFMPEGDynamicLibraryBundleInfo.avCodecVersion;
     final VersionNumber avFormatVersion = FFMPEGDynamicLibraryBundleInfo.avFormatVersion;
     final VersionNumber avUtilVersion = FFMPEGDynamicLibraryBundleInfo.avUtilVersion;
     final VersionNumber avResampleVersion = FFMPEGDynamicLibraryBundleInfo.avResampleVersion;
     final boolean avResampleLoaded = FFMPEGDynamicLibraryBundleInfo.avResampleLoaded();
     final VersionNumber swResampleVersion = FFMPEGDynamicLibraryBundleInfo.swResampleVersion;
     final boolean swResampleLoaded = FFMPEGDynamicLibraryBundleInfo.swResampleLoaded();
     if (DEBUG) {
       System.err.println(
           "LIB_AV Codec   : " + avCodecVersion + " [cc " + avCodecMajorVersionCC + "]");
       System.err.println(
           "LIB_AV Format  : " + avFormatVersion + " [cc " + avFormatMajorVersionCC + "]");
       System.err.println(
           "LIB_AV Util    : " + avUtilVersion + " [cc " + avUtilMajorVersionCC + "]");
       System.err.println(
           "LIB_AV Resample: "
               + avResampleVersion
               + " [cc "
               + avResampleMajorVersionCC
               + ", loaded "
               + avResampleLoaded
               + "]");
       System.err.println(
           "LIB_SW Resample: "
               + swResampleVersion
               + " [cc "
               + swResampleMajorVersionCC
               + ", loaded "
               + swResampleLoaded
               + "]");
       System.err.println(
           "LIB_AV Device  : [loaded " + FFMPEGDynamicLibraryBundleInfo.avDeviceLoaded() + "]");
       System.err.println(
           "LIB_AV Class   : " + (null != natives ? natives.getClass().getSimpleName() : "n/a"));
     }
     final int avCodecMajor = avCodecVersion.getMajor();
     final int avFormatMajor = avFormatVersion.getMajor();
     final int avUtilMajor = avUtilVersion.getMajor();
     libAVVersionGood =
         avCodecMajorVersionCC == avCodecMajor
             && avFormatMajorVersionCC == avFormatMajor
             && (avUtilMajorVersionCC == avUtilMajor
                 || 55 == avCodecMajorVersionCC
                     && 53 == avUtilMajorVersionCC
                     && 52 == avUtilMajor /* ffmpeg 2.x */)
             && (!avResampleLoaded
                 || avResampleMajorVersionCC < 0
                 || avResampleMajorVersionCC == avResampleVersion.getMajor())
             && (!swResampleLoaded
                 || swResampleMajorVersionCC < 0
                 || swResampleMajorVersionCC == swResampleVersion.getMajor());
     if (!libAVVersionGood) {
       System.err.println("LIB_AV Not Matching Compile-Time / Runtime Major-Version");
     }
   } else {
     natives = null;
     avUtilMajorVersionCC = 0;
     avFormatMajorVersionCC = 0;
     avCodecMajorVersionCC = 0;
     avResampleMajorVersionCC = 0;
     swResampleMajorVersionCC = 0;
     libAVVersionGood = false;
   }
   available = libAVGood && libAVVersionGood && null != natives;
 }