]> git.sesse.net Git - ffmpeg/blobdiff - libavcodec/h264.h
Merge remote-tracking branch 'richardpl/escape130'
[ffmpeg] / libavcodec / h264.h
index 1668e23bdebcaeaeb13a47b95bbf0d742c19c874..ae71d68036775f9fb2dccb3a94cb9557a6bc103a 100644 (file)
@@ -229,7 +229,7 @@ typedef struct PPS{
     int transform_8x8_mode;     ///< transform_8x8_mode_flag
     uint8_t scaling_matrix4[6][16];
     uint8_t scaling_matrix8[6][64];
-    uint8_t chroma_qp_table[2][64];  ///< pre-scaled (with chroma_qp_index_offset) version of qp_table
+    uint8_t chroma_qp_table[2][QP_MAX_NUM+1];  ///< pre-scaled (with chroma_qp_index_offset) version of qp_table
     int chroma_qp_diff;
 }PPS;
 
@@ -490,6 +490,7 @@ typedef struct H264Context{
     Picture *long_ref[32];
     Picture default_ref_list[2][32]; ///< base reference list for all slices of a coded picture
     Picture *delayed_pic[MAX_DELAYED_PIC_COUNT+2]; //FIXME size?
+    int last_pocs[MAX_DELAYED_PIC_COUNT];
     Picture *next_output_pic;
     int outputed_poc;
     int next_outputed_poc;
@@ -499,6 +500,7 @@ typedef struct H264Context{
      */
     MMCO mmco[MAX_MMCO_COUNT];
     int mmco_index;
+    int mmco_reset;
 
     int long_ref_count;  ///< number of actual long term references
     int short_ref_count; ///< number of actual short term references
@@ -591,6 +593,10 @@ typedef struct H264Context{
     int16_t slice_row[MAX_SLICES]; ///< to detect when MAX_SLICES is too low
 
     int sync;                      ///< did we had a keyframe or recovery point
+
+    uint8_t parse_history[4];
+    int parse_history_count;
+    int parse_last_mb;
 }H264Context;