obs-ffmpeg-compat.h 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include <libavcodec/avcodec.h>
  3. /* LIBAVCODEC_VERSION_CHECK checks for the right version of libav and FFmpeg
  4. * a is the major version
  5. * b and c the minor and micro versions of libav
  6. * d and e the minor and micro versions of FFmpeg */
  7. #define LIBAVCODEC_VERSION_CHECK(a, b, c, d, e) \
  8. ((LIBAVCODEC_VERSION_MICRO < 100 && \
  9. LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(a, b, c)) || \
  10. (LIBAVCODEC_VERSION_MICRO >= 100 && \
  11. LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(a, d, e)))
  12. #if !LIBAVCODEC_VERSION_CHECK(54, 28, 0, 59, 100)
  13. #define avcodec_free_frame av_freep
  14. #endif
  15. #if LIBAVCODEC_VERSION_INT < 0x371c01
  16. #define av_frame_alloc avcodec_alloc_frame
  17. #define av_frame_unref avcodec_get_frame_defaults
  18. #define av_frame_free avcodec_free_frame
  19. #endif
  20. #if LIBAVCODEC_VERSION_MAJOR >= 58
  21. #define CODEC_CAP_TRUNC AV_CODEC_CAP_TRUNCATED
  22. #define CODEC_FLAG_TRUNC AV_CODEC_FLAG_TRUNCATED
  23. #define INPUT_BUFFER_PADDING_SIZE AV_INPUT_BUFFER_PADDING_SIZE
  24. #else
  25. #define CODEC_CAP_TRUNC CODEC_CAP_TRUNCATED
  26. #define CODEC_FLAG_TRUNC CODEC_FLAG_TRUNCATED
  27. #define INPUT_BUFFER_PADDING_SIZE FF_INPUT_BUFFER_PADDING_SIZE
  28. #endif