opensubscriber
   Find in this group all groups
 
Unknown more information…

a : avifile@prak.org 29 December 2004 • 4:18AM -0500

[Avifile]avifile not recognize installed codecs
by Claudiu Costin

REPLY TO AUTHOR
 
REPLY TO GROUP



   Dear all programmers,


My setup is:
* last avifile from CVS
* SuSE 9.1 patched up-to-date
* g++ (GCC) 3.3.3 (SuSE Linux)
* qt3-3.3.3-24
* I've run ./configure --with-win32-path=/usr/local/lib/win32

Avifile have problems finding codecs files from
/usr/local/lib/avifile-07

-----------------------------------------------------------------
<LDT keeper> : Installed fs segment: 0x422e7000
<codec keeper> : Found 11 plugins (/usr/local/lib/avifile-0.7,A:40,V:89)
<codec keeper> : WARNING: plugin /usr/local/lib/avifile-0.7/xvid4.so is in incompatible format
<codec keeper> : WARNING: plugin /usr/local/lib/avifile-0.7/divx4.so is in incompatible format
<codec keeper> : WARNING: plugin /usr/local/lib/avifile-0.7/ffmpeg.so is in incompatible format
<codec keeper> : WARNING: plugin /usr/local/lib/avifile-0.7/ffmpeg.so is in incompatible format
<codec keeper> : WARNING: plugin /usr/local/lib/avifile-0.7/win32.so is in incompatible format
<codec keeper> : WARNING: plugin /usr/local/lib/avifile-0.7/win32.so is in incompatible format
<codec keeper> : WARNING: plugin /usr/local/lib/avifile-0.7/win32.so is in incompatible format
[...]
-----------------------------------------------------------------

The problem is signaled in lib/codeckeeper.cpp:

-----------------------------------------------------------------
        char plgn[100];
        strcpy(plgn, "avm_codec_plugin_");
        char* x = strrchr(name, '/');
        strncat(plgn, x + 1, 50);
        x = strchr(plgn, '.');
        *x = 0;
        codec_plugin_t* plugin = (codec_plugin_t*) dlsym(pi->dlhandle, plgn);

        if (!plugin || (plugin->version != PLUGIN_API_VERSION))
        {
            if (plugin)
                AVM_WRITE("codec keeper", "WARNING: plugin %s has version %d, expected %d (should be removed)\n",
                          name, plugin->version, PLUGIN_API_VERSION);
            else
                AVM_WRITE("codec keeper", "WARNING: plugin %s is in incompatible format\n",
                          name);
            plugin_close(ci);
            return 0;
        }
-----------------------------------------------------------------

This is because the "avm_codec_plugin_*" symbols are not in that codec shared objects!
Why??? It's discarded?


For example in plugins/libwin32/libwin32.cpp it's defined:

-----------------------------------------------------------------
extern "C" const avm::codec_plugin_t avm_codec_plugin_win32 =
{
    PLUGIN_API_VERSION,

    0,
    0, 0,
    avm::win32_GetAttrInt,
    avm::win32_SetAttrInt,
    0, 0,

    avm::win32_FillPlugins,
    avm::win32_CreateAudioDecoder,
    0,
    avm::win32_CreateVideoDecoder,
    avm::win32_CreateVideoEncoder,
};
-----------------------------------------------------------------

But in the compiled "win32.so" is not present!?!

Can some C++ gurus programmers tell me how it's posible?


kind regards,
--
Claudiu Costin, claudiuc@kde....
Linux-KDE Romania http://www.ro.kde.org

_______________________________________________
Avifile mailing list
avifile@prak...
http://prak.org/mailman/listinfo/avifile

Bookmark with:

Delicious   Digg   reddit   Facebook   StumbleUpon

opensubscriber is not affiliated with the authors of this message nor responsible for its content.