On 2013-12-14 17:32:57 -0800, Mason Carter wrote: > Apply David Conrad's old patch to the modern codebase. > > http://ffmpeg.org/pipermail/ffmpeg-devel/2009-April/059877.html > --- > libavcodec/arm/h264cmc_neon.S | 13 +++++++++++++ > libavcodec/arm/vc1dsp_init_neon.c | 10 ++++++++++ > 2 files changed, 23 insertions(+) > > diff --git a/libavcodec/arm/h264cmc_neon.S b/libavcodec/arm/h264cmc_neon.S > index 15301f8..3183dd8 100644 > --- a/libavcodec/arm/h264cmc_neon.S > +++ b/libavcodec/arm/h264cmc_neon.S > @@ -39,6 +39,9 @@ function ff_\type\()_\codec\()_chroma_mc8_neon, export=1 > add r6, r6, r7, lsl #1 > vld1.16 {d22[],d23[]}, [r6,:16] > .endif > + .ifc \codec,vc1 > + vmov.u16 q11, #28 > + .endif > > A muls r7, r4, r5 > T mul r7, r4, r5 > @@ -183,6 +186,9 @@ function ff_\type\()_\codec\()_chroma_mc4_neon, export=1 > add r6, r6, r7, lsl #1 > vld1.16 {d22[],d23[]}, [r6,:16] > .endif > + .ifc \codec,vc1 > + vmov.u16 q11, #28 > + .endif > > A muls r7, r4, r5 > T mul r7, r4, r5 > @@ -396,3 +402,10 @@ endconst > h264_chroma_mc4 put, rv40 > h264_chroma_mc4 avg, rv40 > #endif > + > +#if CONFIG_VC1_DECODER > + h264_chroma_mc8 put, vc1 > + h264_chroma_mc8 avg, vc1 > + h264_chroma_mc4 put, vc1 > + h264_chroma_mc4 avg, vc1 > +#endif > diff --git a/libavcodec/arm/vc1dsp_init_neon.c > b/libavcodec/arm/vc1dsp_init_neon.c > index 105e47d..218788c 100644 > --- a/libavcodec/arm/vc1dsp_init_neon.c > +++ b/libavcodec/arm/vc1dsp_init_neon.c > @@ -54,6 +54,11 @@ void ff_put_vc1_mspel_mc31_neon(uint8_t *dst, const > uint8_t *src, ptrdiff_t stri > void ff_put_vc1_mspel_mc32_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t > stride, int rnd); > void ff_put_vc1_mspel_mc33_neon(uint8_t *dst, const uint8_t *src, ptrdiff_t > stride, int rnd); > > +void ff_put_vc1_chroma_mc8_neon(uint8_t *dst, uint8_t *src, int stride, int > h, int x, int y); > +void ff_avg_vc1_chroma_mc8_neon(uint8_t *dst, uint8_t *src, int stride, int > h, int x, int y); > +void ff_put_vc1_chroma_mc4_neon(uint8_t *dst, uint8_t *src, int stride, int > h, int x, int y); > +void ff_avg_vc1_chroma_mc4_neon(uint8_t *dst, uint8_t *src, int stride, int > h, int x, int y); > + > av_cold void ff_vc1dsp_init_neon(VC1DSPContext *dsp) > { > dsp->vc1_inv_trans_8x8 = ff_vc1_inv_trans_8x8_neon; > @@ -81,4 +86,9 @@ av_cold void ff_vc1dsp_init_neon(VC1DSPContext *dsp) > dsp->put_vc1_mspel_pixels_tab[13] = ff_put_vc1_mspel_mc13_neon; > dsp->put_vc1_mspel_pixels_tab[14] = ff_put_vc1_mspel_mc23_neon; > dsp->put_vc1_mspel_pixels_tab[15] = ff_put_vc1_mspel_mc33_neon; > + > + dsp->put_no_rnd_vc1_chroma_pixels_tab[0] = ff_put_vc1_chroma_mc8_neon; > + dsp->avg_no_rnd_vc1_chroma_pixels_tab[0] = ff_avg_vc1_chroma_mc8_neon; > + dsp->put_no_rnd_vc1_chroma_pixels_tab[1] = ff_put_vc1_chroma_mc4_neon; > + dsp->avg_no_rnd_vc1_chroma_pixels_tab[1] = ff_avg_vc1_chroma_mc4_neon; > } > --
ok The first patch looks good too (no review) even though it's a little verbose. full review will probably follow tomorrow. Janne _______________________________________________ libav-devel mailing list [email protected] https://lists.libav.org/mailman/listinfo/libav-devel
