在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; }
这样我们就可以知道了。。。