video#
Include dependency graph for video.h:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"23" [label="atomic" tooltip="atomic"]
"3" [label="functional" tooltip="functional"]
"19" [label="limits" tooltip="limits"]
"17" [label="boost/log/sinks.hpp" tooltip="boost/log/sinks.hpp"]
"6" [label="filesystem" tooltip="filesystem"]
"4" [label="platform/common.h" tooltip="platform/common.h"]
"1" [label="src/video.h" tooltip="src/video.h" fillcolor="#BFBFBF"]
"31" [label="variant" tooltip="variant"]
"20" [label="boost/format.hpp" tooltip="boost/format.hpp"]
"26" [label="utility.h" tooltip="utility.h"]
"15" [label="src/logging.h" tooltip="src/logging.h"]
"8" [label="string" tooltip="string"]
"25" [label="map" tooltip="map"]
"2" [label="input.h" tooltip="input.h"]
"29" [label="string_view" tooltip="string_view"]
"24" [label="condition_variable" tooltip="condition_variable"]
"5" [label="bitset" tooltip="bitset"]
"33" [label="libavutil/pixfmt.h" tooltip="libavutil/pixfmt.h"]
"32" [label="src/video_colorspace.h" tooltip="src/video_colorspace.h"]
"11" [label="optional" tooltip="optional"]
"36" [label="libswscale/swscale.h" tooltip="libswscale/swscale.h"]
"13" [label="vector" tooltip="vector"]
"18" [label="src/stat_trackers.h" tooltip="src/stat_trackers.h"]
"22" [label="array" tooltip="array"]
"35" [label="libavcodec/avcodec.h" tooltip="libavcodec/avcodec.h"]
"21" [label="src/thread_safe.h" tooltip="src/thread_safe.h"]
"12" [label="unordered_map" tooltip="unordered_map"]
"7" [label="mutex" tooltip="mutex"]
"10" [label="chrono" tooltip="chrono"]
"30" [label="type_traits" tooltip="type_traits"]
"34" [label="moonlight-common-c/src/Limelight.h" tooltip="moonlight-common-c/src/Limelight.h"]
"16" [label="boost/log/common.hpp" tooltip="boost/log/common.hpp"]
"27" [label="algorithm" tooltip="algorithm"]
"9" [label="src/config.h" tooltip="src/config.h"]
"28" [label="memory" tooltip="memory"]
"14" [label="nvenc/nvenc_config.h" tooltip="nvenc/nvenc_config.h"]
"4" -> "5" [dir=forward tooltip="include"]
"4" -> "6" [dir=forward tooltip="include"]
"4" -> "3" [dir=forward tooltip="include"]
"4" -> "7" [dir=forward tooltip="include"]
"4" -> "8" [dir=forward tooltip="include"]
"4" -> "9" [dir=forward tooltip="include"]
"4" -> "15" [dir=forward tooltip="include"]
"4" -> "18" [dir=forward tooltip="include"]
"4" -> "21" [dir=forward tooltip="include"]
"4" -> "26" [dir=forward tooltip="include"]
"4" -> "32" [dir=forward tooltip="include"]
"4" -> "34" [dir=forward tooltip="include"]
"1" -> "2" [dir=forward tooltip="include"]
"1" -> "4" [dir=forward tooltip="include"]
"1" -> "21" [dir=forward tooltip="include"]
"1" -> "32" [dir=forward tooltip="include"]
"1" -> "35" [dir=forward tooltip="include"]
"1" -> "36" [dir=forward tooltip="include"]
"26" -> "27" [dir=forward tooltip="include"]
"26" -> "24" [dir=forward tooltip="include"]
"26" -> "28" [dir=forward tooltip="include"]
"26" -> "7" [dir=forward tooltip="include"]
"26" -> "11" [dir=forward tooltip="include"]
"26" -> "8" [dir=forward tooltip="include"]
"26" -> "29" [dir=forward tooltip="include"]
"26" -> "30" [dir=forward tooltip="include"]
"26" -> "31" [dir=forward tooltip="include"]
"26" -> "13" [dir=forward tooltip="include"]
"15" -> "16" [dir=forward tooltip="include"]
"15" -> "17" [dir=forward tooltip="include"]
"2" -> "3" [dir=forward tooltip="include"]
"2" -> "4" [dir=forward tooltip="include"]
"2" -> "21" [dir=forward tooltip="include"]
"32" -> "33" [dir=forward tooltip="include"]
"18" -> "10" [dir=forward tooltip="include"]
"18" -> "3" [dir=forward tooltip="include"]
"18" -> "19" [dir=forward tooltip="include"]
"18" -> "20" [dir=forward tooltip="include"]
"21" -> "22" [dir=forward tooltip="include"]
"21" -> "23" [dir=forward tooltip="include"]
"21" -> "24" [dir=forward tooltip="include"]
"21" -> "3" [dir=forward tooltip="include"]
"21" -> "25" [dir=forward tooltip="include"]
"21" -> "7" [dir=forward tooltip="include"]
"21" -> "13" [dir=forward tooltip="include"]
"21" -> "26" [dir=forward tooltip="include"]
"9" -> "5" [dir=forward tooltip="include"]
"9" -> "10" [dir=forward tooltip="include"]
"9" -> "11" [dir=forward tooltip="include"]
"9" -> "8" [dir=forward tooltip="include"]
"9" -> "12" [dir=forward tooltip="include"]
"9" -> "13" [dir=forward tooltip="include"]
"9" -> "14" [dir=forward tooltip="include"]
}](../../_images/graphviz-13f3c898351c652623fb3604b749772a4bdbc455.png)
This graph shows which files directly or indirectly include video.h:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"12" [label="src/platform/macos/nv12_zero_device.cpp" tooltip="src/platform/macos/nv12_zero_device.cpp"]
"5" [label="src/platform/linux/graphics.cpp" tooltip="src/platform/linux/graphics.cpp"]
"10" [label="src/platform/linux/x11grab.cpp" tooltip="src/platform/linux/x11grab.cpp"]
"1" [label="src/video.h" tooltip="src/video.h" fillcolor="#BFBFBF"]
"19" [label="src/upnp.cpp" tooltip="src/upnp.cpp"]
"7" [label="src/platform/linux/kmsgrab.cpp" tooltip="src/platform/linux/kmsgrab.cpp"]
"8" [label="src/platform/linux/vaapi.cpp" tooltip="src/platform/linux/vaapi.cpp"]
"9" [label="src/platform/linux/wlgrab.cpp" tooltip="src/platform/linux/wlgrab.cpp"]
"2" [label="src/main.cpp" tooltip="src/main.cpp"]
"15" [label="src/platform/windows/display_base.cpp" tooltip="src/platform/windows/display_base.cpp"]
"4" [label="src/video.cpp" tooltip="src/video.cpp"]
"6" [label="src/platform/linux/cuda.cpp" tooltip="src/platform/linux/cuda.cpp"]
"17" [label="src/stream.h" tooltip="src/stream.h"]
"18" [label="src/stream.cpp" tooltip="src/stream.cpp"]
"13" [label="src/platform/windows/display.h" tooltip="src/platform/windows/display.h"]
"11" [label="src/platform/macos/display.mm" tooltip="src/platform/macos/display.mm"]
"14" [label="src/platform/windows/display_ram.cpp" tooltip="src/platform/windows/display_ram.cpp"]
"16" [label="src/platform/windows/display_vram.cpp" tooltip="src/platform/windows/display_vram.cpp"]
"3" [label="src/nvenc/nvenc_base.h" tooltip="src/nvenc/nvenc_base.h"]
"1" -> "2" [dir=back tooltip="include"]
"1" -> "3" [dir=back tooltip="include"]
"1" -> "5" [dir=back tooltip="include"]
"1" -> "6" [dir=back tooltip="include"]
"1" -> "7" [dir=back tooltip="include"]
"1" -> "8" [dir=back tooltip="include"]
"1" -> "9" [dir=back tooltip="include"]
"1" -> "10" [dir=back tooltip="include"]
"1" -> "11" [dir=back tooltip="include"]
"1" -> "12" [dir=back tooltip="include"]
"1" -> "13" [dir=back tooltip="include"]
"1" -> "15" [dir=back tooltip="include"]
"1" -> "16" [dir=back tooltip="include"]
"1" -> "17" [dir=back tooltip="include"]
"1" -> "4" [dir=back tooltip="include"]
"17" -> "18" [dir=back tooltip="include"]
"17" -> "19" [dir=back tooltip="include"]
"13" -> "14" [dir=back tooltip="include"]
"13" -> "15" [dir=back tooltip="include"]
"13" -> "16" [dir=back tooltip="include"]
"3" -> "4" [dir=back tooltip="include"]
}](../../_images/graphviz-b4ad36cb6eacfd61db4aa16d36edf0ce436d54a9.png)
todo
Defines
-
_CONVERT(x)#
-
namespace video#
Typedefs
-
using avcodec_buffer_t = util::safe_ptr<AVBufferRef, free_buffer>#
-
using avcodec_ctx_t = util::safe_ptr<AVCodecContext, free_ctx>#
-
using avcodec_frame_t = util::safe_ptr<AVFrame, free_frame>#
-
using hdr_info_t = std::unique_ptr<hdr_info_raw_t>#
-
using packet_t = std::unique_ptr<packet_raw_t>#
-
using sws_t = util::safe_ptr<SwsContext, sws_freeContext>#
-
struct config_t#
-
struct encode_session_t#
Inheritence diagram for video::encode_session_t:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"3" [label="video::nvenc_encode_session_t" tooltip="video::nvenc_encode_session_t"]
"1" [label="video::encode_session_t" tooltip="video::encode_session_t" fillcolor="#BFBFBF"]
"2" [label="video::avcodec_encode_session_t" tooltip="video::avcodec_encode_session_t"]
"3" -> "1" [dir=forward tooltip="public-inheritance"]
"2" -> "1" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-5e55608619bfb80f4ab36c85bd7e65d9cfcb83e8.png)
Subclassed by video::avcodec_encode_session_t, video::nvenc_encode_session_t
-
struct encoder_platform_formats_avcodec : public video::encoder_platform_formats_t#
Inheritence diagram for video::encoder_platform_formats_avcodec:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="video::encoder_platform_formats_avcodec" tooltip="video::encoder_platform_formats_avcodec" fillcolor="#BFBFBF"]
"2" [label="video::encoder_platform_formats_t" tooltip="video::encoder_platform_formats_t"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-2ed33932be0dde72ee6c828b249beabc6327aa7c.png)
Collaboration diagram for video::encoder_platform_formats_avcodec:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="video::encoder_platform_formats_avcodec" tooltip="video::encoder_platform_formats_avcodec" fillcolor="#BFBFBF"]
"2" [label="video::encoder_platform_formats_t" tooltip="video::encoder_platform_formats_t"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-2ed33932be0dde72ee6c828b249beabc6327aa7c.png)
Public Types
-
using init_buffer_function_t = std::function<util::Either<avcodec_buffer_t, int>(platf::avcodec_encode_device_t*)>#
Public Functions
-
inline encoder_platform_formats_avcodec(const AVHWDeviceType &avcodec_base_dev_type, const AVHWDeviceType &avcodec_derived_dev_type, const AVPixelFormat &avcodec_dev_pix_fmt, const AVPixelFormat &avcodec_pix_fmt_8bit, const AVPixelFormat &avcodec_pix_fmt_10bit, const init_buffer_function_t &init_avcodec_hardware_input_buffer_function)#
-
using init_buffer_function_t = std::function<util::Either<avcodec_buffer_t, int>(platf::avcodec_encode_device_t*)>#
-
struct encoder_platform_formats_nvenc : public video::encoder_platform_formats_t#
Inheritence diagram for video::encoder_platform_formats_nvenc:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="video::encoder_platform_formats_t" tooltip="video::encoder_platform_formats_t"]
"1" [label="video::encoder_platform_formats_nvenc" tooltip="video::encoder_platform_formats_nvenc" fillcolor="#BFBFBF"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-ddfa6f79b7dd924be567a78779ad18edbb532bd3.png)
Collaboration diagram for video::encoder_platform_formats_nvenc:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="video::encoder_platform_formats_t" tooltip="video::encoder_platform_formats_t"]
"1" [label="video::encoder_platform_formats_nvenc" tooltip="video::encoder_platform_formats_nvenc" fillcolor="#BFBFBF"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-ddfa6f79b7dd924be567a78779ad18edbb532bd3.png)
-
struct encoder_platform_formats_t#
Inheritence diagram for video::encoder_platform_formats_t:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="video::encoder_platform_formats_avcodec" tooltip="video::encoder_platform_formats_avcodec"]
"1" [label="video::encoder_platform_formats_t" tooltip="video::encoder_platform_formats_t" fillcolor="#BFBFBF"]
"3" [label="video::encoder_platform_formats_nvenc" tooltip="video::encoder_platform_formats_nvenc"]
"2" -> "1" [dir=forward tooltip="public-inheritance"]
"3" -> "1" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-36d5201141db0d09d8c47cbb0e08d62f60d11fb8.png)
Subclassed by video::encoder_platform_formats_avcodec, video::encoder_platform_formats_nvenc
Public Functions
-
virtual ~encoder_platform_formats_t() = default#
-
virtual ~encoder_platform_formats_t() = default#
-
struct encoder_t#
Collaboration diagram for video::encoder_t:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"2" [label="video::encoder_t::codec_t" tooltip="video::encoder_t::codec_t"]
"1" [label="video::encoder_t" tooltip="video::encoder_t" fillcolor="#BFBFBF"]
"1" -> "2" [dir=forward tooltip="usage"]
}](../../_images/graphviz-d5ed0ac31bc13331aa4d88ed1005eae00421a268.png)
Public Types
Public Members
-
uint32_t flags#
-
std::string_view name#
-
const std::unique_ptr<const encoder_platform_formats_t> platform_formats#
-
struct codec_t#
Public Functions
-
uint32_t flags#
-
struct hdr_info_raw_t#
-
struct packet_raw_avcodec : public video::packet_raw_t#
Inheritence diagram for video::packet_raw_avcodec:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="video::packet_raw_avcodec" tooltip="video::packet_raw_avcodec" fillcolor="#BFBFBF"]
"2" [label="video::packet_raw_t" tooltip="video::packet_raw_t"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-25621393c0679f7049099444b66ae7c2d11b4fb7.png)
Collaboration diagram for video::packet_raw_avcodec:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="video::packet_raw_avcodec" tooltip="video::packet_raw_avcodec" fillcolor="#BFBFBF"]
"2" [label="video::packet_raw_t" tooltip="video::packet_raw_t"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-25621393c0679f7049099444b66ae7c2d11b4fb7.png)
Public Functions
-
inline virtual uint8_t *data() override#
-
inline virtual size_t data_size() override#
-
inline virtual int64_t frame_index() override#
-
inline virtual bool is_idr() override#
-
inline packet_raw_avcodec()#
-
inline ~packet_raw_avcodec()#
Public Members
-
AVPacket *av_packet#
-
inline virtual uint8_t *data() override#
-
struct packet_raw_generic : public video::packet_raw_t#
Inheritence diagram for video::packet_raw_generic:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="video::packet_raw_generic" tooltip="video::packet_raw_generic" fillcolor="#BFBFBF"]
"2" [label="video::packet_raw_t" tooltip="video::packet_raw_t"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-192b5eab5e302da2aa6eef691e897944657aed20.png)
Collaboration diagram for video::packet_raw_generic:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"1" [label="video::packet_raw_generic" tooltip="video::packet_raw_generic" fillcolor="#BFBFBF"]
"2" [label="video::packet_raw_t" tooltip="video::packet_raw_t"]
"1" -> "2" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-192b5eab5e302da2aa6eef691e897944657aed20.png)
-
struct packet_raw_t#
Inheritence diagram for video::packet_raw_t:
![digraph {
graph [bgcolor="#00000000"]
node [shape=rectangle style=filled fillcolor="#FFFFFF" font=Helvetica padding=2]
edge [color="#1414CE"]
"3" [label="video::packet_raw_generic" tooltip="video::packet_raw_generic"]
"2" [label="video::packet_raw_avcodec" tooltip="video::packet_raw_avcodec"]
"1" [label="video::packet_raw_t" tooltip="video::packet_raw_t" fillcolor="#BFBFBF"]
"3" -> "1" [dir=forward tooltip="public-inheritance"]
"2" -> "1" [dir=forward tooltip="public-inheritance"]
}](../../_images/graphviz-a3a9a3d05a3ca4e5cc2eba3a0f12a4eeee737ef3.png)
Subclassed by video::packet_raw_avcodec, video::packet_raw_generic
Public Functions
-
virtual uint8_t *data() = 0#
-
virtual size_t data_size() = 0#
-
virtual int64_t frame_index() = 0#
-
virtual bool is_idr() = 0#
-
virtual ~packet_raw_t() = default#
-
virtual uint8_t *data() = 0#
-
using avcodec_buffer_t = util::safe_ptr<AVBufferRef, free_buffer>#