Использование структур данных RTP FFmpeg (libavformat) посредством динамического связывания - PullRequest
0 голосов
/ 15 сентября 2011

Я хочу использовать структуры данных RTP (например, RTPMuxContext в libavformat / rtpenc.h), предоставляемые libavformat FFmpeg, однако они не доступны при следующей установке:

ffmpeg version 0.8.2.git, Copyright (c) 2000-2011 the FFmpeg developers
  built on Sep 14 2011 16:04:33 with gcc 4.2.1 (Apple Inc. build 5666) (dot 3)
  configuration: --enable-shared --disable-mmx --arch=x86_64
  libavutil    51. 16. 0 / 51. 16. 0
  libavcodec   53. 14. 0 / 53. 14. 0
  libavformat  53. 12. 0 / 53. 12. 0
  libavdevice  53.  3. 0 / 53.  3. 0
  libavfilter   2. 40. 0 /  2. 40. 0
  libswscale    2.  1. 0 /  2.  1. 0

Когда я смотрю в / usr / local / include, я вижу каталог libavformat, однако там есть только несколько файлов: avformat.h, avio.h и version.h. Конечно, когда я пытаюсь включить libavformat / rtpenc.h, я получаю сообщение «error: libavformat / rtpenc.h: такого файла или каталога нет»

Я бы хотел добиться этого путем динамического связывания с библиотеками FFmpeg (для соответствия LGPL, среди прочих причин), но это не представляется возможным.

Есть ли параметр для скрипта конфигурирования, который я пропускаю, или шаг после установки, которым я пренебрегал?

1 Ответ

1 голос
/ 15 сентября 2011

Вы можете просто включить заголовок rtpenc.h из его существующего расположения в исходный каталог ffmpeg.Поскольку этот заголовок не создает никакого объектного кода, полученный вами двоичный файл не будет производной от библиотеки ffmpeg, но если вы захотите, вы можете просто написать совместимое определение структуры в своем собственном коде и получить доступ к структуре ffmpeg с помощью указателяпеременная, определенная по вашему собственному определению.

Будьте осторожны, так как эта структура не является общедоступным компонентом ffmpeg и может изменяться без предупреждения в разных версиях.

...