精简Frame对象实例化相关代码

This commit is contained in:
ziyue
2021-09-02 10:56:21 +08:00
parent 57e91054af
commit 186c15364a
2 changed files with 16 additions and 32 deletions

View File

@@ -179,7 +179,22 @@ public:
using Ptr = std::shared_ptr<FrameImp>;
template<typename C=FrameImp>
static std::shared_ptr<C> create();
static std::shared_ptr<C> create() {
#if 0
static ResourcePool<C> packet_pool;
static onceToken token([]() {
packet_pool.setSize(1024);
});
auto ret = packet_pool.obtain();
ret->_buffer.clear();
ret->_prefix_size = 0;
ret->_dts = 0;
ret->_pts = 0;
return ret;
#else
return std::shared_ptr<C>(new C());
#endif
}
char *data() const override{
return (char *)_buffer.data();
@@ -227,9 +242,6 @@ private:
protected:
friend class ResourcePool_l<FrameImp>;
FrameImp() = default;
template<typename C>
static std::shared_ptr<C> create_l();
};
/**