当前位置: 代码迷 >> Android >> 解决Android平台移植ffmpeg的一揽子有关问题
  详细解决方案

解决Android平台移植ffmpeg的一揽子有关问题

热度:114   发布时间:2016-05-01 20:02:22.0
解决Android平台移植ffmpeg的一揽子问题

?

?

?

原文地址: http://blog.csdn.net/moruite/article/details/6305944

?

IT行业是一个踩在巨人肩膀上前进的行业,否则做的事情不一定有意义,所以我也是基于havlenapetr移植的ffmpeg基础上做了些改进,他做的主要贡献有:

1. 移植了ffmpeg并将与媒体相关的结构体在java层重新进行了封装,方便应用程序在java层直接操作ffmpeg API,如各种媒体格式转码及播放,如图1所示

2. 模仿Android的MediaPlayer类实现了ffmpeg的播放接口,如setDataSource(),setDisplay(),start(), stop(),pause()等,缺点是没有实现seek功能。

3. 实现了一个简单播放器功能,抛弃掉ffmpeg自带的ffplay播放器,他重新实现了音视频的分离播放和同步处理等播放器应有的功能。

?

图1 ffmpeg的java层封装

基于Android移植ffmpeg的意义在于:

1.解决了Android媒体框架OpenCore的多媒体支持不足,虽然说Android平台的软解功耗大,但是从PC机的发展历史看,Android的视频处理以后也会走以硬解为主,软解为辅的路线。

2. 解决Android平台直播的问题,虽然Android支持RTSP/RTP的直播方案,但是这种方案主要是普遍用在电信设备上,基于互联网的海量视频服务提供者还是以http live streaming方案为主,测试时可以用ffmpeg将直播流打包成分段的ts流(如10秒钟),然后组织成m3u8文件实现完整的直播方案,而且互联网的直播内容还有很多是基于mms协议的,视频格式是wmv,要聚集这些内容都是离不开ffmpeg软解的。

?

移植步骤:

