On Sun, Sep 10, 2006 at 03:31:54AM +0400, Pavlov Konstantin wrote: > Вот такая ситуация: > с одной стороны, надо включать в ffmpeg поддержку swscaler. > с другой, если ее включить, то все становится плохо: > 12 symbols removed > T align_get_bits > T check_marker > T get_bits_long > T img_convert > T img_resample > T img_resample_close > T img_resample_full_init > T img_resample_init > T show_bits_long > T sws_freeContext > T sws_getContext > T sws_scale К сожалению эти символы уже используются различными программами в репозитарии. at@mash ~/.qa-robot/bad_elf_symbols $ cat ffmpeg-minus align_get_bits check_marker get_bits_long img_convert img_resample img_resample_close img_resample_full_init img_resample_init show_bits_long sws_freeContext sws_getContext sws_scale at@mash ~/.qa-robot/bad_elf_symbols $ grep -f ffmpeg-minus ref libavformat /usr/lib/libavformat.so.50.5.0 U get_bits_long cinelerra /usr/bin/cinelerra U img_convert ffmpeg-vhook /usr/lib/vhook/fish.so U img_convert ffmpeg-vhook /usr/lib/vhook/imlib2.so U img_convert ffmpeg-vhook /usr/lib/vhook/null.so U img_convert ffmpeg-vhook /usr/lib/vhook/ppm.so U img_convert ffmpeg-vhook /usr/lib/vhook/watermark.so U img_convert ffmpeg2theora /usr/bin/ffmpeg2theora U img_convert mpeg4ip-player-plugins /usr/lib/mp4player/ffmpeg_video_plugin.so U img_convert transcode /usr/lib/transcode/export_ffmpeg.so U img_convert vdr-osdpip /usr/lib/vdr/libvdr-osdpip.so.1.3.22 U img_convert vlc-plugin-ffmpeg /usr/lib/vlc/codec/libffmpeg_plugin.so U img_convert ffmpeg2theora /usr/bin/ffmpeg2theora U img_resample vdr-osdpip /usr/lib/vdr/libvdr-osdpip.so.1.3.22 U img_resample vlc-plugin-ffmpeg /usr/lib/vlc/codec/libffmpeg_plugin.so U img_resample vdr-osdpip /usr/lib/vdr/libvdr-osdpip.so.1.3.22 U img_resample_close vlc-plugin-ffmpeg /usr/lib/vlc/codec/libffmpeg_plugin.so U img_resample_close ffmpeg2theora /usr/bin/ffmpeg2theora U img_resample_full_init vdr-osdpip /usr/lib/vdr/libvdr-osdpip.so.1.3.22 U img_resample_full_init vlc-plugin-ffmpeg /usr/lib/vlc/codec/libffmpeg_plugin.so U img_resample_full_init vlc-plugin-ffmpeg /usr/lib/vlc/codec/libffmpeg_plugin.so U img_resample_init ffmpeg /usr/bin/ffmpeg U sws_freeContext ffmpeg /usr/bin/ffmpeg U sws_getContext ffplay /usr/bin/ffplay U sws_getContext ffmpeg /usr/bin/ffmpeg U sws_scale ffplay /usr/bin/ffplay U sws_scale at@mash ~/.qa-robot/bad_elf_symbols $ > 9 symbols added > D vmnc_decoder > D vp5_decoder > D vp6_decoder > D vp6f_decoder > T av_audio_convert > T vp56_decode_frame > T vp56_free > T vp56_init > T vp56_init_dequant > Т.е., как видим, удалены функции из public api, но soname не изменился. хуже > того, обьявления этих функций все еще есть в avcodec.h. > Из-за этого становятся нерабочими все программы, которые используют ffmpeg. > Пересборка, конечно, помогает, но... Не ясно, каков механизм, что после пересборки эти функции перестают использоваться. Там в хедерах простыни ifdef/define'ов что ли? > Пересобираем без swscaler, становится несколько лучше, но все же: > > thresh@exchange repo/i686/RPMS.hasher $ rpmsodiff > libavcodec-0.5.0-alt1.svn5987.1.i686.rpm > libavcodec-0.5.0-alt1.svn6217.1.i686.rpm > common sonames: > libavcodec.so.51 /usr/lib/libavcodec.so.51.11.0 /usr/lib/libavcodec.so.51.14.0 > libavutil.so.49 /usr/lib/libavutil.so.49.0.0 /usr/lib/libavutil.so.49.0.0 > 4 symbols removed > T align_get_bits > T check_marker > T get_bits_long > T show_bits_long А вот эти почти не используются: $ grep -f ffmpeg-minus2 ref libavformat /usr/lib/libavformat.so.50.5.0 U get_bits_long $ т.е. это из того же исходного пакета, что и libavcodec. > 9 symbols added > D vmnc_decoder > D vp5_decoder > D vp6_decoder > D vp6f_decoder > T av_audio_convert > T vp56_decode_frame > T vp56_free > T vp56_init > T vp56_init_dequant > Подскажите, что мне с этим делать? Ну, надо разбираться. :)