mpp icon indicating copy to clipboard operation
mpp copied to clipboard

mpp_frame_copy只对meta增加了引用,没有对buffer增加引用

Open XunChangqing opened this issue 4 years ago • 3 comments

mpp_frame_copy只对meta增加了引用,没有对buffer增加引用

mpp_frame tmp_frm;
mpp_frame_copy(&src_frm ,&tmp_frm);
mpp_frame_deinit(&src_frm);

这样操作以后,不能保证tmp_frm内的buffer仍然是有效的? 这样是不是有点问题?

XunChangqing avatar Feb 20 '21 03:02 XunChangqing

的确是这样的 mpp_frame_copy 是 mpp/base/inc/mpp_frame_impl.h 里定义的不对外开放的内部接口,主要是 dpb 与 slot 管理中使用,在限定内部场景的使用情况下不会有问题,开放到外部使用的话的确是有问题。

HermanChen avatar Feb 21 '21 00:02 HermanChen

那么在外部使用frame如何拷贝呢?我理解buffer通过增加引用,frame通过新建一个,然后把每个域都设置相同?我看到设置buffer时会增加一下对buffer的引用

XunChangqing avatar Feb 22 '21 01:02 XunChangqing

对,是这样的,不能直接保留一个 MppFrame 么?

HermanChen avatar Feb 22 '21 01:02 HermanChen