mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
f2b6a8b7fe
--HG-- rename : modules/libfishsound/AUTHORS => media/libfishsound/AUTHORS rename : modules/libfishsound/COPYING => media/libfishsound/COPYING rename : modules/libfishsound/ChangeLog => media/libfishsound/ChangeLog rename : modules/libfishsound/Makefile.in => media/libfishsound/Makefile.in rename : modules/libfishsound/README => media/libfishsound/README rename : modules/libfishsound/README_MOZILLA => media/libfishsound/README_MOZILLA rename : modules/libfishsound/include/Makefile.in => media/libfishsound/include/Makefile.in rename : modules/libfishsound/include/fishsound/Makefile.in => media/libfishsound/include/fishsound/Makefile.in rename : modules/libfishsound/include/fishsound/comments.h => media/libfishsound/include/fishsound/comments.h rename : modules/libfishsound/include/fishsound/config.h => media/libfishsound/include/fishsound/config.h rename : modules/libfishsound/include/fishsound/constants.h => media/libfishsound/include/fishsound/constants.h rename : modules/libfishsound/include/fishsound/decode.h => media/libfishsound/include/fishsound/decode.h rename : modules/libfishsound/include/fishsound/deprecated.h => media/libfishsound/include/fishsound/deprecated.h rename : modules/libfishsound/include/fishsound/encode.h => media/libfishsound/include/fishsound/encode.h rename : modules/libfishsound/include/fishsound/fishsound.h => media/libfishsound/include/fishsound/fishsound.h rename : modules/libfishsound/src/Makefile.in => media/libfishsound/src/Makefile.in rename : modules/libfishsound/src/libfishsound/Makefile.in => media/libfishsound/src/libfishsound/Makefile.in rename : modules/libfishsound/src/libfishsound/config.h => media/libfishsound/src/libfishsound/config.h rename : modules/libfishsound/src/libfishsound/convert.h => media/libfishsound/src/libfishsound/convert.h rename : modules/libfishsound/src/libfishsound/convert_c.h => media/libfishsound/src/libfishsound/convert_c.h rename : modules/libfishsound/src/libfishsound/convert_oil.h => media/libfishsound/src/libfishsound/convert_oil.h rename : modules/libfishsound/src/libfishsound/fishsound.c => media/libfishsound/src/libfishsound/fishsound.c rename : modules/libfishsound/src/libfishsound/fishsound_comments.c => media/libfishsound/src/libfishsound/fishsound_comments.c rename : modules/libfishsound/src/libfishsound/fishsound_decode.c => media/libfishsound/src/libfishsound/fishsound_decode.c rename : modules/libfishsound/src/libfishsound/fishsound_encode.c => media/libfishsound/src/libfishsound/fishsound_encode.c rename : modules/libfishsound/src/libfishsound/fishsound_flac.c => media/libfishsound/src/libfishsound/fishsound_flac.c rename : modules/libfishsound/src/libfishsound/fishsound_speex.c => media/libfishsound/src/libfishsound/fishsound_speex.c rename : modules/libfishsound/src/libfishsound/fishsound_vorbis.c => media/libfishsound/src/libfishsound/fishsound_vorbis.c rename : modules/libfishsound/src/libfishsound/fs_compat.h => media/libfishsound/src/libfishsound/fs_compat.h rename : modules/libfishsound/src/libfishsound/fs_vector.c => media/libfishsound/src/libfishsound/fs_vector.c rename : modules/libfishsound/src/libfishsound/fs_vector.h => media/libfishsound/src/libfishsound/fs_vector.h rename : modules/libfishsound/src/libfishsound/private.h => media/libfishsound/src/libfishsound/private.h rename : modules/libfishsound/update.sh => media/libfishsound/update.sh rename : modules/libogg/AUTHORS => media/libogg/AUTHORS rename : modules/libogg/CHANGES => media/libogg/CHANGES rename : modules/libogg/COPYING => media/libogg/COPYING rename : modules/libogg/Makefile.in => media/libogg/Makefile.in rename : modules/libogg/README => media/libogg/README rename : modules/libogg/README_MOZILLA => media/libogg/README_MOZILLA rename : modules/libogg/include/Makefile.in => media/libogg/include/Makefile.in rename : modules/libogg/include/ogg/Makefile.in => media/libogg/include/ogg/Makefile.in rename : modules/libogg/include/ogg/config_types.h => media/libogg/include/ogg/config_types.h rename : modules/libogg/include/ogg/ogg.h => media/libogg/include/ogg/ogg.h rename : modules/libogg/include/ogg/os_types.h => media/libogg/include/ogg/os_types.h rename : modules/libogg/src/Makefile.in => media/libogg/src/Makefile.in rename : modules/libogg/src/bitwise.c => media/libogg/src/bitwise.c rename : modules/libogg/src/framing.c => media/libogg/src/framing.c rename : modules/libogg/src/ogg_bitwise.c => media/libogg/src/ogg_bitwise.c rename : modules/libogg/src/ogg_framing.c => media/libogg/src/ogg_framing.c rename : modules/libogg/update.sh => media/libogg/update.sh rename : modules/liboggplay/Makefile.in => media/liboggplay/Makefile.in rename : modules/liboggplay/README => media/liboggplay/README rename : modules/liboggplay/README_MOZILLA => media/liboggplay/README_MOZILLA rename : modules/liboggplay/include/Makefile.in => media/liboggplay/include/Makefile.in rename : modules/liboggplay/include/oggplay/Makefile.in => media/liboggplay/include/oggplay/Makefile.in rename : modules/liboggplay/include/oggplay/config_win32.h => media/liboggplay/include/oggplay/config_win32.h rename : modules/liboggplay/include/oggplay/oggplay.h => media/liboggplay/include/oggplay/oggplay.h rename : modules/liboggplay/include/oggplay/oggplay_callback_info.h => media/liboggplay/include/oggplay/oggplay_callback_info.h rename : modules/liboggplay/include/oggplay/oggplay_enums.h => media/liboggplay/include/oggplay/oggplay_enums.h rename : modules/liboggplay/include/oggplay/oggplay_query.h => media/liboggplay/include/oggplay/oggplay_query.h rename : modules/liboggplay/include/oggplay/oggplay_reader.h => media/liboggplay/include/oggplay/oggplay_reader.h rename : modules/liboggplay/include/oggplay/oggplay_seek.h => media/liboggplay/include/oggplay/oggplay_seek.h rename : modules/liboggplay/include/oggplay/oggplay_tools.h => media/liboggplay/include/oggplay/oggplay_tools.h rename : modules/liboggplay/src/Makefile.in => media/liboggplay/src/Makefile.in rename : modules/liboggplay/src/liboggplay/Makefile.in => media/liboggplay/src/liboggplay/Makefile.in rename : modules/liboggplay/src/liboggplay/config.h => media/liboggplay/src/liboggplay/config.h rename : modules/liboggplay/src/liboggplay/oggplay.c => media/liboggplay/src/liboggplay/oggplay.c rename : modules/liboggplay/src/liboggplay/oggplay_buffer.c => media/liboggplay/src/liboggplay/oggplay_buffer.c rename : modules/liboggplay/src/liboggplay/oggplay_buffer.h => media/liboggplay/src/liboggplay/oggplay_buffer.h rename : modules/liboggplay/src/liboggplay/oggplay_callback.c => media/liboggplay/src/liboggplay/oggplay_callback.c rename : modules/liboggplay/src/liboggplay/oggplay_callback.h => media/liboggplay/src/liboggplay/oggplay_callback.h rename : modules/liboggplay/src/liboggplay/oggplay_callback_info.c => media/liboggplay/src/liboggplay/oggplay_callback_info.c rename : modules/liboggplay/src/liboggplay/oggplay_data.c => media/liboggplay/src/liboggplay/oggplay_data.c rename : modules/liboggplay/src/liboggplay/oggplay_data.h => media/liboggplay/src/liboggplay/oggplay_data.h rename : modules/liboggplay/src/liboggplay/oggplay_file_reader.c => media/liboggplay/src/liboggplay/oggplay_file_reader.c rename : modules/liboggplay/src/liboggplay/oggplay_file_reader.h => media/liboggplay/src/liboggplay/oggplay_file_reader.h rename : modules/liboggplay/src/liboggplay/oggplay_private.h => media/liboggplay/src/liboggplay/oggplay_private.h rename : modules/liboggplay/src/liboggplay/oggplay_query.c => media/liboggplay/src/liboggplay/oggplay_query.c rename : modules/liboggplay/src/liboggplay/oggplay_seek.c => media/liboggplay/src/liboggplay/oggplay_seek.c rename : modules/liboggplay/src/liboggplay/oggplay_tcp_reader.c => media/liboggplay/src/liboggplay/oggplay_tcp_reader.c rename : modules/liboggplay/src/liboggplay/oggplay_tcp_reader.h => media/liboggplay/src/liboggplay/oggplay_tcp_reader.h rename : modules/liboggplay/src/liboggplay/oggplay_tools.c => media/liboggplay/src/liboggplay/oggplay_tools.c rename : modules/liboggplay/src/liboggplay/oggplay_yuv2rgb.c => media/liboggplay/src/liboggplay/oggplay_yuv2rgb.c rename : modules/liboggplay/src/liboggplay/std_semaphore.h => media/liboggplay/src/liboggplay/std_semaphore.h rename : modules/liboggplay/update.sh => media/liboggplay/update.sh rename : modules/liboggplay_audio/Makefile.in => media/liboggplay_audio/Makefile.in rename : modules/liboggplay_audio/README_MOZILLA => media/liboggplay_audio/README_MOZILLA rename : modules/liboggplay_audio/sydney_audio.h => media/liboggplay_audio/sydney_audio.h rename : modules/liboggplay_audio/sydney_audio_alsa.c => media/liboggplay_audio/sydney_audio_alsa.c rename : modules/liboggplay_audio/sydney_audio_mac.c => media/liboggplay_audio/sydney_audio_mac.c rename : modules/liboggplay_audio/sydney_audio_oss.c => media/liboggplay_audio/sydney_audio_oss.c rename : modules/liboggplay_audio/sydney_audio_waveapi.c => media/liboggplay_audio/sydney_audio_waveapi.c rename : modules/liboggplay_audio/update.sh => media/liboggplay_audio/update.sh rename : modules/liboggz/AUTHORS => media/liboggz/AUTHORS rename : modules/liboggz/COPYING => media/liboggz/COPYING rename : modules/liboggz/ChangeLog => media/liboggz/ChangeLog rename : modules/liboggz/Makefile.in => media/liboggz/Makefile.in rename : modules/liboggz/README => media/liboggz/README rename : modules/liboggz/README_MOZILLA => media/liboggz/README_MOZILLA rename : modules/liboggz/include/Makefile.in => media/liboggz/include/Makefile.in rename : modules/liboggz/include/oggz/Makefile.in => media/liboggz/include/oggz/Makefile.in rename : modules/liboggz/include/oggz/config.h => media/liboggz/include/oggz/config.h rename : modules/liboggz/include/oggz/config_win32.h => media/liboggz/include/oggz/config_win32.h rename : modules/liboggz/include/oggz/oggz.h => media/liboggz/include/oggz/oggz.h rename : modules/liboggz/include/oggz/oggz_comments.h => media/liboggz/include/oggz/oggz_comments.h rename : modules/liboggz/include/oggz/oggz_constants.h => media/liboggz/include/oggz/oggz_constants.h rename : modules/liboggz/include/oggz/oggz_deprecated.h => media/liboggz/include/oggz/oggz_deprecated.h rename : modules/liboggz/include/oggz/oggz_io.h => media/liboggz/include/oggz/oggz_io.h rename : modules/liboggz/include/oggz/oggz_off_t.h => media/liboggz/include/oggz/oggz_off_t.h rename : modules/liboggz/include/oggz/oggz_off_t_generated.h => media/liboggz/include/oggz/oggz_off_t_generated.h rename : modules/liboggz/include/oggz/oggz_read.h => media/liboggz/include/oggz/oggz_read.h rename : modules/liboggz/include/oggz/oggz_seek.h => media/liboggz/include/oggz/oggz_seek.h rename : modules/liboggz/include/oggz/oggz_stream.h => media/liboggz/include/oggz/oggz_stream.h rename : modules/liboggz/include/oggz/oggz_table.h => media/liboggz/include/oggz/oggz_table.h rename : modules/liboggz/include/oggz/oggz_write.h => media/liboggz/include/oggz/oggz_write.h rename : modules/liboggz/src/Makefile.in => media/liboggz/src/Makefile.in rename : modules/liboggz/src/liboggz/Makefile.in => media/liboggz/src/liboggz/Makefile.in rename : modules/liboggz/src/liboggz/metric_internal.c => media/liboggz/src/liboggz/metric_internal.c rename : modules/liboggz/src/liboggz/oggz.c => media/liboggz/src/liboggz/oggz.c rename : modules/liboggz/src/liboggz/oggz_auto.c => media/liboggz/src/liboggz/oggz_auto.c rename : modules/liboggz/src/liboggz/oggz_auto.h => media/liboggz/src/liboggz/oggz_auto.h rename : modules/liboggz/src/liboggz/oggz_byteorder.h => media/liboggz/src/liboggz/oggz_byteorder.h rename : modules/liboggz/src/liboggz/oggz_comments.c => media/liboggz/src/liboggz/oggz_comments.c rename : modules/liboggz/src/liboggz/oggz_compat.h => media/liboggz/src/liboggz/oggz_compat.h rename : modules/liboggz/src/liboggz/oggz_dlist.c => media/liboggz/src/liboggz/oggz_dlist.c rename : modules/liboggz/src/liboggz/oggz_dlist.h => media/liboggz/src/liboggz/oggz_dlist.h rename : modules/liboggz/src/liboggz/oggz_io.c => media/liboggz/src/liboggz/oggz_io.c rename : modules/liboggz/src/liboggz/oggz_macros.h => media/liboggz/src/liboggz/oggz_macros.h rename : modules/liboggz/src/liboggz/oggz_private.h => media/liboggz/src/liboggz/oggz_private.h rename : modules/liboggz/src/liboggz/oggz_read.c => media/liboggz/src/liboggz/oggz_read.c rename : modules/liboggz/src/liboggz/oggz_seek.c => media/liboggz/src/liboggz/oggz_seek.c rename : modules/liboggz/src/liboggz/oggz_stream.c => media/liboggz/src/liboggz/oggz_stream.c rename : modules/liboggz/src/liboggz/oggz_stream.h => media/liboggz/src/liboggz/oggz_stream.h rename : modules/liboggz/src/liboggz/oggz_stream_private.h => media/liboggz/src/liboggz/oggz_stream_private.h rename : modules/liboggz/src/liboggz/oggz_table.c => media/liboggz/src/liboggz/oggz_table.c rename : modules/liboggz/src/liboggz/oggz_vector.c => media/liboggz/src/liboggz/oggz_vector.c rename : modules/liboggz/src/liboggz/oggz_vector.h => media/liboggz/src/liboggz/oggz_vector.h rename : modules/liboggz/src/liboggz/oggz_write.c => media/liboggz/src/liboggz/oggz_write.c rename : modules/liboggz/update.sh => media/liboggz/update.sh rename : modules/libtheora/AUTHORS => media/libtheora/AUTHORS rename : modules/libtheora/CHANGES => media/libtheora/CHANGES rename : modules/libtheora/COPYING => media/libtheora/COPYING rename : modules/libtheora/LICENSE => media/libtheora/LICENSE rename : modules/libtheora/Makefile.in => media/libtheora/Makefile.in rename : modules/libtheora/README => media/libtheora/README rename : modules/libtheora/README_MOZILLA => media/libtheora/README_MOZILLA rename : modules/libtheora/changeset_r15144.diff => media/libtheora/changeset_r15144.diff rename : modules/libtheora/include/Makefile.in => media/libtheora/include/Makefile.in rename : modules/libtheora/include/theora/Makefile.in => media/libtheora/include/theora/Makefile.in rename : modules/libtheora/include/theora/codec.h => media/libtheora/include/theora/codec.h rename : modules/libtheora/include/theora/config.h => media/libtheora/include/theora/config.h rename : modules/libtheora/include/theora/theora.h => media/libtheora/include/theora/theora.h rename : modules/libtheora/include/theora/theoradec.h => media/libtheora/include/theora/theoradec.h rename : modules/libtheora/lib/Makefile.in => media/libtheora/lib/Makefile.in rename : modules/libtheora/lib/config.h => media/libtheora/lib/config.h rename : modules/libtheora/lib/cpu.c => media/libtheora/lib/cpu.c rename : modules/libtheora/lib/cpu.h => media/libtheora/lib/cpu.h rename : modules/libtheora/lib/dec/apiwrapper.c => media/libtheora/lib/dec/apiwrapper.c rename : modules/libtheora/lib/dec/apiwrapper.h => media/libtheora/lib/dec/apiwrapper.h rename : modules/libtheora/lib/dec/bitwise.c => media/libtheora/lib/dec/bitwise.c rename : modules/libtheora/lib/dec/bitwise.h => media/libtheora/lib/dec/bitwise.h rename : modules/libtheora/lib/dec/dct.h => media/libtheora/lib/dec/dct.h rename : modules/libtheora/lib/dec/decapiwrapper.c => media/libtheora/lib/dec/decapiwrapper.c rename : modules/libtheora/lib/dec/decinfo.c => media/libtheora/lib/dec/decinfo.c rename : modules/libtheora/lib/dec/decint.h => media/libtheora/lib/dec/decint.h rename : modules/libtheora/lib/dec/decode.c => media/libtheora/lib/dec/decode.c rename : modules/libtheora/lib/dec/dequant.c => media/libtheora/lib/dec/dequant.c rename : modules/libtheora/lib/dec/dequant.h => media/libtheora/lib/dec/dequant.h rename : modules/libtheora/lib/dec/enquant.h => media/libtheora/lib/dec/enquant.h rename : modules/libtheora/lib/dec/fragment.c => media/libtheora/lib/dec/fragment.c rename : modules/libtheora/lib/dec/huffdec.c => media/libtheora/lib/dec/huffdec.c rename : modules/libtheora/lib/dec/huffdec.h => media/libtheora/lib/dec/huffdec.h rename : modules/libtheora/lib/dec/huffman.h => media/libtheora/lib/dec/huffman.h rename : modules/libtheora/lib/dec/idct.c => media/libtheora/lib/dec/idct.c rename : modules/libtheora/lib/dec/idct.h => media/libtheora/lib/dec/idct.h rename : modules/libtheora/lib/dec/info.c => media/libtheora/lib/dec/info.c rename : modules/libtheora/lib/dec/internal.c => media/libtheora/lib/dec/internal.c rename : modules/libtheora/lib/dec/ocintrin.h => media/libtheora/lib/dec/ocintrin.h rename : modules/libtheora/lib/dec/quant.c => media/libtheora/lib/dec/quant.c rename : modules/libtheora/lib/dec/quant.h => media/libtheora/lib/dec/quant.h rename : modules/libtheora/lib/dec/state.c => media/libtheora/lib/dec/state.c rename : modules/libtheora/lib/dec/x86/mmxfrag.c => media/libtheora/lib/dec/x86/mmxfrag.c rename : modules/libtheora/lib/dec/x86/mmxidct.c => media/libtheora/lib/dec/x86/mmxidct.c rename : modules/libtheora/lib/dec/x86/mmxstate.c => media/libtheora/lib/dec/x86/mmxstate.c rename : modules/libtheora/lib/dec/x86/x86int.h => media/libtheora/lib/dec/x86/x86int.h rename : modules/libtheora/lib/dec/x86/x86state.c => media/libtheora/lib/dec/x86/x86state.c rename : modules/libtheora/lib/internal.h => media/libtheora/lib/internal.h rename : modules/libtheora/update.sh => media/libtheora/update.sh rename : modules/libvorbis/AUTHORS => media/libvorbis/AUTHORS rename : modules/libvorbis/COPYING => media/libvorbis/COPYING rename : modules/libvorbis/Makefile.in => media/libvorbis/Makefile.in rename : modules/libvorbis/README => media/libvorbis/README rename : modules/libvorbis/README_MOZILLA => media/libvorbis/README_MOZILLA rename : modules/libvorbis/include/Makefile.in => media/libvorbis/include/Makefile.in rename : modules/libvorbis/include/vorbis/Makefile.in => media/libvorbis/include/vorbis/Makefile.in rename : modules/libvorbis/include/vorbis/codec.h => media/libvorbis/include/vorbis/codec.h rename : modules/libvorbis/lib/Makefile.in => media/libvorbis/lib/Makefile.in rename : modules/libvorbis/lib/backends.h => media/libvorbis/lib/backends.h rename : modules/libvorbis/lib/bitrate.h => media/libvorbis/lib/bitrate.h rename : modules/libvorbis/lib/codebook.h => media/libvorbis/lib/codebook.h rename : modules/libvorbis/lib/codec_internal.h => media/libvorbis/lib/codec_internal.h rename : modules/libvorbis/lib/envelope.h => media/libvorbis/lib/envelope.h rename : modules/libvorbis/lib/highlevel.h => media/libvorbis/lib/highlevel.h rename : modules/libvorbis/lib/lookup.h => media/libvorbis/lib/lookup.h rename : modules/libvorbis/lib/lookup_data.h => media/libvorbis/lib/lookup_data.h rename : modules/libvorbis/lib/lpc.h => media/libvorbis/lib/lpc.h rename : modules/libvorbis/lib/lsp.h => media/libvorbis/lib/lsp.h rename : modules/libvorbis/lib/masking.h => media/libvorbis/lib/masking.h rename : modules/libvorbis/lib/mdct.h => media/libvorbis/lib/mdct.h rename : modules/libvorbis/lib/misc.h => media/libvorbis/lib/misc.h rename : modules/libvorbis/lib/os.h => media/libvorbis/lib/os.h rename : modules/libvorbis/lib/psy.h => media/libvorbis/lib/psy.h rename : modules/libvorbis/lib/registry.h => media/libvorbis/lib/registry.h rename : modules/libvorbis/lib/scales.h => media/libvorbis/lib/scales.h rename : modules/libvorbis/lib/smallft.h => media/libvorbis/lib/smallft.h rename : modules/libvorbis/lib/vorbis_analysis.c => media/libvorbis/lib/vorbis_analysis.c rename : modules/libvorbis/lib/vorbis_bitrate.c => media/libvorbis/lib/vorbis_bitrate.c rename : modules/libvorbis/lib/vorbis_block.c => media/libvorbis/lib/vorbis_block.c rename : modules/libvorbis/lib/vorbis_codebook.c => media/libvorbis/lib/vorbis_codebook.c rename : modules/libvorbis/lib/vorbis_envelope.c => media/libvorbis/lib/vorbis_envelope.c rename : modules/libvorbis/lib/vorbis_floor0.c => media/libvorbis/lib/vorbis_floor0.c rename : modules/libvorbis/lib/vorbis_floor1.c => media/libvorbis/lib/vorbis_floor1.c rename : modules/libvorbis/lib/vorbis_info.c => media/libvorbis/lib/vorbis_info.c rename : modules/libvorbis/lib/vorbis_lookup.c => media/libvorbis/lib/vorbis_lookup.c rename : modules/libvorbis/lib/vorbis_lpc.c => media/libvorbis/lib/vorbis_lpc.c rename : modules/libvorbis/lib/vorbis_lsp.c => media/libvorbis/lib/vorbis_lsp.c rename : modules/libvorbis/lib/vorbis_mapping0.c => media/libvorbis/lib/vorbis_mapping0.c rename : modules/libvorbis/lib/vorbis_mdct.c => media/libvorbis/lib/vorbis_mdct.c rename : modules/libvorbis/lib/vorbis_psy.c => media/libvorbis/lib/vorbis_psy.c rename : modules/libvorbis/lib/vorbis_registry.c => media/libvorbis/lib/vorbis_registry.c rename : modules/libvorbis/lib/vorbis_res0.c => media/libvorbis/lib/vorbis_res0.c rename : modules/libvorbis/lib/vorbis_sharedbook.c => media/libvorbis/lib/vorbis_sharedbook.c rename : modules/libvorbis/lib/vorbis_smallft.c => media/libvorbis/lib/vorbis_smallft.c rename : modules/libvorbis/lib/vorbis_synthesis.c => media/libvorbis/lib/vorbis_synthesis.c rename : modules/libvorbis/lib/vorbis_window.c => media/libvorbis/lib/vorbis_window.c rename : modules/libvorbis/lib/window.h => media/libvorbis/lib/window.h rename : modules/libvorbis/todo.txt => media/libvorbis/todo.txt rename : modules/libvorbis/update.sh => media/libvorbis/update.sh
291 lines
9.3 KiB
C
291 lines
9.3 KiB
C
/********************************************************************
|
|
* *
|
|
* THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. *
|
|
* USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
|
|
* GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
|
|
* IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
|
|
* *
|
|
* THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2003 *
|
|
* by the Xiph.Org Foundation http://www.xiph.org/ *
|
|
* *
|
|
********************************************************************
|
|
|
|
function:
|
|
last mod: $Id: mmxfrag.c 14345 2008-01-04 18:02:21Z tterribe $
|
|
|
|
********************************************************************/
|
|
|
|
/*MMX acceleration of fragment reconstruction for motion compensation.
|
|
Originally written by Rudolf Marek.
|
|
Additional optimization by Nils Pipenbrinck.
|
|
Note: Loops are unrolled for best performance.
|
|
The iteration each instruction belongs to is marked in the comments as #i.*/
|
|
#include "x86int.h"
|
|
|
|
#if defined(USE_ASM)
|
|
|
|
void oc_frag_recon_intra_mmx(unsigned char *_dst,int _dst_ystride,
|
|
const ogg_int16_t *_residue){
|
|
__asm__ __volatile__(
|
|
/*Set mm0 to 0xFFFFFFFFFFFFFFFF.*/
|
|
"pcmpeqw %%mm0,%%mm0\n\t"
|
|
/*#0 Load low residue.*/
|
|
"movq 0*8(%[residue]),%%mm1\n\t"
|
|
/*#0 Load high residue.*/
|
|
"movq 1*8(%[residue]),%%mm2\n\t"
|
|
/*Set mm0 to 0x8000800080008000.*/
|
|
"psllw $15,%%mm0\n\t"
|
|
/*#1 Load low residue.*/
|
|
"movq 2*8(%[residue]),%%mm3\n\t"
|
|
/*#1 Load high residue.*/
|
|
"movq 3*8(%[residue]),%%mm4\n\t"
|
|
/*Set mm0 to 0x0080008000800080.*/
|
|
"psrlw $8,%%mm0\n\t"
|
|
/*#2 Load low residue.*/
|
|
"movq 4*8(%[residue]),%%mm5\n\t"
|
|
/*#2 Load high residue.*/
|
|
"movq 5*8(%[residue]),%%mm6\n\t"
|
|
/*#0 Bias low residue.*/
|
|
"paddsw %%mm0,%%mm1\n\t"
|
|
/*#0 Bias high residue.*/
|
|
"paddsw %%mm0,%%mm2\n\t"
|
|
/*#0 Pack to byte.*/
|
|
"packuswb %%mm2,%%mm1\n\t"
|
|
/*#1 Bias low residue.*/
|
|
"paddsw %%mm0,%%mm3\n\t"
|
|
/*#1 Bias high residue.*/
|
|
"paddsw %%mm0,%%mm4\n\t"
|
|
/*#1 Pack to byte.*/
|
|
"packuswb %%mm4,%%mm3\n\t"
|
|
/*#2 Bias low residue.*/
|
|
"paddsw %%mm0,%%mm5\n\t"
|
|
/*#2 Bias high residue.*/
|
|
"paddsw %%mm0,%%mm6\n\t"
|
|
/*#2 Pack to byte.*/
|
|
"packuswb %%mm6,%%mm5\n\t"
|
|
/*#0 Write row.*/
|
|
"movq %%mm1,(%[dst])\n\t"
|
|
/*#1 Write row.*/
|
|
"movq %%mm3,(%[dst],%[dst_ystride])\n\t"
|
|
/*#2 Write row.*/
|
|
"movq %%mm5,(%[dst],%[dst_ystride],2)\n\t"
|
|
/*#3 Load low residue.*/
|
|
"movq 6*8(%[residue]),%%mm1\n\t"
|
|
/*#3 Load high residue.*/
|
|
"movq 7*8(%[residue]),%%mm2\n\t"
|
|
/*#4 Load high residue.*/
|
|
"movq 8*8(%[residue]),%%mm3\n\t"
|
|
/*#4 Load high residue.*/
|
|
"movq 9*8(%[residue]),%%mm4\n\t"
|
|
/*#5 Load high residue.*/
|
|
"movq 10*8(%[residue]),%%mm5\n\t"
|
|
/*#5 Load high residue.*/
|
|
"movq 11*8(%[residue]),%%mm6\n\t"
|
|
/*#3 Bias low residue.*/
|
|
"paddsw %%mm0,%%mm1\n\t"
|
|
/*#3 Bias high residue.*/
|
|
"paddsw %%mm0,%%mm2\n\t"
|
|
/*#3 Pack to byte.*/
|
|
"packuswb %%mm2,%%mm1\n\t"
|
|
/*#4 Bias low residue.*/
|
|
"paddsw %%mm0,%%mm3\n\t"
|
|
/*#4 Bias high residue.*/
|
|
"paddsw %%mm0,%%mm4\n\t"
|
|
/*#4 Pack to byte.*/
|
|
"packuswb %%mm4,%%mm3\n\t"
|
|
/*#5 Bias low residue.*/
|
|
"paddsw %%mm0,%%mm5\n\t"
|
|
/*#5 Bias high residue.*/
|
|
"paddsw %%mm0,%%mm6\n\t"
|
|
/*#5 Pack to byte.*/
|
|
"packuswb %%mm6,%%mm5\n\t"
|
|
/*#3 Write row.*/
|
|
"movq %%mm1,(%[dst],%[dst_ystride3])\n\t"
|
|
/*#4 Write row.*/
|
|
"movq %%mm3,(%[dst4])\n\t"
|
|
/*#5 Write row.*/
|
|
"movq %%mm5,(%[dst4],%[dst_ystride])\n\t"
|
|
/*#6 Load low residue.*/
|
|
"movq 12*8(%[residue]),%%mm1\n\t"
|
|
/*#6 Load high residue.*/
|
|
"movq 13*8(%[residue]),%%mm2\n\t"
|
|
/*#7 Load low residue.*/
|
|
"movq 14*8(%[residue]),%%mm3\n\t"
|
|
/*#7 Load high residue.*/
|
|
"movq 15*8(%[residue]),%%mm4\n\t"
|
|
/*#6 Bias low residue.*/
|
|
"paddsw %%mm0,%%mm1\n\t"
|
|
/*#6 Bias high residue.*/
|
|
"paddsw %%mm0,%%mm2\n\t"
|
|
/*#6 Pack to byte.*/
|
|
"packuswb %%mm2,%%mm1\n\t"
|
|
/*#7 Bias low residue.*/
|
|
"paddsw %%mm0,%%mm3\n\t"
|
|
/*#7 Bias high residue.*/
|
|
"paddsw %%mm0,%%mm4\n\t"
|
|
/*#7 Pack to byte.*/
|
|
"packuswb %%mm4,%%mm3\n\t"
|
|
/*#6 Write row.*/
|
|
"movq %%mm1,(%[dst4],%[dst_ystride],2)\n\t"
|
|
/*#7 Write row.*/
|
|
"movq %%mm3,(%[dst4],%[dst_ystride3])\n\t"
|
|
:
|
|
:[residue]"r"(_residue),
|
|
[dst]"r"(_dst),
|
|
[dst4]"r"(_dst+(_dst_ystride<<2)),
|
|
[dst_ystride]"r"((long)_dst_ystride),
|
|
[dst_ystride3]"r"((long)_dst_ystride*3)
|
|
:"memory"
|
|
);
|
|
}
|
|
|
|
void oc_frag_recon_inter_mmx(unsigned char *_dst,int _dst_ystride,
|
|
const unsigned char *_src,int _src_ystride,const ogg_int16_t *_residue){
|
|
int i;
|
|
/*Zero mm0.*/
|
|
__asm__ __volatile__("pxor %%mm0,%%mm0\n\t"::);
|
|
for(i=4;i-->0;){
|
|
__asm__ __volatile__(
|
|
/*#0 Load source.*/
|
|
"movq (%[src]),%%mm3\n\t"
|
|
/*#1 Load source.*/
|
|
"movq (%[src],%[src_ystride]),%%mm7\n\t"
|
|
/*#0 Get copy of src.*/
|
|
"movq %%mm3,%%mm4\n\t"
|
|
/*#0 Expand high source.*/
|
|
"punpckhbw %%mm0,%%mm4\n\t"
|
|
/*#0 Expand low source.*/
|
|
"punpcklbw %%mm0,%%mm3\n\t"
|
|
/*#0 Add residue high.*/
|
|
"paddsw 8(%[residue]),%%mm4\n\t"
|
|
/*#1 Get copy of src.*/
|
|
"movq %%mm7,%%mm2\n\t"
|
|
/*#0 Add residue low.*/
|
|
"paddsw (%[residue]), %%mm3\n\t"
|
|
/*#1 Expand high source.*/
|
|
"punpckhbw %%mm0,%%mm2\n\t"
|
|
/*#0 Pack final row pixels.*/
|
|
"packuswb %%mm4,%%mm3\n\t"
|
|
/*#1 Expand low source.*/
|
|
"punpcklbw %%mm0,%%mm7\n\t"
|
|
/*#1 Add residue low.*/
|
|
"paddsw 16(%[residue]),%%mm7\n\t"
|
|
/*#1 Add residue high.*/
|
|
"paddsw 24(%[residue]),%%mm2\n\t"
|
|
/*Advance residue.*/
|
|
"lea 32(%[residue]),%[residue]\n\t"
|
|
/*#1 Pack final row pixels.*/
|
|
"packuswb %%mm2,%%mm7\n\t"
|
|
/*Advance src.*/
|
|
"lea (%[src],%[src_ystride],2),%[src]\n\t"
|
|
/*#0 Write row.*/
|
|
"movq %%mm3,(%[dst])\n\t"
|
|
/*#1 Write row.*/
|
|
"movq %%mm7,(%[dst],%[dst_ystride])\n\t"
|
|
/*Advance dst.*/
|
|
"lea (%[dst],%[dst_ystride],2),%[dst]\n\t"
|
|
:[residue]"+r"(_residue),[dst]"+r"(_dst),[src]"+r"(_src)
|
|
:[dst_ystride]"r"((long)_dst_ystride),
|
|
[src_ystride]"r"((long)_src_ystride)
|
|
:"memory"
|
|
);
|
|
}
|
|
}
|
|
|
|
void oc_frag_recon_inter2_mmx(unsigned char *_dst,int _dst_ystride,
|
|
const unsigned char *_src1,int _src1_ystride,const unsigned char *_src2,
|
|
int _src2_ystride,const ogg_int16_t *_residue){
|
|
int i;
|
|
/*NOTE: This assumes that
|
|
_dst_ystride==_src1_ystride&&_dst_ystride==_src2_ystride.
|
|
This is currently always the case, but a slower fallback version will need
|
|
to be written if it ever is not.*/
|
|
/*Zero mm7.*/
|
|
__asm__ __volatile__("pxor %%mm7,%%mm7\n\t"::);
|
|
for(i=4;i-->0;){
|
|
__asm__ __volatile__(
|
|
/*#0 Load src1.*/
|
|
"movq (%[src1]),%%mm0\n\t"
|
|
/*#0 Load src2.*/
|
|
"movq (%[src2]),%%mm2\n\t"
|
|
/*#0 Copy src1.*/
|
|
"movq %%mm0,%%mm1\n\t"
|
|
/*#0 Copy src2.*/
|
|
"movq %%mm2,%%mm3\n\t"
|
|
/*#1 Load src1.*/
|
|
"movq (%[src1],%[ystride]),%%mm4\n\t"
|
|
/*#0 Unpack lower src1.*/
|
|
"punpcklbw %%mm7,%%mm0\n\t"
|
|
/*#1 Load src2.*/
|
|
"movq (%[src2],%[ystride]),%%mm5\n\t"
|
|
/*#0 Unpack higher src1.*/
|
|
"punpckhbw %%mm7,%%mm1\n\t"
|
|
/*#0 Unpack lower src2.*/
|
|
"punpcklbw %%mm7,%%mm2\n\t"
|
|
/*#0 Unpack higher src2.*/
|
|
"punpckhbw %%mm7,%%mm3\n\t"
|
|
/*Advance src1 ptr.*/
|
|
"lea (%[src1],%[ystride],2),%[src1]\n\t"
|
|
/*Advance src2 ptr.*/
|
|
"lea (%[src2],%[ystride],2),%[src2]\n\t"
|
|
/*#0 Lower src1+src2.*/
|
|
"paddsw %%mm2,%%mm0\n\t"
|
|
/*#0 Higher src1+src2.*/
|
|
"paddsw %%mm3,%%mm1\n\t"
|
|
/*#1 Copy src1.*/
|
|
"movq %%mm4,%%mm2\n\t"
|
|
/*#0 Build lo average.*/
|
|
"psraw $1,%%mm0\n\t"
|
|
/*#1 Copy src2.*/
|
|
"movq %%mm5,%%mm3\n\t"
|
|
/*#1 Unpack lower src1.*/
|
|
"punpcklbw %%mm7,%%mm4\n\t"
|
|
/*#0 Build hi average.*/
|
|
"psraw $1,%%mm1\n\t"
|
|
/*#1 Unpack higher src1.*/
|
|
"punpckhbw %%mm7,%%mm2\n\t"
|
|
/*#0 low+=residue.*/
|
|
"paddsw (%[residue]),%%mm0\n\t"
|
|
/*#1 Unpack lower src2.*/
|
|
"punpcklbw %%mm7,%%mm5\n\t"
|
|
/*#0 high+=residue.*/
|
|
"paddsw 8(%[residue]),%%mm1\n\t"
|
|
/*#1 Unpack higher src2.*/
|
|
"punpckhbw %%mm7,%%mm3\n\t"
|
|
/*#1 Lower src1+src2.*/
|
|
"paddsw %%mm4,%%mm5\n\t"
|
|
/*#0 Pack and saturate.*/
|
|
"packuswb %%mm1,%%mm0\n\t"
|
|
/*#1 Higher src1+src2.*/
|
|
"paddsw %%mm2,%%mm3\n\t"
|
|
/*#0 Write row.*/
|
|
"movq %%mm0,(%[dst])\n\t"
|
|
/*#1 Build lo average.*/
|
|
"psraw $1,%%mm5\n\t"
|
|
/*#1 Build hi average.*/
|
|
"psraw $1,%%mm3\n\t"
|
|
/*#1 low+=residue.*/
|
|
"paddsw 16(%[residue]),%%mm5\n\t"
|
|
/*#1 high+=residue.*/
|
|
"paddsw 24(%[residue]),%%mm3\n\t"
|
|
/*#1 Pack and saturate.*/
|
|
"packuswb %%mm3,%%mm5\n\t"
|
|
/*#1 Write row ptr.*/
|
|
"movq %%mm5,(%[dst],%[ystride])\n\t"
|
|
/*Advance residue ptr.*/
|
|
"add $32,%[residue]\n\t"
|
|
/*Advance dest ptr.*/
|
|
"lea (%[dst],%[ystride],2),%[dst]\n\t"
|
|
:[dst]"+r"(_dst),[residue]"+r"(_residue),
|
|
[src1]"+r"(_src1),[src2]"+r"(_src2)
|
|
:[ystride]"r"((long)_dst_ystride)
|
|
:"memory"
|
|
);
|
|
}
|
|
}
|
|
|
|
void oc_restore_fpu_mmx(void){
|
|
__asm__ __volatile__("emms\n\t");
|
|
}
|
|
#endif
|