kAudioQueueCurrentLevelByte, // std::uint64_t
kVideoMinByteThreshold, // std::uint32_t
kAudioMinByteThreshold, // std::uint32_t
+ kVideoQueueMaxTime, // std::uint64_t
+ kAudioQueueMaxTime, // std::uint64_t
kVideoQueueMaxBuffer, // std::uint64_t
kAudioQueueMaxBuffer, // std::uint64_t
+ kVideoQueueCurrentLevelTime, // std::uint64_t
+ kAudioQueueCurrentLevelTime, // std::uint64_t
kVideoRenderTimeOffset, // std::int64_t
kAudioRenderTimeOffset, // std::int64_t
kMax,
{"audio-min-byte-percent",
{ValueType::kUInt32,
plusplayer::trackrenderer::Attribute::kAudioMinByteThreshold}},
+ {"video-queue-max-time",
+ {ValueType::kUInt64,
+ plusplayer::trackrenderer::Attribute::kVideoQueueMaxTime}},
+ {"audio-queue-max-time",
+ {ValueType::kUInt64,
+ plusplayer::trackrenderer::Attribute::kAudioQueueMaxTime}},
{"video-queue-max-buffer",
{ValueType::kUInt64,
plusplayer::trackrenderer::Attribute::kVideoQueueMaxBuffer}},
{"audio-queue-max-buffer",
{ValueType::kUInt64,
plusplayer::trackrenderer::Attribute::kAudioQueueMaxBuffer}},
+ {"video-current-level-time",
+ {ValueType::kUInt64,
+ plusplayer::trackrenderer::Attribute::kVideoQueueCurrentLevelTime}},
+ {"audio-current-level-time",
+ {ValueType::kUInt64,
+ plusplayer::trackrenderer::Attribute::kAudioQueueCurrentLevelTime}},
{"video-render-time-offset",
{ValueType::kInt64,
plusplayer::trackrenderer::Attribute::kVideoRenderTimeOffset}},
constexpr std::uint64_t kMaxTimeOfAudioSrcQueue = 0; // 0ns
constexpr std::uint64_t kCurrentLevelTimeOfVideo = 0; // 0ns
constexpr std::uint64_t kCurrentLevelTimeOfAudio = 0; // 0ns
-constexpr std::uint32_t kMinTimeThresholdOfVideo = 0; // 0%
-constexpr std::uint32_t kMinTimeThresholdOfAudio = 0; // 0%
constexpr std::uint64_t kMaxBufferOfVideoSrcQueue = 5; // cnt
constexpr std::uint64_t kMaxBufferOfAudioSrcQueue = 5; // cnt
constexpr std::int64_t kDefaultRenderTimeOffset = 0;
PROPERTY("min-percent"), //
WITHOUT_INIT, //
DEFAULT_VALUE(::kMinByteThresholdOfAudio)), //
+ MAKE_ATTRIBUTE(kVideoQueueMaxTime, //
+ ELEMENT(kAppSrcVideo), //
+ VALUE_TYPE(std::uint64_t), //
+ PROPERTY("max-time"), //
+ WITHOUT_INIT, //
+ DEFAULT_VALUE(::kMaxTimeOfVideoSrcQueue)), //
+ MAKE_ATTRIBUTE(kAudioQueueMaxTime, //
+ ELEMENT(kAppSrcAudio), //
+ VALUE_TYPE(std::uint64_t), //
+ PROPERTY("max-time"), //
+ WITHOUT_INIT, //
+ DEFAULT_VALUE(::kMaxTimeOfAudioSrcQueue)), //
MAKE_ATTRIBUTE(kVideoQueueMaxBuffer, //
ELEMENT(kAppSrcVideo), //
VALUE_TYPE(std::uint64_t), //
PROPERTY("max-buffers"), //
WITH_INIT, //
DEFAULT_VALUE(::kMaxBufferOfAudioSrcQueue)), //
+ MAKE_ATTRIBUTE(kVideoQueueCurrentLevelTime, //
+ ELEMENT(kAppSrcVideo), //
+ VALUE_TYPE(std::uint64_t), //
+ PROPERTY("current-level-time"), //
+ WITHOUT_INIT, //
+ DEFAULT_VALUE(::kCurrentLevelTimeOfVideo)), //
+ MAKE_ATTRIBUTE(kAudioQueueCurrentLevelTime, //
+ ELEMENT(kAppSrcAudio), //
+ VALUE_TYPE(std::uint64_t), //
+ PROPERTY("current-level-time"), //
+ WITHOUT_INIT, //
+ DEFAULT_VALUE(::kCurrentLevelTimeOfAudio)), //
MAKE_ATTRIBUTE(kVideoRenderTimeOffset, //
ELEMENT(kSinkVideo), //
VALUE_TYPE(std::int64_t), //