You've already forked FFmpeg
mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-10 06:10:52 +02:00
LGPL SSE2 H.264 iDCT
This leaves no more GPL-only H.264 decoding asm code. Approved by Loren. Originally committed as revision 25092 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
@@ -6,11 +6,11 @@ YASM-OBJS-FFT-$(HAVE_AMD3DNOWEXT) += x86/fft_3dn2.o
|
|||||||
YASM-OBJS-FFT-$(HAVE_SSE) += x86/fft_sse.o
|
YASM-OBJS-FFT-$(HAVE_SSE) += x86/fft_sse.o
|
||||||
YASM-OBJS-$(CONFIG_FFT) += x86/fft_mmx.o \
|
YASM-OBJS-$(CONFIG_FFT) += x86/fft_mmx.o \
|
||||||
$(YASM-OBJS-FFT-yes)
|
$(YASM-OBJS-FFT-yes)
|
||||||
YASM-OBJS-$(CONFIG_GPL) += x86/h264_idct_sse2.o \
|
|
||||||
|
|
||||||
MMX-OBJS-$(CONFIG_H264DSP) += x86/h264dsp_mmx.o
|
MMX-OBJS-$(CONFIG_H264DSP) += x86/h264dsp_mmx.o
|
||||||
YASM-OBJS-$(CONFIG_H264DSP) += x86/h264_deblock.o \
|
YASM-OBJS-$(CONFIG_H264DSP) += x86/h264_deblock.o \
|
||||||
x86/h264_weight.o \
|
x86/h264_weight.o \
|
||||||
|
x86/h264_idct_sse2.o \
|
||||||
|
|
||||||
YASM-OBJS-$(CONFIG_H264PRED) += x86/h264_intrapred.o
|
YASM-OBJS-$(CONFIG_H264PRED) += x86/h264_intrapred.o
|
||||||
MMX-OBJS-$(CONFIG_H264PRED) += x86/h264_intrapred_init.o
|
MMX-OBJS-$(CONFIG_H264PRED) += x86/h264_intrapred_init.o
|
||||||
|
@@ -8,19 +8,21 @@
|
|||||||
;* Holger Lubitz <hal@duncan.ol.sub.de>
|
;* Holger Lubitz <hal@duncan.ol.sub.de>
|
||||||
;* Min Chen <chenm001.163.com>
|
;* Min Chen <chenm001.163.com>
|
||||||
;*
|
;*
|
||||||
;* This program is free software; you can redistribute it and/or modify
|
;* This file is part of FFmpeg.
|
||||||
;* it under the terms of the GNU General Public License as published by
|
|
||||||
;* the Free Software Foundation; either version 2 of the License, or
|
|
||||||
;* (at your option) any later version.
|
|
||||||
;*
|
;*
|
||||||
;* This program is distributed in the hope that it will be useful,
|
;* FFmpeg is free software; you can redistribute it and/or
|
||||||
|
;* modify it under the terms of the GNU Lesser General Public
|
||||||
|
;* License as published by the Free Software Foundation; either
|
||||||
|
;* version 2.1 of the License, or (at your option) any later version.
|
||||||
|
;*
|
||||||
|
;* FFmpeg is distributed in the hope that it will be useful,
|
||||||
;* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
;* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
;* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
;* GNU General Public License for more details.
|
;* Lesser General Public License for more details.
|
||||||
;*
|
;*
|
||||||
;* You should have received a copy of the GNU General Public License
|
;* You should have received a copy of the GNU Lesser General Public
|
||||||
;* along with this program; if not, write to the Free Software
|
;* License along with FFmpeg; if not, write to the Free Software
|
||||||
;* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA.
|
;* 51, Inc., Foundation Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
;*****************************************************************************
|
;*****************************************************************************
|
||||||
|
|
||||||
%include "x86inc.asm"
|
%include "x86inc.asm"
|
||||||
|
@@ -475,7 +475,7 @@ static void ff_h264_idct_add8_mmx2(uint8_t **dest, const int *block_offset, DCTE
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#if CONFIG_GPL && HAVE_YASM
|
#if HAVE_YASM
|
||||||
static void ff_h264_idct_dc_add8_mmx2(uint8_t *dst, int16_t *block, int stride)
|
static void ff_h264_idct_dc_add8_mmx2(uint8_t *dst, int16_t *block, int stride)
|
||||||
{
|
{
|
||||||
__asm__ volatile(
|
__asm__ volatile(
|
||||||
@@ -820,11 +820,9 @@ void ff_h264dsp_init_x86(H264DSPContext *c)
|
|||||||
c->h264_v_loop_filter_luma_intra = ff_x264_deblock_v_luma_intra_sse2;
|
c->h264_v_loop_filter_luma_intra = ff_x264_deblock_v_luma_intra_sse2;
|
||||||
c->h264_h_loop_filter_luma_intra = ff_x264_deblock_h_luma_intra_sse2;
|
c->h264_h_loop_filter_luma_intra = ff_x264_deblock_h_luma_intra_sse2;
|
||||||
#endif
|
#endif
|
||||||
#if CONFIG_GPL
|
|
||||||
c->h264_idct_add16 = ff_h264_idct_add16_sse2;
|
c->h264_idct_add16 = ff_h264_idct_add16_sse2;
|
||||||
c->h264_idct_add8 = ff_h264_idct_add8_sse2;
|
c->h264_idct_add8 = ff_h264_idct_add8_sse2;
|
||||||
c->h264_idct_add16intra = ff_h264_idct_add16intra_sse2;
|
c->h264_idct_add16intra = ff_h264_idct_add16intra_sse2;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
if (mm_flags&AV_CPU_FLAG_SSSE3) {
|
if (mm_flags&AV_CPU_FLAG_SSSE3) {
|
||||||
c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16x16_ssse3;
|
c->biweight_h264_pixels_tab[0]= ff_h264_biweight_16x16_ssse3;
|
||||||
|
Reference in New Issue
Block a user