Всем привет.
Появилась потребность кое что подправить внутри Omxplayer под Raspberry Pi.
Скопировал исходники отсюда
https://github.com/popcornmix/omxplayer и последовал инструкции по компиляции непосредственно на Малинке, то есть запуск
./prepare-native-raspbian.sh #затем запуск недостающих зависимостей
make ffmpeg
make -j$(nproc)
1) Первый сюрприз был - ошибка компиляции, которая гласила что не найдены некие заголовочные файлы.
Таковые находились внутри папки ffmeg, которая в свою оченедь находится в папке с исходниками Omxplayer'a.
2)Проблема решилась скачиванием/компиляцией FFmpeg отдельно.
3)Далее было удалено всё что находилось в файле omxplayer/Makefile.ffmpeg
Теперь компиляция прерывается со следующим (копирую только финальную часть, полагаю, этого достаточно для понимания):
spoiler/usr/bin/ld: //usr/local/lib/libavformat.a(srtp.o): in function `ff_srtp_encrypt':
/home/pi/omx2/FFmpeg/libavformat/srtp.c:305: undefined reference to `av_aes_init'
/usr/bin/ld: //usr/local/lib/libavformat.a(srtp.o): in function `encrypt_counter':
/home/pi/omx2/FFmpeg/libavformat/srtp.c:48: undefined reference to `av_aes_crypt'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/srtp.c:48: undefined reference to `av_aes_crypt'
/usr/bin/ld: //usr/local/lib/libavformat.a(srtp.o): in function `ff_srtp_encrypt':
/home/pi/omx2/FFmpeg/libavformat/srtp.c:313: undefined reference to `av_hmac_init'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/srtp.c:314: undefined reference to `av_hmac_update'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/srtp.c:320: undefined reference to `av_hmac_final'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/srtp.c:313: undefined reference to `av_hmac_init'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/srtp.c:314: undefined reference to `av_hmac_update'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/srtp.c:318: undefined reference to `av_hmac_update'
/usr/bin/ld: //usr/local/lib/libavformat.a(cache.o): in function `cache_close':
/home/pi/omx2/FFmpeg/libavformat/cache.c:314: undefined reference to `av_tree_enumerate'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/cache.c:315: undefined reference to `av_tree_destroy'
/usr/bin/ld: //usr/local/lib/libavformat.a(cache.o): in function `cache_read':
/home/pi/omx2/FFmpeg/libavformat/cache.c:168: undefined reference to `av_tree_find'
/usr/bin/ld: //usr/local/lib/libavformat.a(cache.o): in function `add_entry':
/home/pi/omx2/FFmpeg/libavformat/cache.c:125: undefined reference to `av_tree_find'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/cache.c:135: undefined reference to `av_tree_node_alloc'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/cache.c:144: undefined reference to `av_tree_insert'
/usr/bin/ld: //usr/local/lib/libavformat.a(crypto.o): in function `crypto_close':
/home/pi/omx2/FFmpeg/libavformat/crypto.c:384: undefined reference to `av_aes_crypt'
/usr/bin/ld: //usr/local/lib/libavformat.a(crypto.o): in function `crypto_write':
/home/pi/omx2/FFmpeg/libavformat/crypto.c:356: undefined reference to `av_aes_crypt'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/crypto.c:352: undefined reference to `av_aes_crypt'
/usr/bin/ld: //usr/local/lib/libavformat.a(crypto.o): in function `crypto_read':
/home/pi/omx2/FFmpeg/libavformat/crypto.c:214: undefined reference to `av_aes_crypt'
/usr/bin/ld: //usr/local/lib/libavformat.a(crypto.o): in function `crypto_open2':
/home/pi/omx2/FFmpeg/libavformat/crypto.c:151: undefined reference to `av_aes_alloc'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/crypto.c:156: undefined reference to `av_aes_init'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/crypto.c:166: undefined reference to `av_aes_alloc'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/crypto.c:171: undefined reference to `av_aes_init'
/usr/bin/ld: //usr/local/lib/libavformat.a(md5proto.o): in function `md5_close':
/home/pi/omx2/FFmpeg/libavformat/md5proto.c:64: undefined reference to `av_md5_final'
/usr/bin/ld: //usr/local/lib/libavformat.a(md5proto.o): in function `md5_write':
/home/pi/omx2/FFmpeg/libavformat/md5proto.c:52: undefined reference to `av_md5_update'
/usr/bin/ld: //usr/local/lib/libavformat.a(md5proto.o): in function `md5_open':
/home/pi/omx2/FFmpeg/libavformat/md5proto.c:41: undefined reference to `av_md5_alloc'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/md5proto.c:44: undefined reference to `av_md5_init'
/usr/bin/ld: //usr/local/lib/libavformat.a(rtmpdigest.o): in function `ff_rtmp_calc_digest':
/home/pi/omx2/FFmpeg/libavformat/rtmpdigest.c:39: undefined reference to `av_hmac_alloc'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/rtmpdigest.c:43: undefined reference to `av_hmac_init'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/rtmpdigest.c:47: undefined reference to `av_hmac_update'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/rtmpdigest.c:48: undefined reference to `av_hmac_update'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/rtmpdigest.c:50: undefined reference to `av_hmac_final'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/rtmpdigest.c:52: undefined reference to `av_hmac_free'
/usr/bin/ld: /home/pi/omx2/FFmpeg/libavformat/rtmpdigest.c:45: undefined reference to `av_hmac_update'
/usr/bin/ld: //usr/local/lib/libswresample.a(resample.o): in function `multiple_resample':
/home/pi/omx2/FFmpeg/libswresample/resample.c:454: undefined reference to `av_get_cpu_flags'
collect2: error: ld returned 1 exit status
make: *** [Makefile:57: omxplayer.bin] Error 1
Я достаточно знаю C++ чтобы более менее понимать, что написано внутри исходников, но к сожалению, плаваю в вопросах компиляции по *nix'ы. Возможно, проблема в том, что сделанное в пункте 3) - недостаточно или не совсем правильно.
Делаю всё это на Raspberry Pi 2 под Rasbpian Buster, если это имеет большое значение.