]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/h264.h
Merge commit '441e8ae5efd681055e5af6f4317fb60110de9dd0'
[ffmpeg] / libavcodec / h264.h
index 95db912465b893dfa2299f0861a357308147c56f..15b9a5da12a497364c8f16e4315289af2f0f3d57 100644 (file)
@@ -409,7 +409,8 @@ typedef struct H264SliceContext {
     int mb_xy;
     int resync_mb_x;
     int resync_mb_y;
-    int mb_index_end;
+    // index of the first MB of the next slice
+    int next_slice_idx;
     int mb_skip_run;
     int is_complex;
 
@@ -519,6 +520,14 @@ typedef struct H264Context {
     int width, height;
     int chroma_x_shift, chroma_y_shift;
 
+    /**
+     * Backup frame properties: needed, because they can be different
+     * between returned frame and last decoded frame.
+     **/
+    int backup_width;
+    int backup_height;
+    enum AVPixelFormat backup_pix_fmt;
+
     int droppable;
     int coded_picture_number;
     int low_delay;
@@ -773,6 +782,15 @@ typedef struct H264Context {
 
     int missing_fields;
 
+    uint8_t afd;
+    int has_afd;
+
+
+/* for frame threading, this is set to 1
+     * after finish_setup() has been called, so we cannot modify
+     * some context properties (which are supposed to stay constant between
+     * slices) anymore */
+    int setup_finished;
 
     // Timestamp stuff
     int sei_buffering_period_present;   ///< Buffering period SEI flag