rtmp协议支持更新metadata (#2669 #2692)

This commit is contained in:
夏楚
2023-07-22 17:31:23 +08:00
committed by GitHub
parent a97f1e503d
commit b44ca8fd6f
5 changed files with 97 additions and 90 deletions

View File

@@ -73,42 +73,29 @@ public:
/**
* 获取metadata
*/
const AMFValue &getMetaData() const {
template <typename FUNC>
void getMetaData(const FUNC &func) const {
std::lock_guard<std::recursive_mutex> lock(_mtx);
return _metadata;
if (_metadata) {
func(_metadata);
}
}
/**
* 获取所有的config帧
*/
template<typename FUNC>
void getConfigFrame(const FUNC &f) {
template <typename FUNC>
void getConfigFrame(const FUNC &func) {
std::lock_guard<std::recursive_mutex> lock(_mtx);
for (auto &pr : _config_frame_map) {
f(pr.second);
func(pr.second);
}
}
/**
* 设置metadata
*/
virtual void setMetaData(const AMFValue &metadata) {
_metadata = metadata;
_metadata.set("title", std::string("Streamed by ") + kServerName);
_have_video = _metadata["videocodecid"];
_have_audio = _metadata["audiocodecid"];
if (_ring) {
regist();
}
}
/**
* 更新metadata
*/
void updateMetaData(const AMFValue &metadata) {
std::lock_guard<std::recursive_mutex> lock(_mtx);
_metadata = metadata;
}
virtual void setMetaData(const AMFValue &metadata);
/**
* 输入rtmp包