diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2013-11-01 14:33:36 +0400 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2013-11-01 15:59:08 +0400 |
commit | 78265fcfeee153e5e26ad4dbc7831a84ade447d6 (patch) | |
tree | 92bc81fca00966f3c867baa7dd339eb5c62730c4 /libavcodec/h264.h | |
parent | 2acc525d786f0ee4b0a354858a5f146ce6580658 (diff) | |
parent | 28096e0a806e57376541e6222d315619906e3c55 (diff) |
Merge commit '28096e0a806e57376541e6222d315619906e3c55'
* commit '28096e0a806e57376541e6222d315619906e3c55':
h264: wait for initial complete frame before outputing frames
Conflicts:
doc/APIchanges
libavcodec/h264.c
libavcodec/mpegvideo.h
libavutil/frame.h
libavutil/version.h
See: a64b028aeb6579636e578ceb73f69b468bddb2f0 (as well as various later commits)
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/h264.h')
-rw-r--r-- | libavcodec/h264.h | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h index ed7f04b853..b7e1214a76 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -641,6 +641,14 @@ typedef struct H264Context { * frames. */ int sei_recovery_frame_cnt; + + /** + * Are the SEI recovery points looking valid. + */ + int valid_recovery_point; + + FPA sei_fpa; + /** * recovery_frame is the frame_num at which the next frame should * be fully constructed. @@ -649,12 +657,18 @@ typedef struct H264Context { */ int recovery_frame; - /** - * Are the SEI recovery points looking valid. - */ - int valid_recovery_point; +/** + * We have seen an IDR, so all the following frames in coded order are correctly + * decodable. + */ +#define FRAME_RECOVERED_IDR (1 << 0) +/** + * Sufficient number of frames have been decoded since a SEI recovery point, + * so all the following frames in presentation order are correct. + */ +#define FRAME_RECOVERED_SEI (1 << 1) - FPA sei_fpa; + int frame_recovered; ///< Initial frame has been completely recovered int luma_weight_flag[2]; ///< 7.4.3.2 luma_weight_lX_flag int chroma_weight_flag[2]; ///< 7.4.3.2 chroma_weight_lX_flag @@ -668,8 +682,6 @@ 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; |