Commit 64db55ae authored by Kostya Shishkov's avatar Kostya Shishkov

New functions in DSPContext for VC-1 decoding

Originally committed as revision 5862 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 59d0fc57
...@@ -111,7 +111,7 @@ OBJS-$(CONFIG_TRUESPEECH_DECODER) += truespeech.o ...@@ -111,7 +111,7 @@ OBJS-$(CONFIG_TRUESPEECH_DECODER) += truespeech.o
OBJS-$(CONFIG_TSCC_DECODER) += tscc.o OBJS-$(CONFIG_TSCC_DECODER) += tscc.o
OBJS-$(CONFIG_TTA_DECODER) += tta.o OBJS-$(CONFIG_TTA_DECODER) += tta.o
OBJS-$(CONFIG_ULTI_DECODER) += ulti.o OBJS-$(CONFIG_ULTI_DECODER) += ulti.o
OBJS-$(CONFIG_VC1_DECODER) += vc1.o OBJS-$(CONFIG_VC1_DECODER) += vc1.o vc1dsp.o
OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o OBJS-$(CONFIG_VCR1_DECODER) += vcr1.o
OBJS-$(CONFIG_VCR1_ENCODER) += vcr1.o OBJS-$(CONFIG_VCR1_ENCODER) += vcr1.o
OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdav.o OBJS-$(CONFIG_VMDAUDIO_DECODER) += vmdav.o
......
...@@ -18,7 +18,7 @@ extern "C" { ...@@ -18,7 +18,7 @@ extern "C" {
#define AV_TOSTRING(s) #s #define AV_TOSTRING(s) #s
#define LIBAVCODEC_VERSION_INT ((51<<16)+(10<<8)+0) #define LIBAVCODEC_VERSION_INT ((51<<16)+(10<<8)+0)
#define LIBAVCODEC_VERSION 51.10.0 #define LIBAVCODEC_VERSION 51.11.0
#define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT #define LIBAVCODEC_BUILD LIBAVCODEC_VERSION_INT
#define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION) #define LIBAVCODEC_IDENT "Lavc" AV_STRINGIFY(LIBAVCODEC_VERSION)
......
...@@ -2588,6 +2588,15 @@ void ff_avg_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride) { ...@@ -2588,6 +2588,15 @@ void ff_avg_cavs_qpel16_mc00_c(uint8_t *dst, uint8_t *src, int stride) {
} }
#endif /* CONFIG_CAVS_DECODER */ #endif /* CONFIG_CAVS_DECODER */
#if defined(CONFIG_VC1_DECODER) || defined(CONFIG_WMV3_DECODER)
/* VC-1 specific */
void ff_vc1dsp_init(DSPContext* c, AVCodecContext *avctx);
void ff_put_vc1_mspel_mc00_c(uint8_t *dst, uint8_t *src, int stride, int rnd) {
put_pixels8_c(dst, src, stride, 8);
}
#endif /* CONFIG_VC1_DECODER||CONFIG_WMV3_DECODER */
static void wmv2_mspel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int w){ static void wmv2_mspel8_v_lowpass(uint8_t *dst, uint8_t *src, int dstStride, int srcStride, int w){
uint8_t *cm = cropTbl + MAX_NEG_CROP; uint8_t *cm = cropTbl + MAX_NEG_CROP;
int i; int i;
...@@ -4010,6 +4019,9 @@ void dsputil_init(DSPContext* c, AVCodecContext *avctx) ...@@ -4010,6 +4019,9 @@ void dsputil_init(DSPContext* c, AVCodecContext *avctx)
#ifdef CONFIG_CAVS_DECODER #ifdef CONFIG_CAVS_DECODER
ff_cavsdsp_init(c,avctx); ff_cavsdsp_init(c,avctx);
#endif #endif
#if defined(CONFIG_VC1_DECODER) || defined(CONFIG_WMV3_DECODER)
ff_vc1dsp_init(c,avctx);
#endif
c->put_mspel_pixels_tab[0]= put_mspel8_mc00_c; c->put_mspel_pixels_tab[0]= put_mspel8_mc00_c;
c->put_mspel_pixels_tab[1]= put_mspel8_mc10_c; c->put_mspel_pixels_tab[1]= put_mspel8_mc10_c;
......
...@@ -365,6 +365,18 @@ typedef struct DSPContext { ...@@ -365,6 +365,18 @@ typedef struct DSPContext {
void (*prefetch)(void *mem, int stride, int h); void (*prefetch)(void *mem, int stride, int h);
void (*shrink[4])(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height); void (*shrink[4])(uint8_t *dst, int dst_wrap, const uint8_t *src, int src_wrap, int width, int height);
/* vc1 functions */
void (*vc1_inv_trans_8x8)(DCTELEM *b);
void (*vc1_inv_trans_8x4)(DCTELEM *b, int n);
void (*vc1_inv_trans_4x8)(DCTELEM *b, int n);
void (*vc1_inv_trans_4x4)(DCTELEM *b, int n);
void (*vc1_v_overlap)(uint8_t* src, int stride, int rnd);
void (*vc1_h_overlap)(uint8_t* src, int stride, int rnd);
/* put 8x8 block with bicubic interpolation and quarterpel precision
* last argument is actually round value instead of height
*/
op_pixels_func put_vc1_mspel_pixels_tab[16];
} DSPContext; } DSPContext;
void dsputil_static_init(void); void dsputil_static_init(void);
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment