diff options
author | Anton Khirnov <anton@khirnov.net> | 2015-01-17 22:28:46 +0100 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2015-03-21 11:27:12 +0100 |
commit | d231e84b06a9964c840cff4e228509f706165fb6 (patch) | |
tree | 0bd1fa87587cf1601faf4ef9648110442e586a1d /libavcodec/h264.h | |
parent | d40ae0e595fe90b5583b9269f8bb000402bde5a6 (diff) | |
download | ffmpeg-d231e84b06a9964c840cff4e228509f706165fb6.tar.gz |
h264: move the quantizers into the per-slice context
Diffstat (limited to 'libavcodec/h264.h')
-rw-r--r-- | libavcodec/h264.h | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h index a8e1101aa5..1820ca5990 100644 --- a/libavcodec/h264.h +++ b/libavcodec/h264.h @@ -299,6 +299,9 @@ typedef struct H264Picture { typedef struct H264SliceContext { struct H264Context *h264; + int qscale; + int chroma_qp[2]; // QPc + // Weighted pred stuff int use_weight; int use_weight_chroma; @@ -332,7 +335,6 @@ typedef struct H264Context { int nb_slice_ctx; int pixel_shift; ///< 0 for 8-bit H264, 1 for high-bit-depth H264 - int chroma_qp[2]; // QPc int qp_thresh; ///< QP threshold to skip loopfilter @@ -341,7 +343,6 @@ typedef struct H264Context { ptrdiff_t linesize, uvlinesize; int chroma_x_shift, chroma_y_shift; - int qscale; int droppable; int coded_picture_number; int low_delay; @@ -804,15 +805,15 @@ void ff_h264_decode_init_vlc(void); * Decode a macroblock * @return 0 if OK, ER_AC_ERROR / ER_DC_ERROR / ER_MV_ERROR on error */ -int ff_h264_decode_mb_cavlc(H264Context *h); +int ff_h264_decode_mb_cavlc(H264Context *h, H264SliceContext *sl); /** * Decode a CABAC coded macroblock * @return 0 if OK, ER_AC_ERROR / ER_DC_ERROR / ER_MV_ERROR on error */ -int ff_h264_decode_mb_cabac(H264Context *h); +int ff_h264_decode_mb_cabac(H264Context *h, H264SliceContext *sl); -void ff_h264_init_cabac_states(H264Context *h); +void ff_h264_init_cabac_states(H264Context *h, H264SliceContext *sl); void h264_init_dequant_tables(H264Context *h); @@ -820,10 +821,10 @@ void ff_h264_direct_dist_scale_factor(H264Context *const h); void ff_h264_direct_ref_list_init(H264Context *const h); void ff_h264_pred_direct_motion(H264Context *const h, int *mb_type); -void ff_h264_filter_mb_fast(H264Context *h, int mb_x, int mb_y, +void ff_h264_filter_mb_fast(H264Context *h, H264SliceContext *sl, int mb_x, int mb_y, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, unsigned int linesize, unsigned int uvlinesize); -void ff_h264_filter_mb(H264Context *h, int mb_x, int mb_y, +void ff_h264_filter_mb(H264Context *h, H264SliceContext *sl, int mb_x, int mb_y, uint8_t *img_y, uint8_t *img_cb, uint8_t *img_cr, unsigned int linesize, unsigned int uvlinesize); |