mirror of https://git.ffmpeg.org/ffmpeg.git
h264: drop a pointless indirection
This commit is contained in:
parent
0e7772c5e4
commit
56087ec0a2
|
@ -644,10 +644,6 @@ typedef struct H264Context {
|
||||||
AVBufferPool *mb_type_pool;
|
AVBufferPool *mb_type_pool;
|
||||||
AVBufferPool *motion_val_pool;
|
AVBufferPool *motion_val_pool;
|
||||||
AVBufferPool *ref_index_pool;
|
AVBufferPool *ref_index_pool;
|
||||||
|
|
||||||
/* Motion Estimation */
|
|
||||||
qpel_mc_func (*qpel_put)[16];
|
|
||||||
qpel_mc_func (*qpel_avg)[16];
|
|
||||||
} H264Context;
|
} H264Context;
|
||||||
|
|
||||||
extern const uint16_t ff_h264_mb_sizes[4];
|
extern const uint16_t ff_h264_mb_sizes[4];
|
||||||
|
|
|
@ -173,14 +173,18 @@ static av_noinline void FUNC(hl_decode_mb)(const H264Context *h, H264SliceContex
|
||||||
} else {
|
} else {
|
||||||
if (chroma422) {
|
if (chroma422) {
|
||||||
FUNC(hl_motion_422)(h, sl, dest_y, dest_cb, dest_cr,
|
FUNC(hl_motion_422)(h, sl, dest_y, dest_cb, dest_cr,
|
||||||
h->qpel_put, h->h264chroma.put_h264_chroma_pixels_tab,
|
h->h264qpel.put_h264_qpel_pixels_tab,
|
||||||
h->qpel_avg, h->h264chroma.avg_h264_chroma_pixels_tab,
|
h->h264chroma.put_h264_chroma_pixels_tab,
|
||||||
|
h->h264qpel.avg_h264_qpel_pixels_tab,
|
||||||
|
h->h264chroma.avg_h264_chroma_pixels_tab,
|
||||||
h->h264dsp.weight_h264_pixels_tab,
|
h->h264dsp.weight_h264_pixels_tab,
|
||||||
h->h264dsp.biweight_h264_pixels_tab);
|
h->h264dsp.biweight_h264_pixels_tab);
|
||||||
} else {
|
} else {
|
||||||
FUNC(hl_motion_420)(h, sl, dest_y, dest_cb, dest_cr,
|
FUNC(hl_motion_420)(h, sl, dest_y, dest_cb, dest_cr,
|
||||||
h->qpel_put, h->h264chroma.put_h264_chroma_pixels_tab,
|
h->h264qpel.put_h264_qpel_pixels_tab,
|
||||||
h->qpel_avg, h->h264chroma.avg_h264_chroma_pixels_tab,
|
h->h264chroma.put_h264_chroma_pixels_tab,
|
||||||
|
h->h264qpel.avg_h264_qpel_pixels_tab,
|
||||||
|
h->h264chroma.avg_h264_chroma_pixels_tab,
|
||||||
h->h264dsp.weight_h264_pixels_tab,
|
h->h264dsp.weight_h264_pixels_tab,
|
||||||
h->h264dsp.biweight_h264_pixels_tab);
|
h->h264dsp.biweight_h264_pixels_tab);
|
||||||
}
|
}
|
||||||
|
@ -336,8 +340,10 @@ static av_noinline void FUNC(hl_decode_mb_444)(const H264Context *h, H264SliceCo
|
||||||
linesize, 0, 1, SIMPLE, PIXEL_SHIFT);
|
linesize, 0, 1, SIMPLE, PIXEL_SHIFT);
|
||||||
} else {
|
} else {
|
||||||
FUNC(hl_motion_444)(h, sl, dest[0], dest[1], dest[2],
|
FUNC(hl_motion_444)(h, sl, dest[0], dest[1], dest[2],
|
||||||
h->qpel_put, h->h264chroma.put_h264_chroma_pixels_tab,
|
h->h264qpel.put_h264_qpel_pixels_tab,
|
||||||
h->qpel_avg, h->h264chroma.avg_h264_chroma_pixels_tab,
|
h->h264chroma.put_h264_chroma_pixels_tab,
|
||||||
|
h->h264qpel.avg_h264_qpel_pixels_tab,
|
||||||
|
h->h264chroma.avg_h264_chroma_pixels_tab,
|
||||||
h->h264dsp.weight_h264_pixels_tab,
|
h->h264dsp.weight_h264_pixels_tab,
|
||||||
h->h264dsp.biweight_h264_pixels_tab);
|
h->h264dsp.biweight_h264_pixels_tab);
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,9 +64,9 @@ static void mc_part(const H264Context *h, H264SliceContext *sl,
|
||||||
static void MCFUNC(hl_motion)(const H264Context *h, H264SliceContext *sl,
|
static void MCFUNC(hl_motion)(const H264Context *h, H264SliceContext *sl,
|
||||||
uint8_t *dest_y,
|
uint8_t *dest_y,
|
||||||
uint8_t *dest_cb, uint8_t *dest_cr,
|
uint8_t *dest_cb, uint8_t *dest_cr,
|
||||||
qpel_mc_func(*qpix_put)[16],
|
const qpel_mc_func(*qpix_put)[16],
|
||||||
const h264_chroma_mc_func(*chroma_put),
|
const h264_chroma_mc_func(*chroma_put),
|
||||||
qpel_mc_func(*qpix_avg)[16],
|
const qpel_mc_func(*qpix_avg)[16],
|
||||||
const h264_chroma_mc_func(*chroma_avg),
|
const h264_chroma_mc_func(*chroma_avg),
|
||||||
const h264_weight_func *weight_op,
|
const h264_weight_func *weight_op,
|
||||||
const h264_biweight_func *weight_avg)
|
const h264_biweight_func *weight_avg)
|
||||||
|
|
|
@ -934,9 +934,6 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl)
|
||||||
int frame_num, droppable, picture_structure;
|
int frame_num, droppable, picture_structure;
|
||||||
int mb_aff_frame = 0;
|
int mb_aff_frame = 0;
|
||||||
|
|
||||||
h->qpel_put = h->h264qpel.put_h264_qpel_pixels_tab;
|
|
||||||
h->qpel_avg = h->h264qpel.avg_h264_qpel_pixels_tab;
|
|
||||||
|
|
||||||
first_mb_in_slice = get_ue_golomb(&sl->gb);
|
first_mb_in_slice = get_ue_golomb(&sl->gb);
|
||||||
|
|
||||||
if (first_mb_in_slice == 0) { // FIXME better field boundary detection
|
if (first_mb_in_slice == 0) { // FIXME better field boundary detection
|
||||||
|
|
Loading…
Reference in New Issue