4 |
* - Native API implementation - |
* - Native API implementation - |
5 |
* |
* |
6 |
* Copyright(C) 2001-2004 Peter Ross <pross@xvid.org> |
* Copyright(C) 2001-2004 Peter Ross <pross@xvid.org> |
7 |
|
* 2002-2010 Michael Militzer <isibaar@xvid.org> |
8 |
* |
* |
9 |
* This program is free software ; you can redistribute it and/or modify |
* This program is free software ; you can redistribute it and/or modify |
10 |
* it under the terms of the GNU General Public License as published by |
* it under the terms of the GNU General Public License as published by |
20 |
* along with this program ; if not, write to the Free Software |
* along with this program ; if not, write to the Free Software |
21 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
22 |
* |
* |
23 |
* $Id: xvid.c,v 1.82 2009-06-05 07:58:41 Isibaar Exp $ |
* $Id: xvid.c,v 1.85.2.1 2010-12-28 16:04:31 Isibaar Exp $ |
24 |
* |
* |
25 |
****************************************************************************/ |
****************************************************************************/ |
26 |
|
|
181 |
|
|
182 |
|
|
183 |
/***************************************************************************** |
/***************************************************************************** |
184 |
* XviD Init Entry point |
* Xvid Init Entry point |
185 |
* |
* |
186 |
* Well this function initialize all internal function pointers according |
* Well this function initialize all internal function pointers according |
187 |
* to the CPU features forced by the library client or autodetected (depending |
* to the CPU features forced by the library client or autodetected (depending |
339 |
sse8_16bit = sse8_16bit_c; |
sse8_16bit = sse8_16bit_c; |
340 |
sse8_8bit = sse8_8bit_c; |
sse8_8bit = sse8_8bit_c; |
341 |
|
|
342 |
|
sseh8_16bit = sseh8_16bit_c; |
343 |
|
coeff8_energy = coeff8_energy_c; |
344 |
|
blocksum8 = blocksum8_c; |
345 |
|
|
346 |
init_GMC(cpu_flags); |
init_GMC(cpu_flags); |
347 |
|
|
348 |
#if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) |
#if defined(ARCH_IS_IA32) || defined(ARCH_IS_X86_64) |
574 |
sad16 = sad16_sse2; |
sad16 = sad16_sse2; |
575 |
dev16 = dev16_sse2; |
dev16 = dev16_sse2; |
576 |
|
|
577 |
|
/* PSNR-HVS-M distortion metric */ |
578 |
|
sseh8_16bit = sseh8_16bit_sse2; |
579 |
|
coeff8_energy = coeff8_energy_sse2; |
580 |
|
blocksum8 = blocksum8_sse2; |
581 |
|
|
582 |
/* DCT operators */ |
/* DCT operators */ |
583 |
fdct = fdct_sse2_skal; |
fdct = fdct_sse2_skal; |
584 |
idct = idct_sse2_skal; /* Is now IEEE1180 and Walken compliant. */ |
idct = idct_sse2_skal; /* Is now IEEE1180 and Walken compliant. */ |
700 |
return XVID_ERR_VERSION; |
return XVID_ERR_VERSION; |
701 |
|
|
702 |
info->actual_version = XVID_VERSION; |
info->actual_version = XVID_VERSION; |
703 |
info->build = "xvid-1.3.0-dev"; |
info->build = "xvid-1.3.0-rc1"; |
704 |
info->cpu_flags = detect_cpu_flags(); |
info->cpu_flags = detect_cpu_flags(); |
705 |
info->num_threads = 0; /* single-thread */ |
info->num_threads = 0; /* single-thread */ |
706 |
|
|
776 |
convert->output.csp, convert->interlacing); |
convert->output.csp, convert->interlacing); |
777 |
break; |
break; |
778 |
|
|
779 |
|
case XVID_CSP_INTERNAL : |
780 |
|
img.y = (uint8_t*)convert->input.plane[0]; |
781 |
|
img.u = (uint8_t*)convert->input.plane[1]; |
782 |
|
img.v = (uint8_t*)convert->input.plane[2]; |
783 |
|
image_output(&img, width, height, convert->input.stride[0], |
784 |
|
(uint8_t**)convert->output.plane, convert->output.stride, |
785 |
|
convert->output.csp, convert->interlacing); |
786 |
|
break; |
787 |
|
|
788 |
default : |
default : |
789 |
return XVID_ERR_FORMAT; |
return XVID_ERR_FORMAT; |
790 |
} |
} |
795 |
} |
} |
796 |
|
|
797 |
/***************************************************************************** |
/***************************************************************************** |
798 |
* XviD Global Entry point |
* Xvid Global Entry point |
799 |
* |
* |
800 |
* Well this function initialize all internal function pointers according |
* Well this function initialize all internal function pointers according |
801 |
* to the CPU features forced by the library client or autodetected (depending |
* to the CPU features forced by the library client or autodetected (depending |
828 |
} |
} |
829 |
|
|
830 |
/***************************************************************************** |
/***************************************************************************** |
831 |
* XviD Native decoder entry point |
* Xvid Native decoder entry point |
832 |
* |
* |
833 |
* This function is just a wrapper to all the option cases. |
* This function is just a wrapper to all the option cases. |
834 |
* |
* |
860 |
|
|
861 |
|
|
862 |
/***************************************************************************** |
/***************************************************************************** |
863 |
* XviD Native encoder entry point |
* Xvid Native encoder entry point |
864 |
* |
* |
865 |
* This function is just a wrapper to all the option cases. |
* This function is just a wrapper to all the option cases. |
866 |
* |
* |