diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index a32f9614034ab415baeb17922efd9dbcb0970c2a..98d1489f34717f0763e301656b7f7db474a7572f 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -753,7 +753,11 @@ typedef struct AVFrame {
 #define DEFAULT_FRAME_RATE_BASE 1001000
 
 /**
- * main external API structure
+ * main external API structure.
+ * New fields can be added to the end with minor version bumps.
+ * Removial, reordering and changes to existing fields require a Major
+ * version bump.
+ * sizeof(AVCodecContext) must not be used outside libav*
  */
 typedef struct AVCodecContext {
     /**
diff --git a/libavformat/avformat.h b/libavformat/avformat.h
index c0ad4a661396d5a33c80f1112f932e805d8e8d0e..bbe818f29dec003ed1e53c123e3b29bff62746eb 100644
--- a/libavformat/avformat.h
+++ b/libavformat/avformat.h
@@ -358,7 +358,13 @@ typedef struct AVProgram {
 
 #define MAX_STREAMS 20
 
-/* format I/O context */
+/**
+ * format I/O context.
+ * New fields can be added to the end with minor version bumps.
+ * Removial, reordering and changes to existing fields require a Major
+ * version bump.
+ * sizeof(AVFormatContext) must not be used outside libav*
+ */
 typedef struct AVFormatContext {
     const AVClass *av_class; /**< set by av_alloc_format_context */
     /* can only be iformat or oformat, not both at the same time */