ffmpeg_function: av_frame_get_best_effort_timestamp


在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; }

這樣我們就可以知道了。。。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章