/**
* frame timestamp estimated using various heuristics, in stream time base
* Code outside libavcodec should access this field using:
- * av_opt_ptr(avcodec_get_frame_class(), frame, "best_effort_timestamp");
+ * av_frame_get_best_effort_timestamp(frame)
* - encoding: unused
* - decoding: set by libavcodec, read by user.
*/
/**
* reordered pos from the last AVPacket that has been input into the decoder
* Code outside libavcodec should access this field using:
- * av_opt_ptr(avcodec_get_frame_class(), frame, "pkt_pos");
+ * av_frame_get_pkt_pos(frame)
* - encoding: unused
* - decoding: Read by user.
*/
* - encoding: unused
* - decoding: read by user.
* Code outside libavcodec should access this field using:
- * av_opt_ptr(avcodec_get_frame_class(), frame, "channel_layout")
+ * av_frame_get_channel_layout(frame)
*/
int64_t channel_layout;
* - encoding: unused
* - decoding: read by user.
* Code outside libavcodec should access this field using:
- * av_opt_ptr(avcodec_get_frame_class(), frame, "sample_rate")
+ * av_frame_get_channel_layout(frame)
*/
int sample_rate;
} AVFrame;
+/**
+ * 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);
+int64_t av_frame_get_pkt_pos (const AVFrame *frame);
+int64_t av_frame_get_channel_layout (const AVFrame *frame);
+int av_frame_get_sample_rate (const AVFrame *frame);
+void av_frame_set_best_effort_timestamp(AVFrame *frame, int64_t val);
+void av_frame_set_pkt_pos (AVFrame *frame, int64_t val);
+void av_frame_set_channel_layout (AVFrame *frame, int64_t val);
+void av_frame_set_sample_rate (AVFrame *frame, int val);
+
struct AVCodecInternal;
enum AVFieldOrder {