在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; }
這樣我們就可以知道了。。。