diff options
author | Clément Bœsch <clement@stupeflix.com> | 2016-06-20 13:00:17 +0200 |
---|---|---|
committer | Clément Bœsch <clement@stupeflix.com> | 2016-06-20 15:34:26 +0200 |
commit | 405398989093f5ef19cb63eab6a9205a0c40ce4f (patch) | |
tree | e92a5fbaf5f1bc4f151939e7ffb753f85c6eaa86 /libavcodec/h264.h | |
parent | c8f7a23319e54059c6a355746845c4e4e0215509 (diff) | |
parent | b77fffa127663028169c5ed543956af4b9496c29 (diff) | |
download | ffmpeg-405398989093f5ef19cb63eab6a9205a0c40ce4f.tar.gz |
Merge commit 'b77fffa127663028169c5ed543956af4b9496c29'
* commit 'b77fffa127663028169c5ed543956af4b9496c29':
h264: make slice threading work with deblocking_filter=1
again label, and SLICE_SINGLETHREAD error handling are preserved as that
SLICE_SINGLETHREAD can be raised on a remaining case.
slice_context_count is also kept since it's still in use.
Merged-by: Clément Bœsch <clement@stupeflix.com>
Diffstat (limited to 'libavcodec/h264.h')
-rw-r--r-- | libavcodec/h264.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h index 5e9827d6c8..61d94cd6d4 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -407,7 +407,6 @@ typedef struct H264SliceContext { H264Ref ref_list[2][48]; /**< 0..15: frame refs, 16..47: mbaff field refs. * Reordered version of default_ref_list * according to picture reordering in slice header */ - int ref2frm[MAX_SLICES][2][64]; ///< reference to frame number lists, used in the loop filter, the first 2 are for -2,-1 const uint8_t *intra_pcm_ptr; int16_t *dc_val_base; @@ -494,6 +493,11 @@ typedef struct H264Context { int context_initialized; int flags; int workaround_bugs; + /* Set when slice threading is used and at least one slice uses deblocking + * mode 1 (i.e. across slice boundaries). Then we disable the loop filter + * during normal MB decoding and execute it serially at the end. + */ + int postpone_filter; int8_t(*intra4x4_pred_mode); H264PredContext hpc; @@ -685,6 +689,7 @@ typedef struct H264Context { AVBufferPool *mb_type_pool; AVBufferPool *motion_val_pool; AVBufferPool *ref_index_pool; + int ref2frm[MAX_SLICES][2][64]; ///< reference to frame number lists, used in the loop filter, the first 2 are for -2,-1 } H264Context; extern const uint16_t ff_h264_mb_sizes[4]; |