diff options
author | Andreas Öman <andreas@olebyn.nu> | 2007-09-05 20:18:15 +0400 |
---|---|---|
committer | Guillaume Poirier <gpoirier@mplayerhq.hu> | 2007-09-05 20:18:15 +0400 |
commit | afebe2f7cac1e23ea5b198cfe5bfabf5e7f1105f (patch) | |
tree | f60825730d3f0d4a625928812b5ef9651d3e302d /libavcodec/h264.h | |
parent | e146ce521f03b1cd472a61880a9438f55369d9d4 (diff) |
Add slice-based parallel H.264 decoding
Patch by Andreas Öman % andreas A olebyn P nu %
NB: depends on having a thread library activated at config time, and on
having a source encoded with multiple slices
Original threads:
date: May 18, 2007 11:00 PM
subject: [FFmpeg-devel] Parallelized h264 proof-of-concept
date: Jun 15, 2007 10:10 PM
subject: [FFmpeg-devel] [PATCH] h264 parallelized, (was: Parallelized h264 proof-of-concept)
date: Jun 25, 2007 7:02 PM
subject: Re: [FFmpeg-devel] [PATCH] h264 parallelized
Originally committed as revision 10407 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/h264.h')
-rw-r--r-- | libavcodec/h264.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h index d06bb33a42..8dd6cdd1af 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -380,6 +380,35 @@ typedef struct H264Context{ const uint8_t *field_scan8x8_cavlc_q0; int x264_build; + + /** + * @defgroup multithreading Members for slice based multithreading + * @{ + */ + struct H264Context *thread_context[MAX_THREADS]; + + /** + * current slice number, used to initalize slice_num of each thread/context + */ + int current_slice; + + /** + * Max number of threads / contexts. + * This is equal to AVCodecContext.thread_count unless + * multithreaded decoding is impossible, in which case it is + * reduced to 1. + */ + int max_contexts; + + /** + * 1 if the single thread fallback warning has already been + * displayed, 0 otherwise. + */ + int single_decode_warning; + + int last_slice_type; + /** @} */ + }H264Context; #endif /* H264_H */ |