mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2025-01-27 06:54:33 +00:00
vp3: Use hpeldsp instead of dsputil for half-pel functions
This makes vp3 independent of dsputil. Signed-off-by: Martin Storsjö <martin@martin.st>
This commit is contained in:
parent
68d8238cca
commit
3bd062bf7f
2
configure
vendored
2
configure
vendored
@ -1661,7 +1661,7 @@ vc1_decoder_select="error_resilience h263_decoder h264chroma h264qpel"
|
||||
vc1image_decoder_select="vc1_decoder"
|
||||
vorbis_decoder_select="mdct"
|
||||
vorbis_encoder_select="mdct"
|
||||
vp3_decoder_select="dsputil vp3dsp videodsp"
|
||||
vp3_decoder_select="hpeldsp vp3dsp videodsp"
|
||||
vp5_decoder_select="dsputil h264chroma videodsp vp3dsp"
|
||||
vp6_decoder_select="dsputil h264chroma huffman videodsp vp3dsp"
|
||||
vp6a_decoder_select="vp6_decoder"
|
||||
|
@ -38,6 +38,7 @@
|
||||
#include "internal.h"
|
||||
#include "dsputil.h"
|
||||
#include "get_bits.h"
|
||||
#include "hpeldsp.h"
|
||||
#include "videodsp.h"
|
||||
#include "vp3data.h"
|
||||
#include "vp3dsp.h"
|
||||
@ -137,7 +138,7 @@ typedef struct Vp3DecodeContext {
|
||||
int keyframe;
|
||||
uint8_t idct_permutation[64];
|
||||
uint8_t idct_scantable[64];
|
||||
DSPContext dsp;
|
||||
HpelDSPContext hdsp;
|
||||
VideoDSPContext vdsp;
|
||||
VP3DSPContext vp3dsp;
|
||||
DECLARE_ALIGNED(16, int16_t, block)[64];
|
||||
@ -1556,7 +1557,7 @@ static void render_slice(Vp3DecodeContext *s, int slice)
|
||||
VP3 source but this would be slower as
|
||||
put_no_rnd_pixels_tab is better optimzed */
|
||||
if(motion_halfpel_index != 3){
|
||||
s->dsp.put_no_rnd_pixels_tab[1][motion_halfpel_index](
|
||||
s->hdsp.put_no_rnd_pixels_tab[1][motion_halfpel_index](
|
||||
output_plane + first_pixel,
|
||||
motion_source, stride, 8);
|
||||
}else{
|
||||
@ -1596,7 +1597,7 @@ static void render_slice(Vp3DecodeContext *s, int slice)
|
||||
} else {
|
||||
|
||||
/* copy directly from the previous frame */
|
||||
s->dsp.put_pixels_tab[1][0](
|
||||
s->hdsp.put_pixels_tab[1][0](
|
||||
output_plane + first_pixel,
|
||||
last_plane + first_pixel,
|
||||
stride, 8);
|
||||
@ -1695,7 +1696,7 @@ static av_cold int vp3_decode_init(AVCodecContext *avctx)
|
||||
if (avctx->pix_fmt == AV_PIX_FMT_NONE)
|
||||
avctx->pix_fmt = AV_PIX_FMT_YUV420P;
|
||||
avctx->chroma_sample_location = AVCHROMA_LOC_CENTER;
|
||||
ff_dsputil_init(&s->dsp, avctx);
|
||||
ff_hpeldsp_init(&s->hdsp, avctx->flags | CODEC_FLAG_BITEXACT);
|
||||
ff_videodsp_init(&s->vdsp, 8);
|
||||
ff_vp3dsp_init(&s->vp3dsp, avctx->flags);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user