From ac69d1579a907156f04299e6a82aaec6de0462c7 Mon Sep 17 00:00:00 2001 From: Robert O'Callahan Date: Thu, 25 Oct 2012 23:09:41 +1300 Subject: [PATCH] Bug 805254. Part 11: Move Vorbis-specific definitons into a new file VorbisUtils.h. r=kinetik --- content/media/Makefile.in | 1 + content/media/VorbisUtils.h | 27 ++++++++++++++++++++++++++ content/media/nsBuiltinDecoderReader.h | 17 ---------------- content/media/ogg/nsOggReader.cpp | 1 + content/media/webm/nsWebMReader.cpp | 1 + 5 files changed, 30 insertions(+), 17 deletions(-) create mode 100644 content/media/VorbisUtils.h diff --git a/content/media/Makefile.in b/content/media/Makefile.in index 6251d4164d7..3e70e7c3654 100644 --- a/content/media/Makefile.in +++ b/content/media/Makefile.in @@ -34,6 +34,7 @@ EXPORTS = \ VideoFrameContainer.h \ VideoUtils.h \ VideoSegment.h \ + VorbisUtils.h \ $(NULL) CPPSRCS = \ diff --git a/content/media/VorbisUtils.h b/content/media/VorbisUtils.h new file mode 100644 index 00000000000..2b38afffdf6 --- /dev/null +++ b/content/media/VorbisUtils.h @@ -0,0 +1,27 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* vim:set ts=2 sw=2 sts=2 et cindent: */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef VORBISUTILS_H_ +#define VORBISUTILS_H_ + +#ifdef MOZ_SAMPLE_TYPE_S16 +#include +typedef ogg_int32_t VorbisPCMValue; + +#define MOZ_CLIP_TO_15(x) ((x)<-32768?-32768:(x)<=32767?(x):32767) +// Convert the output of vorbis_synthesis_pcmout to a AudioDataValue +#define MOZ_CONVERT_VORBIS_SAMPLE(x) \ + (static_cast(MOZ_CLIP_TO_15((x)>>9))) + +#else /* MOZ_SAMPLE_TYPE_FLOAT32 */ + +typedef float VorbisPCMValue; + +#define MOZ_CONVERT_VORBIS_SAMPLE(x) (x) + +#endif + +#endif /* VORBISUTILS_H_ */ diff --git a/content/media/nsBuiltinDecoderReader.h b/content/media/nsBuiltinDecoderReader.h index f4aef5cbc42..145b4201965 100644 --- a/content/media/nsBuiltinDecoderReader.h +++ b/content/media/nsBuiltinDecoderReader.h @@ -54,23 +54,6 @@ public: bool mHasVideo; }; -#ifdef MOZ_SAMPLE_TYPE_S16 -#include -typedef ogg_int32_t VorbisPCMValue; - -#define MOZ_CLIP_TO_15(x) ((x)<-32768?-32768:(x)<=32767?(x):32767) -// Convert the output of vorbis_synthesis_pcmout to a AudioDataValue -#define MOZ_CONVERT_VORBIS_SAMPLE(x) \ - (static_cast(MOZ_CLIP_TO_15((x)>>9))) - -#else /* MOZ_SAMPLE_TYPE_FLOAT32 */ - -typedef float VorbisPCMValue; - -#define MOZ_CONVERT_VORBIS_SAMPLE(x) (x) - -#endif - // Holds chunk a decoded audio frames. class AudioData { public: diff --git a/content/media/ogg/nsOggReader.cpp b/content/media/ogg/nsOggReader.cpp index 017b95f7cad..59d1db58d4b 100644 --- a/content/media/ogg/nsOggReader.cpp +++ b/content/media/ogg/nsOggReader.cpp @@ -17,6 +17,7 @@ extern "C" { #endif #include "nsTimeRanges.h" #include "mozilla/TimeStamp.h" +#include "VorbisUtils.h" using namespace mozilla; diff --git a/content/media/webm/nsWebMReader.cpp b/content/media/webm/nsWebMReader.cpp index 3a87ce7871f..ca0069cd80a 100644 --- a/content/media/webm/nsWebMReader.cpp +++ b/content/media/webm/nsWebMReader.cpp @@ -11,6 +11,7 @@ #include "nsWebMBufferedParser.h" #include "VideoUtils.h" #include "nsTimeRanges.h" +#include "VorbisUtils.h" #define VPX_DONT_DEFINE_STDINT_TYPES #include "vpx/vp8dx.h"