1. 下载havlenaptr移植的ffmpeg(https://github.com/havlenapetr/FFMpeg/zipball/debug).

2.? 基于ndk编译下载的ffmpeg,出现的编译问题主要是文件的存放路径不对,修改jni目录下的Android.mk文件,增加头文件目录$(LOCAL_PATH)/../include/android,修改Vector.h文件为:

#include <cutils/log.h>
#include <utils/VectorImpl.h>
#include <utils/TypeHelpers.h>

3.utils目录下缺少TypeHelpers.h,添加该文件:

[cpp] view plaincopy
  1. /*?
  2. ?*??TypeHelpers.h?
  3. ?*???
  4. ?*??Copyright?2005?The?Android?Open?Source?Project?
  5. ?*?
  6. ?*/??
  7. #ifndef?ANDROID_TYPE_HELPERS_H??
  8. #define?ANDROID_TYPE_HELPERS_H??
  9. #include?<new>??
  10. #include?<stdint.h>??
  11. #include?<string.h>??
  12. #include?<sys/types.h>??
  13. //?---------------------------------------??
  14. namespace?android?{??
  15. /*?
  16. ?*?Types?traits?
  17. ?*/??
  18. ??????
  19. template?<typename?T>?struct?trait_trivial_ctor??{?enum?{?value?=?false?};?};??
  20. template?<typename?T>?struct?trait_trivial_dtor??{?enum?{?value?=?false?};?};??
  21. template?<typename?T>?struct?trait_trivial_copy??{?enum?{?value?=?false?};?};??
  22. template?<typename?T>?struct?trait_trivial_assign{?enum?{?value?=?false?};?};??
  23. template?<typename?T>?struct?trait_pointer?????{?enum?{?value?=?false?};?};??????
  24. template?<typename?T>?struct?trait_pointer<T*>?{?enum?{?value?=?true?};?};??
  25. #define?ANDROID_BASIC_TYPES_TRAITS(?T?)???????????????????????????????????????/??
  26. ????template<>?struct?trait_trivial_ctor<?T?>??{?enum?{?value?=?true?};?};????/??
  27. ????template<>?struct?trait_trivial_dtor<?T?>??{?enum?{?value?=?true?};?};????/??
  28. ????template<>?struct?trait_trivial_copy<?T?>??{?enum?{?value?=?true?};?};????/??
  29. ????template<>?struct?trait_trivial_assign<?T?>{?enum?{?value?=?true?};?};???
  30. #define?ANDROID_TYPE_TRAITS(?T,?ctor,?dtor,?copy,?assign?)????????????????????/??
  31. ????template<>?struct?trait_trivial_ctor<?T?>??{?enum?{?value?=?ctor?};?};????/??
  32. ????template<>?struct?trait_trivial_dtor<?T?>??{?enum?{?value?=?dtor?};?};????/??
  33. ????template<>?struct?trait_trivial_copy<?T?>??{?enum?{?value?=?copy?};?};????/??
  34. ????template<>?struct?trait_trivial_assign<?T?>{?enum?{?value?=?assign?};?};???
  35. template?<typename?TYPE>??
  36. struct?traits?{??
  37. ????enum?{??
  38. ????????is_pointer??????????=?trait_pointer<TYPE>::value,??
  39. ????????has_trivial_ctor????=?is_pointer?||?trait_trivial_ctor<TYPE>::value,??
  40. ????????has_trivial_dtor????=?is_pointer?||?trait_trivial_dtor<TYPE>::value,??
  41. ????????has_trivial_copy????=?is_pointer?||?trait_trivial_copy<TYPE>::value,??
  42. ????????has_trivial_assign??=?is_pointer?||?trait_trivial_assign<TYPE>::value?????
  43. ????};??
  44. };??
  45. template?<typename?T,?typename?U>??
  46. struct?aggregate_traits?{??
  47. ????enum?{??
  48. ????????is_pointer??????????=?false,??
  49. ????????has_trivial_ctor????=?traits<T>::has_trivial_ctor?&&?traits<U>::has_trivial_ctor,??
  50. ????????has_trivial_dtor????=?traits<T>::has_trivial_dtor?&&?traits<U>::has_trivial_dtor,??
  51. ????????has_trivial_copy????=?traits<T>::has_trivial_copy?&&?traits<U>::has_trivial_copy,??
  52. ????????has_trivial_assign??=?traits<T>::has_trivial_assign?&&?traits<U>::has_trivial_assign??
  53. ????};??
  54. };??
  55. //?---------------------------------------??
  56. /*?
  57. ?*?basic?types?traits?
  58. ?*/??
  59. ???
  60. ANDROID_BASIC_TYPES_TRAITS(?void?);??
  61. ANDROID_BASIC_TYPES_TRAITS(?bool?);??
  62. ANDROID_BASIC_TYPES_TRAITS(?char?);??
  63. ANDROID_BASIC_TYPES_TRAITS(?unsigned?char?);??
  64. ANDROID_BASIC_TYPES_TRAITS(?short?);??
  65. ANDROID_BASIC_TYPES_TRAITS(?unsigned?short?);??
  66. ANDROID_BASIC_TYPES_TRAITS(?int?);??
  67. ANDROID_BASIC_TYPES_TRAITS(?unsigned?int?);??
  68. ANDROID_BASIC_TYPES_TRAITS(?long?);??
  69. ANDROID_BASIC_TYPES_TRAITS(?unsigned?long?);??
  70. ANDROID_BASIC_TYPES_TRAITS(?long?long?);??
  71. ANDROID_BASIC_TYPES_TRAITS(?unsigned?long?long?);??
  72. ANDROID_BASIC_TYPES_TRAITS(?float?);??
  73. ANDROID_BASIC_TYPES_TRAITS(?double?);??
  74. //?---------------------------------------??
  75. ??????
  76. /*?
  77. ?*?compare?and?order?types?
  78. ?*/??
  79. template<typename?TYPE>?inline??
  80. int?strictly_order_type(const?TYPE&?lhs,?const?TYPE&?rhs)?{??
  81. ????return?(lhs?<?rhs)???1?:?0;??
  82. }??
  83. template<typename?TYPE>?inline??
  84. int?compare_type(const?TYPE&?lhs,?const?TYPE&?rhs)?{??
  85. ????return?strictly_order_type(rhs,?lhs)?-?strictly_order_type(lhs,?rhs);??
  86. }??
  87. /*?
  88. ?*?create,?destroy,?copy?and?assign?types...?
  89. ?*/??
  90. ???
  91. template<typename?TYPE>?inline??
  92. void?construct_type(TYPE*?p,?size_t?n)?{??
  93. ????if?(!traits<TYPE>::has_trivial_ctor)?{??
  94. ????????while?(n--)?{??
  95. ????????????new(p++)?TYPE;??
  96. ????????}??
  97. ????}??
  98. }??
  99. template<typename?TYPE>?inline??
  100. void?destroy_type(TYPE*?p,?size_t?n)?{??
  101. ????if?(!traits<TYPE>::has_trivial_dtor)?{??
  102. ????????while?(n--)?{??
  103. ????????????p->~TYPE();??
  104. ????????????p++;??
  105. ????????}??
  106. ????}??
  107. }??
  108. template<typename?TYPE>?inline??
  109. void?copy_type(TYPE*?d,?const?TYPE*?s,?size_t?n)?{??
  110. ????if?(!traits<TYPE>::has_trivial_copy)?{??
  111. ????????while?(n--)?{??
  112. ????????????new(d)?TYPE(*s);??
  113. ????????????d++,?s++;??
  114. ????????}??
  115. ????}?else?{??
  116. ????????memcpy(d,s,n*sizeof(TYPE));??
  117. ????}??
  118. }??
  119. template<typename?TYPE>?inline??
  120. void?assign_type(TYPE*?d,?const?TYPE*?s,?size_t?n)?{??
  121. ????if?(!traits<TYPE>::has_trivial_assign)?{??
  122. ????????while?(n--)?{??
  123. ????????????*d++?=?*s++;??
  124. ????????}??
  125. ????}?else?{??
  126. ????????memcpy(d,s,n*sizeof(TYPE));??
  127. ????}??
  128. }??
  129. template<typename?TYPE>?inline??
  130. void?splat_type(TYPE*?where,?const?TYPE*?what,?size_t?n)?{??
  131. ????if?(!traits<TYPE>::has_trivial_copy)?{??
  132. ????????while?(n--)?{??
  133. ????????????new(where)?TYPE(*what);??
  134. ????????????where++;??
  135. ????????}??
  136. ????}?else?{??
  137. ?????????while?(n--)?{??
  138. ?????????????*where++?=?*what;??
  139. ????????}??
  140. ????}??
  141. }??
  142. template<typename?TYPE>?inline??
  143. void?move_forward_type(TYPE*?d,?const?TYPE*?s,?size_t?n?=?1)?{??
  144. ????if?(!traits<TYPE>::has_trivial_copy?||?!traits<TYPE>::has_trivial_dtor)?{??
  145. ????????d?+=?n;??
  146. ????????s?+=?n;??
  147. ????????while?(n--)?{??
  148. ????????????--d,?--s;??
  149. ????????????if?(!traits<TYPE>::has_trivial_copy)?{??
  150. ????????????????new(d)?TYPE(*s);??
  151. ????????????}?else?{??
  152. ????????????????*d?=?*s;??
  153. ????????????}??
  154. ????????????if?(!traits<TYPE>::has_trivial_dtor)?{??
  155. ????????????????s->~TYPE();??
  156. ????????????}??
  157. ????????}??
  158. ????}?else?{??
  159. ????????memmove(d,s,n*sizeof(TYPE));??
  160. ????}??
  161. }??
  162. template<typename?TYPE>?inline??
  163. void?move_backward_type(TYPE*?d,?const?TYPE*?s,?size_t?n?=?1)?{??
  164. ????if?(!traits<TYPE>::has_trivial_copy?||?!traits<TYPE>::has_trivial_dtor)?{??
  165. ????????while?(n--)?{??
  166. ????????????if?(!traits<TYPE>::has_trivial_copy)?{??
  167. ????????????????new(d)?TYPE(*s);??
  168. ????????????}?else?{??
  169. ????????????????*d?=?*s;??
  170. ????????????}??
  171. ????????????if?(!traits<TYPE>::has_trivial_dtor)?{??
  172. ????????????????s->~TYPE();??
  173. ????????????}??
  174. ????????????d++,?s++;??
  175. ????????}??
  176. ????}?else?{??
  177. ????????memmove(d,s,n*sizeof(TYPE));??
  178. ????}??
  179. }??
  180. //?---------------------------------------??
  181. /*?
  182. ?*?a?key/value?pair?
  183. ?*/??
  184. template?<typename?KEY,?typename?VALUE>??
  185. struct?key_value_pair_t?{??
  186. ????KEY?????key;??
  187. ????VALUE???value;??
  188. ????key_value_pair_t()?{?}??
  189. ????key_value_pair_t(const?key_value_pair_t&?o)?:?key(o.key),?value(o.value)?{?}??
  190. ????key_value_pair_t(const?KEY&?k,?const?VALUE&?v)?:?key(k),?value(v)??{?}??
  191. ????key_value_pair_t(const?KEY&?k)?:?key(k)?{?}??
  192. ????inline?bool?operator?<?(const?key_value_pair_t&?o)?const?{??
  193. ????????return?strictly_order_type(key,?o.key);??
  194. ????}??
  195. };??
  196. template<>??
  197. template?<typename?K,?typename?V>??
  198. struct?trait_trivial_ctor<?key_value_pair_t<K,?V>?>??
  199. {?enum?{?value?=?aggregate_traits<K,V>::has_trivial_ctor?};?};??
  200. template<>???
  201. template?<typename?K,?typename?V>??
  202. struct?trait_trivial_dtor<?key_value_pair_t<K,?V>?>??
  203. {?enum?{?value?=?aggregate_traits<K,V>::has_trivial_dtor?};?};??
  204. template<>???
  205. template?<typename?K,?typename?V>??
  206. struct?trait_trivial_copy<?key_value_pair_t<K,?V>?>??
  207. {?enum?{?value?=?aggregate_traits<K,V>::has_trivial_copy?};?};??
  208. template<>???
  209. template?<typename?K,?typename?V>??
  210. struct?trait_trivial_assign<?key_value_pair_t<K,?V>?>??
  211. {?enum?{?value?=?aggregate_traits<K,V>::has_trivial_assign};};??
  212. //?---------------------------------------??
  213. };?//?namespace?android??
  214. //?---------------------------------------??
  215. #endif?//?ANDROID_TYPE_HELPERS_H??

4.编译中出现 make: *** No rule to make target `/cygdrive/e/workspace/myffmpeg/obj/local/armeabi/libjniaudio.so', needed by `/cygdrive/e/workspace/myffmpeg/obj/local/armeabi/libmediaplayer.a'.? Stop. 需要把下载的ffmpeg中的libjniaudio.so和libjnivideo.so放到错误中指定的目录下。

?

5. 编译成功后运行的结果如下:

????

?

当点击媒体文件播放时,发现画面显示不正常,如下所示:

?

调试后发现MediaPlayer.cpp中没有像Android自带播放器一样实现OnVideoSizeChangedListener的回调函数,当播放视图(SurfaceView)创建后没有根据实际播放的视频大小做调整,而且画面没有居中显示,所以我在此基础上做了如下改进

1. 实现OnVideoSizeChangedListener接口,通知播放界面调整大小

2. 播放界面剧中显示,等比率缩放视频大小。

3. 实现Seek功能

  • 3.1 要实现getCurrentPosition(), 因为拖动时传过来的是时间millisecond
  • 3.2 把milli second转化成timestamp掉用av_seek...
  • 3.3 在IDecoder类里面加入flush函数,实际上就是seek的时候把队列里的AVPacket清除掉
  • 3.4 通过av_gettime()函数作为外部参考时钟,实现音视频同步,需要hurryup和实现drop frame的处理。

?


下面是调整后播放flv(h264+aac)格式(分辨率为320*240,25帧/S)的结果,软解播放达到平均22帧/s

?

?

其它wmv,ts流,avi等格式均可播放,但是音质效果需要改进。

?

最近的进展情况:

?

1. 实现ffmpeg播放的回调接口,可以通知界面刷新状态,如去掉缓冲提示等。?

public interface IFFMpegPlayer {
??? ?public void onPlay();
??? ?public void onStop();
??? ?public void onRelease();
??? ?public void onError(String msg, Exception e);
??? }

2. 定制话播放控制栏界面,效果如下:

?

替换ffmpeg自带的控制栏界面

?

如何支持http网络播放,需要config.h里enable相关选项,我的配置参考如下:

[cpp] view plaincopy
  1. /*?Automatically?generated?by?configure?-?do?not?modify!?*/??
  2. #ifndef?FFMPEG_CONFIG_H??
  3. #define?FFMPEG_CONFIG_H??
  4. #define?FFMPEG_CONFIGURATION?"--target-os=linux?--arch=armv41?--enable-cross-compile?--cc=/home/petr/projects/android_api/ndk/android-ndk-1.6_r1/build/prebuilt/linux-x86/arm-eabi-4.2.1/bin/arm-eabi-gcc?--cross-prefix=/home/petr/projects/android_api/ndk/android-ndk-1.6_r1/build/prebuilt/linux-x86/arm-eabi-4.2.1/bin/arm-eabi-?--nm=/home/petr/projects/android_api/ndk/android-ndk-1.6_r1/build/prebuilt/linux-x86/arm-eabi-4.2.1/bin/arm-eabi-nm?--extra-cflags='-fPIC?-DANDROID'?--enable-static?--disable-shared?--disable-asm?--disable-yasm?--prefix=/home/ffmpeg-android-bin?--extra-ldflags='-Wl,-T,/home/petr/projects/android_api/ndk/android-ndk-1.6_r1/build/prebuilt/linux-x86/arm-eabi-4.2.1/arm-eabi/lib/ldscripts/armelf.x?-Wl,-rpath-link=/home/petr/projects/android_api/ndk/android-ndk-1.6_r1/build/platforms/android-4/arch-arm/usr/lib?-L/home/petr/projects/android_api/ndk/android-ndk-1.6_r1/build/platforms/android-4/arch-arm/usr/lib?-nostdlib?/home/petr/projects/android_api/ndk/android-ndk-1.6_r1/build/prebuilt/linux-x86/arm-eabi-4.2.1/lib/gcc/arm-eabi/4.2.1/crtbegin.o?/home/petr/projects/android_api/ndk/android-ndk-1.6_r1/build/prebuilt/linux-x86/arm-eabi-4.2.1/lib/gcc/arm-eabi/4.2.1/crtend.o?-lc?-lm?-ldl'"??
  5. #define?FFMPEG_LICENSE?"LGPL?version?2.1?or?later"??
  6. #define?FFMPEG_DATADIR?"/home/ffmpeg-android-bin/share/ffmpeg"??
  7. #define?CC_TYPE?"gcc"??
  8. #define?CC_VERSION?__VERSION__??
  9. #define?restrict?restrict??
  10. #define?ASMALIGN(ZEROBITS)?".p2align?"?#ZEROBITS?"/n/t"??
  11. #define?EXTERN_PREFIX?""??
  12. #define?EXTERN_ASM???
  13. #define?ARCH_ALPHA?0??
  14. #define?ARCH_ARM?0??
  15. #define?ARCH_AVR32?0??
  16. #define?ARCH_AVR32_AP?0??
  17. #define?ARCH_AVR32_UC?0??
  18. #define?ARCH_BFIN?0??
  19. #define?ARCH_IA64?0??
  20. #define?ARCH_M68K?0??
  21. #define?ARCH_MIPS?0??
  22. #define?ARCH_MIPS64?0??
  23. #define?ARCH_PARISC?0??
  24. #define?ARCH_PPC?0??
  25. #define?ARCH_PPC64?0??
  26. #define?ARCH_S390?0??
  27. #define?ARCH_SH4?0??
  28. #define?ARCH_SPARC?0??
  29. #define?ARCH_SPARC64?0??
  30. #define?ARCH_TOMI?0??
  31. #define?ARCH_X86?0??
  32. #define?ARCH_X86_32?0??
  33. #define?ARCH_X86_64?0??
  34. #define?HAVE_ALTIVEC?0??
  35. #define?HAVE_AMD3DNOW?0??
  36. #define?HAVE_AMD3DNOWEXT?0??
  37. #define?HAVE_ARMV5TE?0??
  38. #define?HAVE_ARMV6?0??
  39. #define?HAVE_ARMV6T2?0??
  40. #define?HAVE_ARMVFP?0??
  41. #define?HAVE_IWMMXT?0??
  42. #define?HAVE_MMI?0??
  43. #define?HAVE_MMX?0??
  44. #define?HAVE_MMX2?0??
  45. #define?HAVE_NEON?0??
  46. #define?HAVE_PPC4XX?0??
  47. #define?HAVE_SSE?0??
  48. #define?HAVE_SSSE3?0??
  49. #define?HAVE_VIS?0??
  50. #define?HAVE_BIGENDIAN?0??
  51. #define?HAVE_BEOSTHREADS?0??
  52. #define?HAVE_OS2THREADS?0??
  53. #define?HAVE_PTHREADS?0??
  54. #define?HAVE_W32THREADS?0??
  55. #define?HAVE_ALSA_ASOUNDLIB_H?0??
  56. #define?HAVE_ALTIVEC_H?0??
  57. #define?HAVE_ARPA_INET_H?0??
  58. #define?HAVE_ATTRIBUTE_MAY_ALIAS?1??
  59. #define?HAVE_ATTRIBUTE_PACKED?1??
  60. #define?HAVE_BSWAP?0??
  61. #define?HAVE_CLOSESOCKET?0??
  62. #define?HAVE_CMOV?0??
  63. #define?HAVE_CONIO_H?0??
  64. #define?HAVE_DCBZL?0??
  65. #define?HAVE_DEV_BKTR_IOCTL_BT848_H?0??
  66. #define?HAVE_DEV_BKTR_IOCTL_METEOR_H?0??
  67. #define?HAVE_DEV_IC_BT8XX_H?0??
  68. #define?HAVE_DEV_VIDEO_METEOR_IOCTL_METEOR_H?0??
  69. #define?HAVE_DEV_VIDEO_BKTR_IOCTL_BT848_H?0??
  70. #define?HAVE_DLFCN_H?0??
  71. #define?HAVE_DLOPEN?1??
  72. #define?HAVE_DOS_PATHS?0??
  73. #define?HAVE_EBP_AVAILABLE?0??
  74. #define?HAVE_EBX_AVAILABLE?0??
  75. #define?HAVE_EXP2?0??
  76. #define?HAVE_EXP2F?0??
  77. #define?HAVE_FAST_64BIT?0??
  78. #define?HAVE_FAST_CLZ?1??
  79. #define?HAVE_FAST_CMOV?0??
  80. #define?HAVE_FAST_UNALIGNED?0??
  81. #define?HAVE_FORK?1??
  82. #define?HAVE_GETADDRINFO?1??
  83. #define?HAVE_GETHRTIME?0??
  84. #define?HAVE_GETPROCESSMEMORYINFO?0??
  85. #define?HAVE_GETPROCESSTIMES?0??
  86. #define?HAVE_GETRUSAGE?0??
  87. #define?HAVE_STRUCT_RUSAGE_RU_MAXRSS?0??
  88. #define?HAVE_INET_ATON?1??
  89. #define?HAVE_INLINE_ASM?1??
  90. #define?HAVE_ISATTY?1??
  91. #define?HAVE_LDBRX?0??
  92. #define?HAVE_LIBDC1394_1?0??
  93. #define?HAVE_LIBDC1394_2?0??
  94. #define?HAVE_LOCAL_ALIGNED_16?0??
  95. #define?HAVE_LOCAL_ALIGNED_8?0??
  96. #define?HAVE_LOG2?0??
  97. #define?HAVE_LOG2F?0??
  98. #define?HAVE_LOONGSON?0??
  99. #define?HAVE_LRINT?0??
  100. #define?HAVE_LRINTF?0??
  101. #define?HAVE_LZO1X_999_COMPRESS?0??
  102. #define?HAVE_MACHINE_IOCTL_BT848_H?0??
  103. #define?HAVE_MACHINE_IOCTL_METEOR_H?0??
  104. #define?HAVE_MALLOC_H?0??
  105. #define?HAVE_MEMALIGN?1??
  106. #define?HAVE_MKSTEMP?1??
  107. #define?HAVE_PLD?1??
  108. #define?HAVE_POSIX_MEMALIGN?0??
  109. #define?HAVE_ROUND?0??
  110. #define?HAVE_ROUNDF?0??
  111. #define?HAVE_SDL?0??
  112. #define?HAVE_SDL_VIDEO_SIZE?0??
  113. #define?HAVE_SETMODE?0??
  114. #define?HAVE_SOCKLEN_T?1??
  115. #define?HAVE_SOUNDCARD_H?0??
  116. #define?HAVE_POLL_H?0??
  117. #define?HAVE_SETRLIMIT?0??
  118. #define?HAVE_STRERROR_R?1??
  119. #define?HAVE_STRUCT_ADDRINFO?1??
  120. #define?HAVE_STRUCT_IPV6_MREQ?0??
  121. #define?HAVE_STRUCT_SOCKADDR_IN6?0??
  122. #define?HAVE_STRUCT_SOCKADDR_SA_LEN?0??
  123. #define?HAVE_STRUCT_SOCKADDR_STORAGE?1??
  124. #define?HAVE_SYMVER?1??
  125. #define?HAVE_SYMVER_GNU_ASM?1??
  126. #define?HAVE_SYMVER_ASM_LABEL?0??
  127. #define?HAVE_SYS_MMAN_H?0??
  128. #define?HAVE_SYS_RESOURCE_H?0??
  129. #define?HAVE_SYS_SELECT_H?0??
  130. #define?HAVE_SYS_SOUNDCARD_H?0??
  131. #define?HAVE_SYS_VIDEOIO_H?0??
  132. #define?HAVE_TEN_OPERANDS?0??
  133. #define?HAVE_TERMIOS_H?0??
  134. #define?HAVE_THREADS?0??
  135. #define?HAVE_TRUNCF?0??
  136. #define?HAVE_VFP_ARGS?1??
  137. #define?HAVE_VIRTUALALLOC?0??
  138. #define?HAVE_WINSOCK2_H?0??
  139. #define?HAVE_XFORM_ASM?0??
  140. #define?HAVE_YASM?0??
  141. #define?CONFIG_BSFS?1??
  142. #define?CONFIG_DECODERS?1??
  143. #define?CONFIG_DEMUXERS?1??
  144. #define?CONFIG_ENCODERS?1??
  145. #define?CONFIG_FILTERS?1??
  146. #define?CONFIG_HWACCELS?0??
  147. #define?CONFIG_INDEVS?1??
  148. #define?CONFIG_MUXERS?1??
  149. #define?CONFIG_OUTDEVS?0??
  150. #define?CONFIG_PARSERS?1??
  151. #define?CONFIG_PROTOCOLS?1??
  152. #define?CONFIG_AANDCT?1??
  153. #define?CONFIG_AVCODEC?1??
  154. #define?CONFIG_AVDEVICE?0??
  155. #define?CONFIG_AVFILTER?0??
  156. #define?CONFIG_AVFILTER_LAVF?0??
  157. #define?CONFIG_AVFORMAT?1??
  158. #define?CONFIG_AVISYNTH?0??
  159. #define?CONFIG_BZLIB?0??
  160. #define?CONFIG_DCT?1??
  161. #define?CONFIG_DOC?0??
  162. #define?CONFIG_DWT?1??
  163. #define?CONFIG_DXVA2?0??
  164. #define?CONFIG_FASTDIV?1??
  165. #define?CONFIG_FFMPEG?1??
  166. #define?CONFIG_FFPLAY?0??
  167. #define?CONFIG_FFPROBE?1??
  168. #define?CONFIG_FFSERVER?0??
  169. #define?CONFIG_FFT?1??
  170. #define?CONFIG_GOLOMB?1??
  171. #define?CONFIG_GPL?0??
  172. #define?CONFIG_GPROF?0??
  173. #define?CONFIG_GRAY?0??
  174. #define?CONFIG_H264DSP?1??
  175. #define?CONFIG_HARDCODED_TABLES?0??
  176. #define?CONFIG_LIBDC1394?0??
  177. #define?CONFIG_LIBDIRAC?0??
  178. #define?CONFIG_LIBFAAC?0??
  179. #define?CONFIG_LIBGSM?0??
  180. #define?CONFIG_LIBMP3LAME?0??
  181. #define?CONFIG_LIBNUT?0??
  182. #define?CONFIG_LIBOPENCORE_AMRNB?0??
  183. #define?CONFIG_LIBOPENCORE_AMRWB?0??
  184. #define?CONFIG_LIBOPENJPEG?0??
  185. #define?CONFIG_LIBRTMP?0??
  186. #define?CONFIG_LIBSCHROEDINGER?0??
  187. #define?CONFIG_LIBSPEEX?0??
  188. #define?CONFIG_LIBTHEORA?0??
  189. #define?CONFIG_LIBVORBIS?0??
  190. #define?CONFIG_LIBVPX?0??
  191. #define?CONFIG_LIBX264?0??
  192. #define?CONFIG_LIBXVID?0??
  193. #define?CONFIG_LPC?1??
  194. #define?CONFIG_LSP?1??
  195. #define?CONFIG_MDCT?1??
  196. #define?CONFIG_MEMALIGN_HACK?0??
  197. #define?CONFIG_MLIB?0??
  198. #define?CONFIG_MPEGAUDIO_HP?1??
  199. #define?CONFIG_NETWORK?1??
  200. #define?CONFIG_NONFREE?0??
  201. #define?CONFIG_PIC?0??
  202. #define?CONFIG_POSTPROC?0??
  203. #define?CONFIG_POWERPC_PERF?0??
  204. #define?CONFIG_RDFT?1??
  205. #define?CONFIG_RUNTIME_CPUDETECT?0??
  206. #define?CONFIG_SHARED?0??
  207. #define?CONFIG_SMALL?0??
  208. #define?CONFIG_SRAM?0??
  209. #define?CONFIG_STATIC?1??
  210. #define?CONFIG_SWSCALE?1??
  211. #define?CONFIG_SWSCALE_ALPHA?1??
  212. #define?CONFIG_VAAPI?0??
  213. #define?CONFIG_VDPAU?0??
  214. #define?CONFIG_VERSION3?0??
  215. #define?CONFIG_X11GRAB?0??
  216. #define?CONFIG_ZLIB?0??
  217. #define?CONFIG_AVUTIL?1??
  218. #define?CONFIG_GPLV3?0??
  219. #define?CONFIG_LGPLV3?0??
  220. #define?CONFIG_AASC_DECODER?1??
  221. #define?CONFIG_AMV_DECODER?1??
  222. #define?CONFIG_ANM_DECODER?1??
  223. #define?CONFIG_ASV1_DECODER?1??
  224. #define?CONFIG_ASV2_DECODER?1??
  225. #define?CONFIG_AURA_DECODER?1??
  226. #define?CONFIG_AURA2_DECODER?1??
  227. #define?CONFIG_AVS_DECODER?1??
  228. #define?CONFIG_BETHSOFTVID_DECODER?1??
  229. #define?CONFIG_BFI_DECODER?1??
  230. #define?CONFIG_BINK_DECODER?1??
  231. #define?CONFIG_BMP_DECODER?1??
  232. #define?CONFIG_C93_DECODER?1??
  233. #define?CONFIG_CAVS_DECODER?1??
  234. #define?CONFIG_CDGRAPHICS_DECODER?1??
  235. #define?CONFIG_CINEPAK_DECODER?1??
  236. #define?CONFIG_CLJR_DECODER?1??
  237. #define?CONFIG_CSCD_DECODER?1??
  238. #define?CONFIG_CYUV_DECODER?1??
  239. #define?CONFIG_DNXHD_DECODER?1??
  240. #define?CONFIG_DPX_DECODER?1??
  241. #define?CONFIG_DSICINVIDEO_DECODER?1??
  242. #define?CONFIG_DVVIDEO_DECODER?1??
  243. #define?CONFIG_DXA_DECODER?0??
  244. #define?CONFIG_EACMV_DECODER?1??
  245. #define?CONFIG_EAMAD_DECODER?1??
  246. #define?CONFIG_EATGQ_DECODER?1??
  247. #define?CONFIG_EATGV_DECODER?1??
  248. #define?CONFIG_EATQI_DECODER?1??
  249. #define?CONFIG_EIGHTBPS_DECODER?1??
  250. #define?CONFIG_EIGHTSVX_EXP_DECODER?1??
  251. #define?CONFIG_EIGHTSVX_FIB_DECODER?1??
  252. #define?CONFIG_ESCAPE124_DECODER?1??
  253. #define?CONFIG_FFV1_DECODER?1??
  254. #define?CONFIG_FFVHUFF_DECODER?1??
  255. #define?CONFIG_FLASHSV_DECODER?0??
  256. #define?CONFIG_FLIC_DECODER?1??
  257. #define?CONFIG_FLV_DECODER?1??
  258. #define?CONFIG_FOURXM_DECODER?1??
  259. #define?CONFIG_FRAPS_DECODER?1??
  260. #define?CONFIG_FRWU_DECODER?1??
  261. #define?CONFIG_GIF_DECODER?1??
  262. #define?CONFIG_H261_DECODER?1??
  263. #define?CONFIG_H263_DECODER?1??
  264. #define?CONFIG_H263I_DECODER?1??
  265. #define?CONFIG_H264_DECODER?1??
  266. #define?CONFIG_H264_VDPAU_DECODER?0??
  267. #define?CONFIG_HUFFYUV_DECODER?1??
  268. #define?CONFIG_IDCIN_DECODER?1??
  269. #define?CONFIG_IFF_BYTERUN1_DECODER?1??
  270. #define?CONFIG_IFF_ILBM_DECODER?1??
  271. #define?CONFIG_INDEO2_DECODER?1??
  272. #define?CONFIG_INDEO3_DECODER?1??
  273. #define?CONFIG_INDEO5_DECODER?1??
  274. #define?CONFIG_INTERPLAY_VIDEO_DECODER?1??
  275. #define?CONFIG_JPEGLS_DECODER?1??
  276. #define?CONFIG_KGV1_DECODER?1??
  277. #define?CONFIG_KMVC_DECODER?1??
  278. #define?CONFIG_LOCO_DECODER?1??
  279. #define?CONFIG_MDEC_DECODER?1??
  280. #define?CONFIG_MIMIC_DECODER?1??
  281. #define?CONFIG_MJPEG_DECODER?1??
  282. #define?CONFIG_MJPEGB_DECODER?1??
  283. #define?CONFIG_MMVIDEO_DECODER?1??
  284. #define?CONFIG_MOTIONPIXELS_DECODER?1??
  285. #define?CONFIG_MPEG_XVMC_DECODER?0??
  286. #define?CONFIG_MPEG1VIDEO_DECODER?1??
  287. #define?CONFIG_MPEG2VIDEO_DECODER?1??
  288. #define?CONFIG_MPEG4_DECODER?1??
  289. #define?CONFIG_MPEG4_VDPAU_DECODER?0??
  290. #define?CONFIG_MPEGVIDEO_DECODER?1??
  291. #define?CONFIG_MPEG_VDPAU_DECODER?0??
  292. #define?CONFIG_MPEG1_VDPAU_DECODER?0??
  293. #define?CONFIG_MSMPEG4V1_DECODER?1??
  294. #define?CONFIG_MSMPEG4V2_DECODER?1??
  295. #define?CONFIG_MSMPEG4V3_DECODER?1??
  296. #define?CONFIG_MSRLE_DECODER?1??
  297. #define?CONFIG_MSVIDEO1_DECODER?1??
  298. #define?CONFIG_MSZH_DECODER?1??
  299. #define?CONFIG_NUV_DECODER?1??
  300. #define?CONFIG_PAM_DECODER?1??
  301. #define?CONFIG_PBM_DECODER?1??
  302. #define?CONFIG_PCX_DECODER?1??
  303. #define?CONFIG_PGM_DECODER?1??
  304. #define?CONFIG_PGMYUV_DECODER?1??
  305. #define?CONFIG_PICTOR_DECODER?1??
  306. #define?CONFIG_PNG_DECODER?0??
  307. #define?CONFIG_PPM_DECODER?1??
  308. #define?CONFIG_PTX_DECODER?1??
  309. #define?CONFIG_QDRAW_DECODER?1??
  310. #define?CONFIG_QPEG_DECODER?1??
  311. #define?CONFIG_QTRLE_DECODER?1??
  312. #define?CONFIG_R210_DECODER?1??
  313. #define?CONFIG_RAWVIDEO_DECODER?1??
  314. #define?CONFIG_RL2_DECODER?1??
  315. #define?CONFIG_ROQ_DECODER?1??
  316. #define?CONFIG_RPZA_DECODER?1??
  317. #define?CONFIG_RV10_DECODER?1??
  318. #define?CONFIG_RV20_DECODER?1??
  319. #define?CONFIG_RV30_DECODER?1??
  320. #define?CONFIG_RV40_DECODER?1??
  321. #define?CONFIG_SGI_DECODER?1??
  322. #define?CONFIG_SMACKER_DECODER?1??
  323. #define?CONFIG_SMC_DECODER?1??
  324. #define?CONFIG_SNOW_DECODER?1??
  325. #define?CONFIG_SP5X_DECODER?1??
  326. #define?CONFIG_SUNRAST_DECODER?1??
  327. #define?CONFIG_SVQ1_DECODER?1??
  328. #define?CONFIG_SVQ3_DECODER?1??
  329. #define?CONFIG_TARGA_DECODER?1??
  330. #define?CONFIG_THEORA_DECODER?1??
  331. #define?CONFIG_THP_DECODER?1??
  332. #define?CONFIG_TIERTEXSEQVIDEO_DECODER?1??
  333. #define?CONFIG_TIFF_DECODER?1??
  334. #define?CONFIG_TMV_DECODER?1??
  335. #define?CONFIG_TRUEMOTION1_DECODER?1??
  336. #define?CONFIG_TRUEMOTION2_DECODER?1??
  337. #define?CONFIG_TSCC_DECODER?0??
  338. #define?CONFIG_TXD_DECODER?1??
  339. #define?CONFIG_ULTI_DECODER?1??
  340. #define?CONFIG_V210_DECODER?1??
  341. #define?CONFIG_V210X_DECODER?1??
  342. #define?CONFIG_VB_DECODER?1??
  343. #define?CONFIG_VC1_DECODER?1??
  344. #define?CONFIG_VC1_VDPAU_DECODER?0??
  345. #define?CONFIG_VCR1_DECODER?1??
  346. #define?CONFIG_VMDVIDEO_DECODER?1??
  347. #define?CONFIG_VMNC_DECODER?1??
  348. #define?CONFIG_VP3_DECODER?1??
  349. #define?CONFIG_VP5_DECODER?1??
  350. #define?CONFIG_VP6_DECODER?1??
  351. #define?CONFIG_VP6A_DECODER?1??
  352. #define?CONFIG_VP6F_DECODER?1??
  353. #define?CONFIG_VQA_DECODER?1??
  354. #define?CONFIG_WMV1_DECODER?1??
  355. #define?CONFIG_WMV2_DECODER?1??
  356. #define?CONFIG_WMV3_DECODER?1??
  357. #define?CONFIG_WMV3_VDPAU_DECODER?0??
  358. #define?CONFIG_WNV1_DECODER?1??
  359. #define?CONFIG_XAN_WC3_DECODER?1??
  360. #define?CONFIG_XL_DECODER?1??
  361. #define?CONFIG_YOP_DECODER?1??
  362. #define?CONFIG_ZLIB_DECODER?0??
  363. #define?CONFIG_ZMBV_DECODER?0??
  364. #define?CONFIG_AAC_DECODER?1??
  365. #define?CONFIG_AC3_DECODER?1??
  366. #define?CONFIG_ALAC_DECODER?1??
  367. #define?CONFIG_ALS_DECODER?1??
  368. #define?CONFIG_AMRNB_DECODER?1??
  369. #define?CONFIG_APE_DECODER?1??
  370. #define?CONFIG_ATRAC1_DECODER?1??
  371. #define?CONFIG_ATRAC3_DECODER?1??
  372. #define?CONFIG_BINKAUDIO_DCT_DECODER?1??
  373. #define?CONFIG_BINKAUDIO_RDFT_DECODER?1??
  374. #define?CONFIG_COOK_DECODER?1??
  375. #define?CONFIG_DCA_DECODER?1??
  376. #define?CONFIG_DSICINAUDIO_DECODER?1??
  377. #define?CONFIG_EAC3_DECODER?1??
  378. #define?CONFIG_FLAC_DECODER?1??
  379. #define?CONFIG_IMC_DECODER?1??
  380. #define?CONFIG_MACE3_DECODER?1??
  381. #define?CONFIG_MACE6_DECODER?1??
  382. #define?CONFIG_MLP_DECODER?1??
  383. #define?CONFIG_MP1_DECODER?1??
  384. #define?CONFIG_MP1FLOAT_DECODER?1??
  385. #define?CONFIG_MP2_DECODER?1??
  386. #define?CONFIG_MP2FLOAT_DECODER?1??
  387. #define?CONFIG_MP3_DECODER?1??
  388. #define?CONFIG_MP3FLOAT_DECODER?1??
  389. #define?CONFIG_MP3ADU_DECODER?1??
  390. #define?CONFIG_MP3ADUFLOAT_DECODER?1??
  391. #define?CONFIG_MP3ON4_DECODER?1??
  392. #define?CONFIG_MP3ON4FLOAT_DECODER?1??
  393. #define?CONFIG_MPC7_DECODER?1??
  394. #define?CONFIG_MPC8_DECODER?1??
  395. #define?CONFIG_NELLYMOSER_DECODER?1??
  396. #define?CONFIG_QCELP_DECODER?1??
  397. #define?CONFIG_QDM2_DECODER?1??
  398. #define?CONFIG_RA_144_DECODER?1??
  399. #define?CONFIG_RA_288_DECODER?1??
  400. #define?CONFIG_SHORTEN_DECODER?1??
  401. #define?CONFIG_SIPR_DECODER?1??
  402. #define?CONFIG_SMACKAUD_DECODER?1??
  403. #define?CONFIG_SONIC_DECODER?1??
  404. #define?CONFIG_TRUEHD_DECODER?1??
  405. #define?CONFIG_TRUESPEECH_DECODER?1??
  406. #define?CONFIG_TTA_DECODER?1??
  407. #define?CONFIG_TWINVQ_DECODER?1??
  408. #define?CONFIG_VMDAUDIO_DECODER?1??
  409. #define?CONFIG_VORBIS_DECODER?1??
  410. #define?CONFIG_WAVPACK_DECODER?1??
  411. #define?CONFIG_WMAPRO_DECODER?1??
  412. #define?CONFIG_WMAV1_DECODER?1??
  413. #define?CONFIG_WMAV2_DECODER?1??
  414. #define?CONFIG_WMAVOICE_DECODER?1??
  415. #define?CONFIG_WS_SND1_DECODER?1??
  416. #define?CONFIG_PCM_ALAW_DECODER?1??
  417. #define?CONFIG_PCM_BLURAY_DECODER?1??
  418. #define?CONFIG_PCM_DVD_DECODER?1??
  419. #define?CONFIG_PCM_F32BE_DECODER?1??
  420. #define?CONFIG_PCM_F32LE_DECODER?1??
  421. #define?CONFIG_PCM_F64BE_DECODER?1??
  422. #define?CONFIG_PCM_F64LE_DECODER?1??
  423. #define?CONFIG_PCM_MULAW_DECODER?1??
  424. #define?CONFIG_PCM_S8_DECODER?1??
  425. #define?CONFIG_PCM_S16BE_DECODER?1??
  426. #define?CONFIG_PCM_S16LE_DECODER?1??
  427. #define?CONFIG_PCM_S16LE_PLANAR_DECODER?1??
  428. #define?CONFIG_PCM_S24BE_DECODER?1??
  429. #define?CONFIG_PCM_S24DAUD_DECODER?1??
  430. #define?CONFIG_PCM_S24LE_DECODER?1??
  431. #define?CONFIG_PCM_S32BE_DECODER?1??
  432. #define?CONFIG_PCM_S32LE_DECODER?1??
  433. #define?CONFIG_PCM_U8_DECODER?1??
  434. #define?CONFIG_PCM_U16BE_DECODER?1??
  435. #define?CONFIG_PCM_U16LE_DECODER?1??
  436. #define?CONFIG_PCM_U24BE_DECODER?1??
  437. #define?CONFIG_PCM_U24LE_DECODER?1??
  438. #define?CONFIG_PCM_U32BE_DECODER?1??
  439. #define?CONFIG_PCM_U32LE_DECODER?1??
  440. #define?CONFIG_PCM_ZORK_DECODER?1??
  441. #define?CONFIG_INTERPLAY_DPCM_DECODER?1??
  442. #define?CONFIG_ROQ_DPCM_DECODER?1??
  443. #define?CONFIG_SOL_DPCM_DECODER?1??
  444. #define?CONFIG_XAN_DPCM_DECODER?1??
  445. #define?CONFIG_ADPCM_4XM_DECODER?1??
  446. #define?CONFIG_ADPCM_ADX_DECODER?1??
  447. #define?CONFIG_ADPCM_CT_DECODER?1??
  448. #define?CONFIG_ADPCM_EA_DECODER?1??
  449. #define?CONFIG_ADPCM_EA_MAXIS_XA_DECODER?1??
  450. #define?CONFIG_ADPCM_EA_R1_DECODER?1??
  451. #define?CONFIG_ADPCM_EA_R2_DECODER?1??
  452. #define?CONFIG_ADPCM_EA_R3_DECODER?1??
  453. #define?CONFIG_ADPCM_EA_XAS_DECODER?1??
  454. #define?CONFIG_ADPCM_G726_DECODER?1??
  455. #define?CONFIG_ADPCM_IMA_AMV_DECODER?1??
  456. #define?CONFIG_ADPCM_IMA_DK3_DECODER?1??
  457. #define?CONFIG_ADPCM_IMA_DK4_DECODER?1??
  458. #define?CONFIG_ADPCM_IMA_EA_EACS_DECODER?1??
  459. #define?CONFIG_ADPCM_IMA_EA_SEAD_DECODER?1??
  460. #define?CONFIG_ADPCM_IMA_ISS_DECODER?1??
  461. #define?CONFIG_ADPCM_IMA_QT_DECODER?1??
  462. #define?CONFIG_ADPCM_IMA_SMJPEG_DECODER?1??
  463. #define?CONFIG_ADPCM_IMA_WAV_DECODER?1??
  464. #define?CONFIG_ADPCM_IMA_WS_DECODER?1??
  465. #define?CONFIG_ADPCM_MS_DECODER?1??
  466. #define?CONFIG_ADPCM_SBPRO_2_DECODER?1??
  467. #define?CONFIG_ADPCM_SBPRO_3_DECODER?1??
  468. #define?CONFIG_ADPCM_SBPRO_4_DECODER?1??
  469. #define?CONFIG_ADPCM_SWF_DECODER?1??
  470. #define?CONFIG_ADPCM_THP_DECODER?1??
  471. #define?CONFIG_ADPCM_XA_DECODER?1??
  472. #define?CONFIG_ADPCM_YAMAHA_DECODER?1??
  473. #define?CONFIG_DVBSUB_DECODER?1??
  474. #define?CONFIG_DVDSUB_DECODER?1??
  475. #define?CONFIG_PGSSUB_DECODER?1??
  476. #define?CONFIG_XSUB_DECODER?1??
  477. #define?CONFIG_LIBDIRAC_DECODER?0??
  478. #define?CONFIG_LIBGSM_DECODER?0??
  479. #define?CONFIG_LIBGSM_MS_DECODER?0??
  480. #define?CONFIG_LIBOPENCORE_AMRNB_DECODER?0??
  481. #define?CONFIG_LIBOPENCORE_AMRWB_DECODER?0??
  482. #define?CONFIG_LIBOPENJPEG_DECODER?0??
  483. #define?CONFIG_LIBSCHROEDINGER_DECODER?0??
  484. #define?CONFIG_LIBSPEEX_DECODER?0??
  485. #define?CONFIG_LIBVPX_DECODER?0??
  486. #define?CONFIG_ASV1_ENCODER?1??
  487. #define?CONFIG_ASV2_ENCODER?1??
  488. #define?CONFIG_BMP_ENCODER?1??
  489. #define?CONFIG_DNXHD_ENCODER?1??
  490. #define?CONFIG_DVVIDEO_ENCODER?1??
  491. #define?CONFIG_FFV1_ENCODER?1??
  492. #define?CONFIG_FFVHUFF_ENCODER?1??
  493. #define?CONFIG_FLASHSV_ENCODER?0??
  494. #define?CONFIG_FLV_ENCODER?1??
  495. #define?CONFIG_GIF_ENCODER?1??
  496. #define?CONFIG_H261_ENCODER?1??
  497. #define?CONFIG_H263_ENCODER?1??
  498. #define?CONFIG_H263P_ENCODER?1??
  499. #define?CONFIG_HUFFYUV_ENCODER?1??
  500. #define?CONFIG_JPEGLS_ENCODER?1??
  501. #define?CONFIG_LJPEG_ENCODER?1??
  502. #define?CONFIG_MJPEG_ENCODER?1??
  503. #define?CONFIG_MPEG1VIDEO_ENCODER?1??
  504. #define?CONFIG_MPEG2VIDEO_ENCODER?1??
  505. #define?CONFIG_MPEG4_ENCODER?1??
  506. #define?CONFIG_MSMPEG4V1_ENCODER?1??
  507. #define?CONFIG_MSMPEG4V2_ENCODER?1??
  508. #define?CONFIG_MSMPEG4V3_ENCODER?1??
  509. #define?CONFIG_PAM_ENCODER?1??
  510. #define?CONFIG_PBM_ENCODER?1??
  511. #define?CONFIG_PCX_ENCODER?1??
  512. #define?CONFIG_PGM_ENCODER?1??
  513. #define?CONFIG_PGMYUV_ENCODER?1??
  514. #define?CONFIG_PNG_ENCODER?0??
  515. #define?CONFIG_PPM_ENCODER?1??
  516. #define?CONFIG_QTRLE_ENCODER?1??
  517. #define?CONFIG_RAWVIDEO_ENCODER?1??
  518. #define?CONFIG_ROQ_ENCODER?1??
  519. #define?CONFIG_RV10_ENCODER?1??
  520. #define?CONFIG_RV20_ENCODER?1??
  521. #define?CONFIG_SGI_ENCODER?1??
  522. #define?CONFIG_SNOW_ENCODER?1??
  523. #define?CONFIG_SVQ1_ENCODER?1??
  524. #define?CONFIG_TARGA_ENCODER?1??
  525. #define?CONFIG_TIFF_ENCODER?1??
  526. #define?CONFIG_V210_ENCODER?1??
  527. #define?CONFIG_WMV1_ENCODER?1??
  528. #define?CONFIG_WMV2_ENCODER?1??
  529. #define?CONFIG_ZLIB_ENCODER?0??
  530. #define?CONFIG_ZMBV_ENCODER?0??
  531. #define?CONFIG_AAC_ENCODER?1??
  532. #define?CONFIG_AC3_ENCODER?1??
  533. #define?CONFIG_ALAC_ENCODER?1??
  534. #define?CONFIG_FLAC_ENCODER?1??
  535. #define?CONFIG_MP2_ENCODER?1??
  536. #define?CONFIG_NELLYMOSER_ENCODER?1??
  537. #define?CONFIG_RA_144_ENCODER?1??
  538. #define?CONFIG_SONIC_ENCODER?1??
  539. #define?CONFIG_SONIC_LS_ENCODER?1??
  540. #define?CONFIG_VORBIS_ENCODER?1??
  541. #define?CONFIG_WMAV1_ENCODER?1??
  542. #define?CONFIG_WMAV2_ENCODER?1??
  543. #define?CONFIG_PCM_ALAW_ENCODER?1??
  544. #define?CONFIG_PCM_F32BE_ENCODER?1??
  545. #define?CONFIG_PCM_F32LE_ENCODER?1??
  546. #define?CONFIG_PCM_F64BE_ENCODER?1??
  547. #define?CONFIG_PCM_F64LE_ENCODER?1??
  548. #define?CONFIG_PCM_MULAW_ENCODER?1??
  549. #define?CONFIG_PCM_S8_ENCODER?1??
  550. #define?CONFIG_PCM_S16BE_ENCODER?1??
  551. #define?CONFIG_PCM_S16LE_ENCODER?1??
  552. #define?CONFIG_PCM_S24BE_ENCODER?1??
  553. #define?CONFIG_PCM_S24DAUD_ENCODER?1??
  554. #define?CONFIG_PCM_S24LE_ENCODER?1??
  555. #define?CONFIG_PCM_S32BE_ENCODER?1??
  556. #define?CONFIG_PCM_S32LE_ENCODER?1??
  557. #define?CONFIG_PCM_U8_ENCODER?1??
  558. #define?CONFIG_PCM_U16BE_ENCODER?1??
  559. #define?CONFIG_PCM_U16LE_ENCODER?1??
  560. #define?CONFIG_PCM_U24BE_ENCODER?1??
  561. #define?CONFIG_PCM_U24LE_ENCODER?1??
  562. #define?CONFIG_PCM_U32BE_ENCODER?1??
  563. #define?CONFIG_PCM_U32LE_ENCODER?1??
  564. #define?CONFIG_PCM_ZORK_ENCODER?1??
  565. #define?CONFIG_ROQ_DPCM_ENCODER?1??
  566. #define?CONFIG_ADPCM_ADX_ENCODER?1??
  567. #define?CONFIG_ADPCM_G726_ENCODER?1??
  568. #define?CONFIG_ADPCM_IMA_QT_ENCODER?1??
  569. #define?CONFIG_ADPCM_IMA_WAV_ENCODER?1??
  570. #define?CONFIG_ADPCM_MS_ENCODER?1??
  571. #define?CONFIG_ADPCM_SWF_ENCODER?1??
  572. #define?CONFIG_ADPCM_YAMAHA_ENCODER?1??
  573. #define?CONFIG_DVBSUB_ENCODER?1??
  574. #define?CONFIG_DVDSUB_ENCODER?1??
  575. #define?CONFIG_XSUB_ENCODER?1??
  576. #define?CONFIG_LIBDIRAC_ENCODER?0??
  577. #define?CONFIG_LIBFAAC_ENCODER?0??
  578. #define?CONFIG_LIBGSM_ENCODER?0??
  579. #define?CONFIG_LIBGSM_MS_ENCODER?0??
  580. #define?CONFIG_LIBMP3LAME_ENCODER?0??
  581. #define?CONFIG_LIBOPENCORE_AMRNB_ENCODER?0??
  582. #define?CONFIG_LIBSCHROEDINGER_ENCODER?0??
  583. #define?CONFIG_LIBTHEORA_ENCODER?0??
  584. #define?CONFIG_LIBVORBIS_ENCODER?0??
  585. #define?CONFIG_LIBVPX_ENCODER?0??
  586. #define?CONFIG_LIBX264_ENCODER?0??
  587. #define?CONFIG_LIBXVID_ENCODER?0??
  588. #define?CONFIG_H263_VAAPI_HWACCEL?0??
  589. #define?CONFIG_H264_DXVA2_HWACCEL?0??
  590. #define?CONFIG_H264_VAAPI_HWACCEL?0??
  591. #define?CONFIG_MPEG2_DXVA2_HWACCEL?0??
  592. #define?CONFIG_MPEG2_VAAPI_HWACCEL?0??
  593. #define?CONFIG_MPEG4_VAAPI_HWACCEL?0??
  594. #define?CONFIG_VC1_DXVA2_HWACCEL?0??
  595. #define?CONFIG_VC1_VAAPI_HWACCEL?0??
  596. #define?CONFIG_WMV3_DXVA2_HWACCEL?0??
  597. #define?CONFIG_WMV3_VAAPI_HWACCEL?0??
  598. #define?CONFIG_AAC_PARSER?1??
  599. #define?CONFIG_AC3_PARSER?1??
  600. #define?CONFIG_CAVSVIDEO_PARSER?1??
  601. #define?CONFIG_DCA_PARSER?1??
  602. #define?CONFIG_DIRAC_PARSER?1??
  603. #define?CONFIG_DNXHD_PARSER?1??
  604. #define?CONFIG_DVBSUB_PARSER?1??
  605. #define?CONFIG_DVDSUB_PARSER?1??
  606. #define?CONFIG_H261_PARSER?1??
  607. #define?CONFIG_H263_PARSER?1??
  608. #define?CONFIG_H264_PARSER?1??
  609. #define?CONFIG_MJPEG_PARSER?1??
  610. #define?CONFIG_MLP_PARSER?1??
  611. #define?CONFIG_MPEG4VIDEO_PARSER?1??
  612. #define?CONFIG_MPEGAUDIO_PARSER?1??
  613. #define?CONFIG_MPEGVIDEO_PARSER?1??
  614. #define?CONFIG_PNM_PARSER?1??
  615. #define?CONFIG_VC1_PARSER?1??
  616. #define?CONFIG_VP3_PARSER?1??
  617. #define?CONFIG_VP8_PARSER?1??
  618. #define?CONFIG_AAC_ADTSTOASC_BSF?1??
  619. #define?CONFIG_CHOMP_BSF?1??
  620. #define?CONFIG_DUMP_EXTRADATA_BSF?1??
  621. #define?CONFIG_H264_MP4TOANNEXB_BSF?1??
  622. #define?CONFIG_IMX_DUMP_HEADER_BSF?1??
  623. #define?CONFIG_MJPEGA_DUMP_HEADER_BSF?1??
  624. #define?CONFIG_MP3_HEADER_COMPRESS_BSF?1??
  625. #define?CONFIG_MP3_HEADER_DECOMPRESS_BSF?1??
  626. #define?CONFIG_MOV2TEXTSUB_BSF?1??
  627. #define?CONFIG_NOISE_BSF?1??
  628. #define?CONFIG_REMOVE_EXTRADATA_BSF?1??
  629. #define?CONFIG_TEXT2MOVSUB_BSF?1??
  630. #define?CONFIG_AAC_DEMUXER?1??
  631. #define?CONFIG_AC3_DEMUXER?1??
  632. #define?CONFIG_AEA_DEMUXER?1??
  633. #define?CONFIG_AIFF_DEMUXER?1??
  634. #define?CONFIG_AMR_DEMUXER?1??
  635. #define?CONFIG_ANM_DEMUXER?1??
  636. #define?CONFIG_APC_DEMUXER?1??
  637. #define?CONFIG_APE_DEMUXER?1??
  638. #define?CONFIG_ASF_DEMUXER?1??
  639. #define?CONFIG_ASS_DEMUXER?1??
  640. #define?CONFIG_AU_DEMUXER?1??
  641. #define?CONFIG_AVI_DEMUXER?1??
  642. #define?CONFIG_AVISYNTH_DEMUXER?0??
  643. #define?CONFIG_AVS_DEMUXER?1??
  644. #define?CONFIG_BETHSOFTVID_DEMUXER?1??
  645. #define?CONFIG_BFI_DEMUXER?1??
  646. #define?CONFIG_BINK_DEMUXER?1??
  647. #define?CONFIG_C93_DEMUXER?1??
  648. #define?CONFIG_CAF_DEMUXER?1??
  649. #define?CONFIG_CAVSVIDEO_DEMUXER?1??
  650. #define?CONFIG_CDG_DEMUXER?1??
  651. #define?CONFIG_DAUD_DEMUXER?1??
  652. #define?CONFIG_DIRAC_DEMUXER?1??
  653. #define?CONFIG_DNXHD_DEMUXER?1??
  654. #define?CONFIG_DSICIN_DEMUXER?1??
  655. #define?CONFIG_DTS_DEMUXER?1??
  656. #define?CONFIG_DV_DEMUXER?1??
  657. #define?CONFIG_DXA_DEMUXER?1??
  658. #define?CONFIG_EA_DEMUXER?1??
  659. #define?CONFIG_EA_CDATA_DEMUXER?1??
  660. #define?CONFIG_EAC3_DEMUXER?1??
  661. #define?CONFIG_FFM_DEMUXER?1??
  662. #define?CONFIG_FILMSTRIP_DEMUXER?1??
  663. #define?CONFIG_FLAC_DEMUXER?1??
  664. #define?CONFIG_FLIC_DEMUXER?1??
  665. #define?CONFIG_FLV_DEMUXER?1??
  666. #define?CONFIG_FOURXM_DEMUXER?1??
  667. #define?CONFIG_GSM_DEMUXER?1??
  668. #define?CONFIG_GXF_DEMUXER?1??
  669. #define?CONFIG_H261_DEMUXER?1??
  670. #define?CONFIG_H263_DEMUXER?1??
  671. #define?CONFIG_H264_DEMUXER?1??
  672. #define?CONFIG_IDCIN_DEMUXER?1??
  673. #define?CONFIG_IFF_DEMUXER?1??
  674. #define?CONFIG_IMAGE2_DEMUXER?1??
  675. #define?CONFIG_IMAGE2PIPE_DEMUXER?1??
  676. #define?CONFIG_INGENIENT_DEMUXER?1??
  677. #define?CONFIG_IPMOVIE_DEMUXER?1??
  678. #define?CONFIG_ISS_DEMUXER?1??
  679. #define?CONFIG_IV8_DEMUXER?1??
  680. #define?CONFIG_IVF_DEMUXER?1??
  681. #define?CONFIG_LMLM4_DEMUXER?1??
  682. #define?CONFIG_M4V_DEMUXER?1??
  683. #define?CONFIG_MATROSKA_DEMUXER?1??
  684. #define?CONFIG_MJPEG_DEMUXER?1??
  685. #define?CONFIG_MLP_DEMUXER?1??
  686. #define?CONFIG_MM_DEMUXER?1??
  687. #define?CONFIG_MMF_DEMUXER?1??
  688. #define?CONFIG_MOV_DEMUXER?1??
  689. #define?CONFIG_MP3_DEMUXER?1??
  690. #define?CONFIG_MPC_DEMUXER?1??
  691. #define?CONFIG_MPC8_DEMUXER?1??
  692. #define?CONFIG_MPEGPS_DEMUXER?1??
  693. #define?CONFIG_MPEGTS_DEMUXER?1??
  694. #define?CONFIG_MPEGTSRAW_DEMUXER?1??
  695. #define?CONFIG_MPEGVIDEO_DEMUXER?1??
  696. #define?CONFIG_MSNWC_TCP_DEMUXER?1??
  697. #define?CONFIG_MTV_DEMUXER?1??
  698. #define?CONFIG_MVI_DEMUXER?1??
  699. #define?CONFIG_MXF_DEMUXER?1??
  700. #define?CONFIG_NC_DEMUXER?1??
  701. #define?CONFIG_NSV_DEMUXER?1??
  702. #define?CONFIG_NUT_DEMUXER?1??
  703. #define?CONFIG_NUV_DEMUXER?1??
  704. #define?CONFIG_OGG_DEMUXER?0??
  705. #define?CONFIG_OMA_DEMUXER?1??
  706. #define?CONFIG_PCM_ALAW_DEMUXER?1??
  707. #define?CONFIG_PCM_MULAW_DEMUXER?1??
  708. #define?CONFIG_PCM_F64BE_DEMUXER?1??
  709. #define?CONFIG_PCM_F64LE_DEMUXER?1??
  710. #define?CONFIG_PCM_F32BE_DEMUXER?1??
  711. #define?CONFIG_PCM_F32LE_DEMUXER?1??
  712. #define?CONFIG_PCM_S32BE_DEMUXER?1??
  713. #define?CONFIG_PCM_S32LE_DEMUXER?1??
  714. #define?CONFIG_PCM_S24BE_DEMUXER?1??
  715. #define?CONFIG_PCM_S24LE_DEMUXER?1??
  716. #define?CONFIG_PCM_S16BE_DEMUXER?1??
  717. #define?CONFIG_PCM_S16LE_DEMUXER?1??
  718. #define?CONFIG_PCM_S8_DEMUXER?1??
  719. #define?CONFIG_PCM_U32BE_DEMUXER?1??
  720. #define?CONFIG_PCM_U32LE_DEMUXER?1??
  721. #define?CONFIG_PCM_U24BE_DEMUXER?1??
  722. #define?CONFIG_PCM_U24LE_DEMUXER?1??
  723. #define?CONFIG_PCM_U16BE_DEMUXER?1??
  724. #define?CONFIG_PCM_U16LE_DEMUXER?1??
  725. #define?CONFIG_PCM_U8_DEMUXER?1??
  726. #define?CONFIG_PVA_DEMUXER?1??
  727. #define?CONFIG_QCP_DEMUXER?1??
  728. #define?CONFIG_R3D_DEMUXER?1??
  729. #define?CONFIG_RAWVIDEO_DEMUXER?1??
  730. #define?CONFIG_RL2_DEMUXER?1??
  731. #define?CONFIG_RM_DEMUXER?1??
  732. #define?CONFIG_ROQ_DEMUXER?1??
  733. #define?CONFIG_RPL_DEMUXER?1??
  734. #define?CONFIG_RTSP_DEMUXER?0??
  735. #define?CONFIG_SDP_DEMUXER?0??
  736. #define?CONFIG_SEGAFILM_DEMUXER?1??
  737. #define?CONFIG_SHORTEN_DEMUXER?1??
  738. #define?CONFIG_SIFF_DEMUXER?1??
  739. #define?CONFIG_SMACKER_DEMUXER?1??
  740. #define?CONFIG_SOL_DEMUXER?1??
  741. #define?CONFIG_SOX_DEMUXER?1??
  742. #define?CONFIG_STR_DEMUXER?1??
  743. #define?CONFIG_SWF_DEMUXER?1??
  744. #define?CONFIG_THP_DEMUXER?1??
  745. #define?CONFIG_TIERTEXSEQ_DEMUXER?1??
  746. #define?CONFIG_TMV_DEMUXER?1??
  747. #define?CONFIG_TRUEHD_DEMUXER?1??
  748. #define?CONFIG_TTA_DEMUXER?1??
  749. #define?CONFIG_TXD_DEMUXER?1??
  750. #define?CONFIG_VC1_DEMUXER?1??
  751. #define?CONFIG_VC1T_DEMUXER?1??
  752. #define?CONFIG_VMD_DEMUXER?1??
  753. #define?CONFIG_VOC_DEMUXER?1??
  754. #define?CONFIG_VQF_DEMUXER?1??
  755. #define?CONFIG_W64_DEMUXER?1??
  756. #define?CONFIG_WAV_DEMUXER?1??
  757. #define?CONFIG_WC3_DEMUXER?1??
  758. #define?CONFIG_WSAUD_DEMUXER?1??
  759. #define?CONFIG_WSVQA_DEMUXER?1??
  760. #define?CONFIG_WV_DEMUXER?1??
  761. #define?CONFIG_XA_DEMUXER?1??
  762. #define?CONFIG_YOP_DEMUXER?1??
  763. #define?CONFIG_YUV4MPEGPIPE_DEMUXER?1??
  764. #define?CONFIG_LIBNUT_DEMUXER?0??
  765. #define?CONFIG_AC3_MUXER?1??
  766. #define?CONFIG_ADTS_MUXER?1??
  767. #define?CONFIG_AIFF_MUXER?1??
  768. #define?CONFIG_AMR_MUXER?1??
  769. #define?CONFIG_ASF_MUXER?1??
  770. #define?CONFIG_ASS_MUXER?1??
  771. #define?CONFIG_ASF_STREAM_MUXER?1??
  772. #define?CONFIG_AU_MUXER?1??
  773. #define?CONFIG_AVI_MUXER?1??
  774. #define?CONFIG_AVM2_MUXER?1??
  775. #define?CONFIG_CRC_MUXER?1??
  776. #define?CONFIG_DAUD_MUXER?1??
  777. #define?CONFIG_DIRAC_MUXER?1??
  778. #define?CONFIG_DNXHD_MUXER?1??
  779. #define?CONFIG_DTS_MUXER?1??
  780. #define?CONFIG_DV_MUXER?1??
  781. #define?CONFIG_EAC3_MUXER?1??
  782. #define?CONFIG_FFM_MUXER?1??
  783. #define?CONFIG_FILMSTRIP_MUXER?1??
  784. #define?CONFIG_FLAC_MUXER?1??
  785. #define?CONFIG_FLV_MUXER?1??
  786. #define?CONFIG_FRAMECRC_MUXER?1??
  787. #define?CONFIG_FRAMEMD5_MUXER?1??
  788. #define?CONFIG_GIF_MUXER?1??
  789. #define?CONFIG_GXF_MUXER?1??
  790. #define?CONFIG_H261_MUXER?1??
  791. #define?CONFIG_H263_MUXER?1??
  792. #define?CONFIG_H264_MUXER?1??
  793. #define?CONFIG_IMAGE2_MUXER?1??
  794. #define?CONFIG_IMAGE2PIPE_MUXER?1??
  795. #define?CONFIG_IPOD_MUXER?1??
  796. #define?CONFIG_M4V_MUXER?1??
  797. #define?CONFIG_MD5_MUXER?1??
  798. #define?CONFIG_MATROSKA_MUXER?1??
  799. #define?CONFIG_MATROSKA_AUDIO_MUXER?1??
  800. #define?CONFIG_MJPEG_MUXER?1??
  801. #define?CONFIG_MLP_MUXER?1??
  802. #define?CONFIG_MMF_MUXER?1??
  803. #define?CONFIG_MOV_MUXER?1??
  804. #define?CONFIG_MP2_MUXER?1??
  805. #define?CONFIG_MP3_MUXER?1??
  806. #define?CONFIG_MP4_MUXER?1??
  807. #define?CONFIG_MPEG1SYSTEM_MUXER?1??
  808. #define?CONFIG_MPEG1VCD_MUXER?1??
  809. #define?CONFIG_MPEG1VIDEO_MUXER?1??
  810. #define?CONFIG_MPEG2DVD_MUXER?1??
  811. #define?CONFIG_MPEG2SVCD_MUXER?1??
  812. #define?CONFIG_MPEG2VIDEO_MUXER?1??
  813. #define?CONFIG_MPEG2VOB_MUXER?1??
  814. #define?CONFIG_MPEGTS_MUXER?1??
  815. #define?CONFIG_MPJPEG_MUXER?1??
  816. #define?CONFIG_MXF_MUXER?1??
  817. #define?CONFIG_MXF_D10_MUXER?1??
  818. #define?CONFIG_NULL_MUXER?1??
  819. #define?CONFIG_NUT_MUXER?1??
  820. #define?CONFIG_OGG_MUXER?0??
  821. #define?CONFIG_PCM_ALAW_MUXER?1??
  822. #define?CONFIG_PCM_MULAW_MUXER?1??
  823. #define?CONFIG_PCM_F64BE_MUXER?1??
  824. #define?CONFIG_PCM_F64LE_MUXER?1??
  825. #define?CONFIG_PCM_F32BE_MUXER?1??
  826. #define?CONFIG_PCM_F32LE_MUXER?1??
  827. #define?CONFIG_PCM_S32BE_MUXER?1??
  828. #define?CONFIG_PCM_S32LE_MUXER?1??
  829. #define?CONFIG_PCM_S24BE_MUXER?1??
  830. #define?CONFIG_PCM_S24LE_MUXER?1??
  831. #define?CONFIG_PCM_S16BE_MUXER?1??
  832. #define?CONFIG_PCM_S16LE_MUXER?1??
  833. #define?CONFIG_PCM_S8_MUXER?1??
  834. #define?CONFIG_PCM_U32BE_MUXER?1??
  835. #define?CONFIG_PCM_U32LE_MUXER?1??
  836. #define?CONFIG_PCM_U24BE_MUXER?1??
  837. #define?CONFIG_PCM_U24LE_MUXER?1??
  838. #define?CONFIG_PCM_U16BE_MUXER?1??
  839. #define?CONFIG_PCM_U16LE_MUXER?1??
  840. #define?CONFIG_PCM_U8_MUXER?1??
  841. #define?CONFIG_PSP_MUXER?1??
  842. #define?CONFIG_RAWVIDEO_MUXER?1??
  843. #define?CONFIG_RM_MUXER?1??
  844. #define?CONFIG_ROQ_MUXER?1??
  845. #define?CONFIG_RTP_MUXER?1??
  846. #define?CONFIG_RTSP_MUXER?0??
  847. #define?CONFIG_SOX_MUXER?1??
  848. #define?CONFIG_SPDIF_MUXER?1??
  849. #define?CONFIG_SWF_MUXER?1??
  850. #define?CONFIG_TG2_MUXER?1??
  851. #define?CONFIG_TGP_MUXER?1??
  852. #define?CONFIG_TRUEHD_MUXER?1??
  853. #define?CONFIG_VC1T_MUXER?1??
  854. #define?CONFIG_VOC_MUXER?1??
  855. #define?CONFIG_WAV_MUXER?1??
  856. #define?CONFIG_WEBM_MUXER?1??
  857. #define?CONFIG_YUV4MPEGPIPE_MUXER?1??
  858. #define?CONFIG_LIBNUT_MUXER?0??
  859. #define?CONFIG_ASPECT_FILTER?1??
  860. #define?CONFIG_CROP_FILTER?1??
  861. #define?CONFIG_FORMAT_FILTER?1??
  862. #define?CONFIG_NOFORMAT_FILTER?1??
  863. #define?CONFIG_NULL_FILTER?1??
  864. #define?CONFIG_PAD_FILTER?1??
  865. #define?CONFIG_PIXELASPECT_FILTER?1??
  866. #define?CONFIG_SCALE_FILTER?1??
  867. #define?CONFIG_SLICIFY_FILTER?1??
  868. #define?CONFIG_UNSHARP_FILTER?1??
  869. #define?CONFIG_VFLIP_FILTER?1??
  870. #define?CONFIG_BUFFER_FILTER?1??
  871. #define?CONFIG_NULLSRC_FILTER?1??
  872. #define?CONFIG_NULLSINK_FILTER?1??
  873. #define?CONFIG_FILE_PROTOCOL?1??
  874. #define?CONFIG_GOPHER_PROTOCOL?0??
  875. #define?CONFIG_HTTP_PROTOCOL?1??
  876. #define?CONFIG_MMST_PROTOCOL?0??
  877. #define?CONFIG_PIPE_PROTOCOL?1??
  878. #define?CONFIG_RTMP_PROTOCOL?0??
  879. #define?CONFIG_RTMPT_PROTOCOL?1??
  880. #define?CONFIG_RTMPE_PROTOCOL?1??
  881. #define?CONFIG_RTMPTE_PROTOCOL?1??
  882. #define?CONFIG_RTMPS_PROTOCOL?1??
  883. #define?CONFIG_RTP_PROTOCOL?0??
  884. #define?CONFIG_TCP_PROTOCOL?1??
  885. #define?CONFIG_UDP_PROTOCOL?1??
  886. #define?CONFIG_CONCAT_PROTOCOL?1??
  887. #define?CONFIG_ALSA_INDEV?0??
  888. #define?CONFIG_BKTR_INDEV?0??
  889. #define?CONFIG_DV1394_INDEV?1??
  890. #define?CONFIG_JACK_INDEV?0??
  891. #define?CONFIG_OSS_INDEV?0??
  892. #define?CONFIG_V4L2_INDEV?0??
  893. #define?CONFIG_V4L_INDEV?0??
  894. #define?CONFIG_VFWCAP_INDEV?0??
  895. #define?CONFIG_X11_GRAB_DEVICE_INDEV?0??
  896. #define?CONFIG_LIBDC1394_INDEV?0??
  897. #define?CONFIG_ALSA_OUTDEV?0??
  898. #define?CONFIG_OSS_OUTDEV?0??
  899. #endif?/*?FFMPEG_CONFIG_H?*/??
?

?

FFMpeg自带的播放器ffplay对音视频的处理方法总结:


1. 如果声音是CBR的(也就是固定码率),就以音频的时间戳为基准

2. 如果视频时CBR,就以视频的时间戳为基准

3. 如果都是VBR的,就参考外部时钟,通过av_gettime()获取微妙集的时钟。

?

ffmpeg通过AVStream结构的time_base(有理数由分子和分母组成)可以获取一个参考时间单位,所有音视频流的timestamp都是基于这个时间单位顺序递增,比如time_base.num=1,time_base.den=90000,表示把1秒分成90000等份,音视频的pts和dts值就表示有多少个1/90000等份,更简单一点假设time_base.num=1,time_base.den=1000,就表示1秒分成1000等份,相当于1毫秒,那时间戳就表示是以毫秒为单位的,再做音视频处理时候,如果解码的速度比按照时间戳显示的速度快,那就简单不用丟帧(Drop Frame)处理,当解码速度很慢时(比如手机设备),就需要丢帧处理,是每两帧丟一帧数据,还是每3帧丟掉一帧数据,就需要根据延时显示程度来计算丢帧的比率

?

havlenapetr最新的ffmpeg可以直接编译通过,不过有个bug,就是播放完毕后,video_decoder线程不能退出,主要原因是阻塞在packet队列的Queue->get函数里,这里处理逻辑需要考虑两种情况:

1. AVPacket队列里没有音视频帧数据时,解码线程挂起进入等待状态,有新的AVPacket加入队列时激活解码线程

2. 如果文件读取到末尾,Queue->get直接返回-1,解码线程发现队列空时直接退出

  相关解决方案