diff --git a/libobs/CMakeLists.txt b/libobs/CMakeLists.txt index 4fa7cfb88..9cfa7f92f 100644 --- a/libobs/CMakeLists.txt +++ b/libobs/CMakeLists.txt @@ -212,7 +212,8 @@ set(libobs_mediaio_HEADERS media-io/format-conversion.h media-io/audio-resampler.h media-io/video-scaler.h - media-io/media-remux.h) + media-io/media-remux.h + media-io/frame-rate.h) set(libobs_util_SOURCES util/array-serializer.c diff --git a/libobs/media-io/frame-rate.h b/libobs/media-io/frame-rate.h new file mode 100644 index 000000000..5e72dc5b0 --- /dev/null +++ b/libobs/media-io/frame-rate.h @@ -0,0 +1,32 @@ +#pragma once + +#ifdef __cplusplus +extern "C" { +#endif + +struct media_frames_per_second { + uint32_t numerator; + uint32_t denominator; +}; + +static inline double media_frames_per_second_to_frame_interval( + struct media_frames_per_second fps) +{ + return (double)fps.denominator / fps.numerator; +} + +static inline double media_frames_per_second_to_fps( + struct media_frames_per_second fps) +{ + return (double)fps.numerator / fps.denominator; +} + +static inline bool media_frames_per_second_is_valid( + struct media_frames_per_second fps) +{ + return fps.numerator && fps.denominator; +} + +#ifdef __cplusplus +} +#endif