Browse Source

h264: drop a pointless indirection

tags/n3.1
Anton Khirnov 9 years ago
parent
commit
56087ec0a2
4 changed files with 14 additions and 15 deletions
  1. +0
    -4
      libavcodec/h264.h
  2. +12
    -6
      libavcodec/h264_mb_template.c
  3. +2
    -2
      libavcodec/h264_mc_template.c
  4. +0
    -3
      libavcodec/h264_slice.c

+ 0
- 4
libavcodec/h264.h View File

@@ -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];


+ 12
- 6
libavcodec/h264_mb_template.c View File

@@ -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->qpel_avg, h->h264chroma.avg_h264_chroma_pixels_tab,
h->h264qpel.put_h264_qpel_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->qpel_avg, h->h264chroma.avg_h264_chroma_pixels_tab,
h->h264qpel.put_h264_qpel_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->qpel_avg, h->h264chroma.avg_h264_chroma_pixels_tab,
h->h264qpel.put_h264_qpel_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);
} }


+ 2
- 2
libavcodec/h264_mc_template.c View File

@@ -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)


+ 0
- 3
libavcodec/h264_slice.c View File

@@ -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…
Cancel
Save