]> git.sesse.net Git - casparcg/blobdiff - core/mixer/audio/audio_util.h
2.0. bluefish_consumer: 24 bit audio.
[casparcg] / core / mixer / audio / audio_util.h
index 4f45efa42d9a11fc38e7d5b72e1bdc0832e7c432..0cbebc3d1dbfc27158b33c3ce63eb9e00e9f427e 100644 (file)
@@ -19,4 +19,16 @@ static std::vector<int16_t> audio_32_to_16(const boost::iterator_range<int32_t*>
        return audio16;\r
 }\r
 \r
+static std::vector<int8_t> audio_32_to_24(const boost::iterator_range<int32_t*>& input)\r
+{      \r
+       std::vector<int8_t> audio24(input.size()*3+16);\r
+       auto audio32_ptr = reinterpret_cast<const uint32_t*>(input.begin());\r
+       auto audio24_ptr = reinterpret_cast<uint8_t*>(audio24.data());\r
+       auto size                = input.size();\r
+       for(int n = 0; n < size; ++n)           \r
+               *reinterpret_cast<uint32_t*>(audio24_ptr + n*3) = *(audio32_ptr + n) >> 8;      \r
+       audio24.resize(input.size());\r
+       return audio24;\r
+}\r
+\r
 }}
\ No newline at end of file