lavc: implement accessors for some AVFrame fields.
[ffmpeg.git] / libavcodec / avcodec.h
index b2279ea..2e56a02 100644 (file)
@@ -1244,7 +1244,7 @@ typedef struct AVFrame {
     /**
      * 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.
      */
@@ -1253,7 +1253,7 @@ typedef struct AVFrame {
     /**
      * 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.
      */
@@ -1264,7 +1264,7 @@ typedef struct AVFrame {
      * - 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;
 
@@ -1273,12 +1273,26 @@ typedef struct AVFrame {
      * - 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 {