summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Bœsch <clement@stupeflix.com>2016-06-20 12:31:29 +0200
committerClément Bœsch <clement@stupeflix.com>2016-06-20 12:31:29 +0200
commit0ab1816315b01dae882a93db90e7f6709e6a71fd (patch)
treeb92754ea02eb1f1f354a5ca63e9b6a170fe99232
parentdcdf69561fde475f2d99573174eb5ae54e3052de (diff)
parent56087ec0a29314d1860f6f0e6f40fbb9b40feccd (diff)
Merge commit '56087ec0a29314d1860f6f0e6f40fbb9b40feccd'
* commit '56087ec0a29314d1860f6f0e6f40fbb9b40feccd': h264: drop a pointless indirection Merged-by: Clément Bœsch <clement@stupeflix.com>
-rw-r--r--libavcodec/h264.h5
-rw-r--r--libavcodec/h264_mb_template.c18
-rw-r--r--libavcodec/h264_mc_template.c4
-rw-r--r--libavcodec/h264_slice.c3
4 files changed, 14 insertions, 16 deletions
diff --git a/libavcodec/h264.h b/libavcodec/h264.h
index 0cda19164e..60355bfa31 100644
--- a/libavcodec/h264.h
+++ b/libavcodec/h264.h
@@ -687,11 +687,6 @@ typedef struct H264Context {
AVBufferPool *mb_type_pool;
AVBufferPool *motion_val_pool;
AVBufferPool *ref_index_pool;
-
- /* Motion Estimation */
- qpel_mc_func (*qpel_put)[16];
- qpel_mc_func (*qpel_avg)[16];
-
} H264Context;
extern const uint16_t ff_h264_mb_sizes[4];
diff --git a/libavcodec/h264_mb_template.c b/libavcodec/h264_mb_template.c
index f582b00a5e..d5ea26a6e3 100644
--- a/libavcodec/h264_mb_template.c
+++ b/libavcodec/h264_mb_template.c
@@ -170,14 +170,18 @@ static av_noinline void FUNC(hl_decode_mb)(const H264Context *h, H264SliceContex
} else {
if (chroma422) {
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.biweight_h264_pixels_tab);
} else {
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.biweight_h264_pixels_tab);
}
@@ -333,8 +337,10 @@ static av_noinline void FUNC(hl_decode_mb_444)(const H264Context *h, H264SliceCo
linesize, 0, 1, SIMPLE, PIXEL_SHIFT);
} else {
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.biweight_h264_pixels_tab);
}
diff --git a/libavcodec/h264_mc_template.c b/libavcodec/h264_mc_template.c
index bf8f0ad473..cd4a04e082 100644
--- a/libavcodec/h264_mc_template.c
+++ b/libavcodec/h264_mc_template.c
@@ -64,9 +64,9 @@ static void mc_part(const H264Context *h, H264SliceContext *sl,
static void MCFUNC(hl_motion)(const H264Context *h, H264SliceContext *sl,
uint8_t *dest_y,
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),
- qpel_mc_func(*qpix_avg)[16],
+ const qpel_mc_func(*qpix_avg)[16],
const h264_chroma_mc_func(*chroma_avg),
const h264_weight_func *weight_op,
const h264_biweight_func *weight_avg)
diff --git a/libavcodec/h264_slice.c b/libavcodec/h264_slice.c
index c303051090..0365e9b4c5 100644
--- a/libavcodec/h264_slice.c
+++ b/libavcodec/h264_slice.c
@@ -1059,9 +1059,6 @@ int ff_h264_decode_slice_header(H264Context *h, H264SliceContext *sl)
if (first_slice)
av_assert0(!h->setup_finished);
- 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_long(&sl->gb);
if (first_mb_in_slice == 0) { // FIXME better field boundary detection