本文主要是介绍av_frame_get_best_effort_timestamp的原理和使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
https://blog.csdn.net/oldmtn/article/details/48155957
在ffmpeg-2.7.1\libavutil\frame.h里面有
/**
* Accessors for some AVFrame fields.
* The position of these field in the structure is not part of the ABI,
* they should not be accessed directly outside libavcodec.
*/
int64_t av_frame_get_best_effort_timestamp(const AVFrame *frame);
void av_frame_set_best_effort_timestamp(AVFrame *frame, int64_t val);
这2个函数是由宏定义的,搜索实现是搜索不到的。
在ffmpeg-2.7.1\libavutil\internal.h里面有
#define MAKE_ACCESSORS(str, name, type, field) \
type av_##name##_get_##field(const str *s) { return s->field; } \
void av_##name##_set_##field(str *s, type v) { s->field = v; }
在ffmpeg-2.7.1\libavutil\frame.h里面有
MAKE_ACCESSORS(AVFrame, frame, int64_t, best_effort_timestamp)
根据上面几个定义可得:
void av_frame_get_best_effort_timestamp(AVFrame *frame);
void av_frame_set_best_effort_timestamp(AVFrame *frame, int64_t val);
MAKE_ACCESSORS(AVFrame, frame, int64_t, best_effort_timestamp)
#define MAKE_ACCESSORS(str, name, type, field) \
type av_##name##_get_##field(const str *s) { return s->field; } \
void av_##name##_set_##field(str *s, type v) { s->field = v; }
type av_frame_get_best_effort_timestamp(const AVFrame *s) { return s->best_effort_timestamp; }
void av_frame_set_best_effort_timestamp(AVFrame *s, int64_t v) { s->best_effort_timestamp = v; }
这篇关于av_frame_get_best_effort_timestamp的原理和使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!