Skip to content

Commit

Permalink
Bug 725152 - Only use force_stereo_mode pref if it's explicitly set. …
Browse files Browse the repository at this point in the history
…r=kinetik a=akeybl
  • Loading branch information
kinetiknz committed Mar 19, 2012
1 parent c07ca6b commit c52d875
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 17 deletions.
41 changes: 24 additions & 17 deletions content/media/webm/nsWebMReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -138,11 +138,15 @@ nsWebMReader::nsWebMReader(nsBuiltinDecoder* aDecoder)
mAudioFrames(0),
mHasVideo(false),
mHasAudio(false),
mForceStereoMode(0)
mForceStereoMode(0),
mStereoModeForced(false)
{
MOZ_COUNT_CTOR(nsWebMReader);

Preferences::GetInt("media.webm.force_stereo_mode", &mForceStereoMode);
mStereoModeForced =
NS_SUCCEEDED(Preferences::GetInt(
"media.webm.force_stereo_mode",
&mForceStereoMode));
}

nsWebMReader::~nsWebMReader()
Expand Down Expand Up @@ -309,21 +313,24 @@ nsresult nsWebMReader::ReadMetadata(nsVideoInfo* aInfo)
break;
}

switch (mForceStereoMode) {
case 1:
mInfo.mStereoMode = STEREO_MODE_LEFT_RIGHT;
break;
case 2:
mInfo.mStereoMode = STEREO_MODE_RIGHT_LEFT;
break;
case 3:
mInfo.mStereoMode = STEREO_MODE_TOP_BOTTOM;
break;
case 4:
mInfo.mStereoMode = STEREO_MODE_BOTTOM_TOP;
break;
default:
mInfo.mStereoMode = STEREO_MODE_MONO;
// Switch only when stereo mode is explicitly set
if (mStereoModeForced) {
switch (mForceStereoMode) {
case 1:
mInfo.mStereoMode = STEREO_MODE_LEFT_RIGHT;
break;
case 2:
mInfo.mStereoMode = STEREO_MODE_RIGHT_LEFT;
break;
case 3:
mInfo.mStereoMode = STEREO_MODE_TOP_BOTTOM;
break;
case 4:
mInfo.mStereoMode = STEREO_MODE_BOTTOM_TOP;
break;
default:
mInfo.mStereoMode = STEREO_MODE_MONO;
}
}
}
else if (!mHasAudio && type == NESTEGG_TRACK_AUDIO) {
Expand Down
4 changes: 4 additions & 0 deletions content/media/webm/nsWebMReader.h
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,10 @@ class nsWebMReader : public nsBuiltinDecoderReader
// Value of the "media.webm.force_stereo_mode" pref, which we need off the
// main thread.
PRInt32 mForceStereoMode;

// Boolean which is set to true when the "media.webm.force_stereo_mode" is
// explicitly set.
bool mStereoModeForced;
};

#endif

0 comments on commit c52d875

Please sign in to comment.