[mythtv-commits] mythtv commit: r24386 - in branches/mythtv-hdaudio by jyavenard

mythtv at cvs.mythtv.org mythtv at cvs.mythtv.org
Tue May 4 05:21:27 UTC 2010


      Author: jyavenard
        Date: 2010-05-04 05:21:27 +0000 (Tue, 04 May 2010)
New Revision: 24386
   Changeset: http://svn.mythtv.org/trac/changeset/24386

Added:

   branches/mythtv-hdaudio/mythtv/libs/libmyth/audiooutputsettings.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmyth/audiooutputsettings.h
   branches/mythtv-hdaudio/mythtv/libs/libmyth/audiooutpututil.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmyth/audiooutpututil.h

Modified:

   branches/mythtv-hdaudio/mythplugins/mythmusic/mythmusic/avfdecoder.cpp
   branches/mythtv-hdaudio/mythplugins/mythmusic/mythmusic/avfdecoder.h
   branches/mythtv-hdaudio/mythtv/libs/libmyth/audiooutput.h
   branches/mythtv-hdaudio/mythtv/libs/libmyth/audiooutputalsa.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmyth/audiooutputalsa.h
   branches/mythtv-hdaudio/mythtv/libs/libmyth/audiooutputbase.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmyth/audiooutputbase.h
   branches/mythtv-hdaudio/mythtv/libs/libmyth/audiooutputca.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmyth/audiooutputdigitalencoder.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmyth/audiooutputdigitalencoder.h
   branches/mythtv-hdaudio/mythtv/libs/libmyth/libmyth.pro
   branches/mythtv-hdaudio/mythtv/libs/libmythfreesurround/el_processor.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmythfreesurround/freesurround.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmythfreesurround/freesurround.h
   branches/mythtv-hdaudio/mythtv/libs/libmythsoundtouch/FIRFilter.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmythsoundtouch/FIRFilter.h
   branches/mythtv-hdaudio/mythtv/libs/libmythsoundtouch/STTypes.h
   branches/mythtv-hdaudio/mythtv/libs/libmythsoundtouch/SoundTouch.h
   branches/mythtv-hdaudio/mythtv/libs/libmythsoundtouch/TDStretch.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmythsoundtouch/TDStretch.h
   branches/mythtv-hdaudio/mythtv/libs/libmythsoundtouch/libmythsoundtouch.pro
   branches/mythtv-hdaudio/mythtv/libs/libmythsoundtouch/sse_gcc.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmythtv/NuppelVideoPlayer.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmythtv/NuppelVideoPlayer.h
   branches/mythtv-hdaudio/mythtv/libs/libmythtv/avformatdecoder.cpp
   branches/mythtv-hdaudio/mythtv/libs/libmythtv/avformatdecoder.h
   branches/mythtv-hdaudio/mythtv/programs/mythtranscode/transcode.cpp

Log:

Convert internal audio buffer format to float type.

Previously the following would happen:
foreach processing [ soundstretch upmixing resampling ... ]
do
  convert sample from fixed to float
  perform calculations in float
  convert from float to fixed
end

We now do:
convert buffer from fixed to float
foreach processing [ .... ]
  perform calculations in float
end
convert from float to fixed

Samples could also only be unsigned 8 bits or 16 bits sgned. By moving to floats internally the following are automatically gained:
-speed: conversion occurs once only. Conversion is also extremely fast on selected X86 platforms (> pentium III), done entirely using SSE2 instruction set.
-Gain automatic support for 20 and 24 bits audio (a float is 32 bits, with a 24 bits mantissa)

In order to prevent older machines or hardware architectures with poor floating point abilities, the fixed -> float conversion is only done when audio processing is to occur.
As such, in the worse case scenario, it is just as fast than what it would have been prior to using float internally.

This changeset removes support for non-interleaved audio.
AddSamples overloading is removed





More information about the mythtv-commits mailing list