diff options
author | Anton Khirnov <anton@khirnov.net> | 2020-10-09 08:15:27 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2020-10-28 14:52:06 +0100 |
commit | 8741f1fe2663f0d5adeaa21c98d6b03cac9dbaa9 (patch) | |
tree | 976699b37877549f1d941b529e1c8e4db4315c92 /libavformat/internal.h | |
parent | 87f0c8280c7556b52b72b9379547eed77e9810d7 (diff) | |
download | ffmpeg-8741f1fe2663f0d5adeaa21c98d6b03cac9dbaa9.tar.gz |
lavf: move AVStream.info to AVStreamInternal
This struct is for internal use of avformat_find_stream_info(), so it
should not be exposed in public headers. Keep a stub pointer in its
place to avoid changing AVStream layout, since e.g. ffmpeg.c accesses
some fields located after it (even though they are marked as private).
Diffstat (limited to 'libavformat/internal.h')
-rw-r--r-- | libavformat/internal.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/libavformat/internal.h b/libavformat/internal.h index f4174628e0..30b4df9181 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -191,6 +191,39 @@ struct AVStreamInternal { int is_intra_only; FFFrac *priv_pts; + +#define MAX_STD_TIMEBASES (30*12+30+3+6) + /** + * Stream information used internally by avformat_find_stream_info() + */ + struct { + int64_t last_dts; + int64_t duration_gcd; + int duration_count; + int64_t rfps_duration_sum; + double (*duration_error)[2][MAX_STD_TIMEBASES]; + int64_t codec_info_duration; + int64_t codec_info_duration_fields; + int frame_delay_evidence; + + /** + * 0 -> decoder has not been searched for yet. + * >0 -> decoder found + * <0 -> decoder with codec_id == -found_decoder has not been found + */ + int found_decoder; + + int64_t last_duration; + + /** + * Those are used for average framerate estimation. + */ + int64_t fps_first_dts; + int fps_first_dts_idx; + int64_t fps_last_dts; + int fps_last_dts_idx; + + } *info; }; #ifdef __GNUC__ |