SCsub 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  1. Import("env")
  2. import string
  3. sources = string.split("""
  4. src/TheoraVideoClip.cpp
  5. src/FFmpeg/TheoraVideoClip_FFmpeg.cpp
  6. src/TheoraAsync.cpp
  7. src/TheoraAudioInterface.cpp
  8. src/TheoraException.cpp
  9. src/TheoraWorkerThread.cpp
  10. src/TheoraVideoManager.cpp
  11. src/TheoraTimer.cpp
  12. src/TheoraUtil.cpp
  13. src/TheoraDataSource.cpp
  14. src/TheoraAudioPacketQueue.cpp
  15. src/TheoraFrameQueue.cpp
  16. src/Theora/TheoraVideoClip_Theora.cpp
  17. src/YUV/yuv_util.c
  18. src/YUV/libyuv/src/row_any.cc
  19. src/YUV/libyuv/src/compare_common.cc
  20. src/YUV/libyuv/src/scale_neon.cc
  21. src/YUV/libyuv/src/planar_functions.cc
  22. src/YUV/libyuv/src/compare.cc
  23. src/YUV/libyuv/src/scale_mips.cc
  24. src/YUV/libyuv/src/scale_posix.cc
  25. src/YUV/libyuv/src/row_posix.cc
  26. src/YUV/libyuv/src/row_win.cc
  27. src/YUV/libyuv/src/compare_neon.cc
  28. src/YUV/libyuv/src/convert_from_argb.cc
  29. src/YUV/libyuv/src/mjpeg_validate.cc
  30. src/YUV/libyuv/src/convert_from.cc
  31. src/YUV/libyuv/src/rotate_neon.cc
  32. src/YUV/libyuv/src/row_neon.cc
  33. src/YUV/libyuv/src/rotate_mips.cc
  34. src/YUV/libyuv/src/compare_posix.cc
  35. src/YUV/libyuv/src/row_mips.cc
  36. src/YUV/libyuv/src/scale.cc
  37. src/YUV/libyuv/src/scale_argb.cc
  38. src/YUV/libyuv/src/mjpeg_decoder.cc
  39. src/YUV/libyuv/src/scale_win.cc
  40. src/YUV/libyuv/src/scale_common.cc
  41. src/YUV/libyuv/src/scale_argb_neon.cc
  42. src/YUV/libyuv/src/row_common.cc
  43. src/YUV/libyuv/src/convert.cc
  44. src/YUV/libyuv/src/format_conversion.cc
  45. src/YUV/libyuv/src/rotate_argb.cc
  46. src/YUV/libyuv/src/rotate.cc
  47. src/YUV/libyuv/src/convert_argb.cc
  48. src/YUV/libyuv/src/cpu_id.cc
  49. src/YUV/libyuv/src/video_common.cc
  50. src/YUV/libyuv/src/convert_to_argb.cc
  51. src/YUV/libyuv/src/compare_win.cc
  52. src/YUV/libyuv/src/convert_to_i420.cc
  53. src/YUV/libyuv/src/convert_jpeg.cc
  54. src/YUV/libyuv/yuv_libyuv.c
  55. src/YUV/android/cpu-features.c
  56. src/YUV/C/yuv420_grey_c.c
  57. src/YUV/C/yuv420_yuv_c.c
  58. src/YUV/C/yuv420_rgb_c.c
  59. src/TheoraVideoFrame.cpp
  60. """)
  61. env_theora = env.Clone()
  62. if env["platform"] == "iphone":
  63. sources.append("src/AVFoundation/TheoraVideoClip_AVFoundation.mm")
  64. env.Append(LINKFLAGS=['-framework', 'CoreVideo', '-framework', 'CoreMedia', '-framework', 'AVFoundation'])
  65. if env["target"] == "release":
  66. env_theora.Append(CPPFLAGS=["-D_IOS", "-D__ARM_NEON__", "-fstrict-aliasing", "-fmessage-length=210", "-fdiagnostics-show-note-include-stack", "-fmacro-backtrace-limit=0", "-fcolor-diagnostics", "-Wno-trigraphs", "-fpascal-strings", "-fvisibility=hidden", "-fvisibility-inlines-hidden"])
  67. env_theora.Append(CPPFLAGS=["-D_LIB", "-D__THEORA"]) # removed -D_YUV_C
  68. env_theora.Append(CPPFLAGS=["-D_YUV_LIBYUV"])
  69. #env_theora.Append(CPPFLAGS=["-D_YUV_C"])
  70. if env["platform"] == "iphone":
  71. env_theora.Append(CPPFLAGS=["-D__AVFOUNDATION"])
  72. else:
  73. pass
  74. #env_theora.Append(CPPFLAGS=["-D__FFMPEG"])
  75. if env["platform"] == "android":
  76. env_theora.Append(CPPFLAGS=["-D_ANDROID"])
  77. if env["platform"] == "winrt":
  78. env_theora.Append(CPPFLAGS=["-D_WINRT"])
  79. env_theora.Append(CPPPATH=["#drivers/theoraplayer/include/theoraplayer", "#drivers/theoraplayer/src/YUV", "#drivers/theoraplayer/src/YUV/libyuv/include", "#drivers/theoraplayer/src/Theora", "#drivers/theoraplayer/src/AVFoundation"])
  80. objs = []
  81. env_theora.add_source_files(objs, ["video_stream_theoraplayer.cpp"])
  82. if env['use_theoraplayer_binary'] == "yes":
  83. if env["platform"] == "iphone":
  84. env.Append(LIBPATH=['#drivers/theoraplayer/lib/ios'])
  85. env.Append(LIBS=['theoraplayer', 'ogg', 'theora', 'tremor'])
  86. if env["platform"] == "windows":
  87. env.Append(LIBPATH=['#drivers/theoraplayer/lib/windows'])
  88. env.Append(LINKFLAGS=['libtheoraplayer_static.lib', 'libogg.lib', 'libtheora.lib', 'libvorbis.lib'])
  89. else:
  90. env_theora.add_source_files(objs, sources)
  91. env.drivers_sources += objs