2#include <Media/Libav.hpp>
3#include <Video/VideoEnums.hpp>
6#include <score_plugin_media_export.h>
8#include <libavcodec/codec_id.h>
9#include <libavutil/pixfmt.h>
10#include <libavutil/rational.h>
11#include <libavcodec/version.h>
12#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(61, 3, 100)
13#if __has_include(<libavutil/mastering_display_metadata.h>)
14#include <libavutil/mastering_display_metadata.h>
33 AVPixelFormat pixel_format = AVPixelFormat(-1);
38 AVPixelFormat hwaccel_sw_format = AVPixelFormat(-1);
50 AVColorRange color_range = AVCOL_RANGE_UNSPECIFIED;
51 AVColorPrimaries color_primaries = AVCOL_PRI_UNSPECIFIED;
52 AVColorTransferCharacteristic color_trc = AVCOL_TRC_UNSPECIFIED;
53 AVColorSpace color_space = AVCOL_SPC_UNSPECIFIED;
54 AVChromaLocation chroma_location = AVCHROMA_LOC_UNSPECIFIED;
56#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(61, 3, 100)
57 AVMasteringDisplayMetadata mastering_display{};
58 std::optional<AVContentLightMetadata> content_light{};
64 Interlacing interlacing = ::Video::Interlacing::None;
67 OutputFormat output_format = ::Video::OutputFormat::SDR;
68 Tonemap tonemap = ::Video::Tonemap::Auto;
69 Deinterlace deinterlace = ::Video::Deinterlace::Weave;
75 AVCodecID codec_id = AV_CODEC_ID_NONE;
76 FrameAccess frame_access = FrameAccess::Unknown;
79 int max_keyframe_gap{-1};
82 double flicks_per_dts{};
83 double dts_per_flicks{};
87 AVRational time_base{0, 1};
93 virtual AVFrame* dequeue_frame()
noexcept = 0;
94 virtual void release_frame(AVFrame* frame)
noexcept = 0;
97 virtual void seek(int64_t flicks) { }
101 std::atomic_int seek_generation{};
105 std::atomic_int seeks_done{};
115 void operator()(AVFrame* f)
const noexcept;
118using AVFramePointer = std::unique_ptr<AVFrame, FreeAVFrame>;
135ReadFrame receiveVideoFrame(
136 AVCodecContext* codecContext, AVFrame* frame,
bool ignorePts,
137 MissingTimestamps* missing =
nullptr);
Definition VideoInterface.hpp:114
Definition VideoInterface.hpp:124
int64_t step
One frame in the stream's time base, for frames whose duration is unknown.
Definition VideoInterface.hpp:127
Definition VideoInterface.hpp:109
Definition VideoInterface.hpp:91
virtual void seek(int64_t flicks)
Definition VideoInterface.hpp:97