Bug 1311340 - Wire cubeb logging to MOZ_LOG. r?kinetik
MozReview-Commit-ID: 1zhkt29SL5x
--- a/dom/media/CubebUtils.cpp
+++ b/dom/media/CubebUtils.cpp
@@ -8,29 +8,40 @@
#include <algorithm>
#include "nsIStringBundle.h"
#include "nsDebug.h"
#include "nsString.h"
#include "mozilla/Preferences.h"
#include "mozilla/StaticMutex.h"
#include "mozilla/StaticPtr.h"
#include "mozilla/Telemetry.h"
+#include "mozilla/Logging.h"
#include "nsThreadUtils.h"
#include "CubebUtils.h"
#include "nsAutoRef.h"
#include "prdtoa.h"
#define PREF_VOLUME_SCALE "media.volume_scale"
#define PREF_CUBEB_LATENCY_PLAYBACK "media.cubeb_latency_playback_ms"
#define PREF_CUBEB_LATENCY_MSG "media.cubeb_latency_msg_frames"
namespace mozilla {
namespace {
+LazyLogModule gCubebLog("cubeb");
+
+void CubebLogCallback(const char* aFmt, ...)
+{
+ va_list arglist;
+ va_start(arglist, aFmt);
+ MOZ_LOG(gCubebLog, LogLevel::Verbose, (aFmt, arglist));
+ va_end(arglist);
+}
+
// This mutex protects the variables below.
StaticMutex sMutex;
enum class CubebState {
Uninitialized = 0,
Initialized,
Shutdown
} sCubebState = CubebState::Uninitialized;
cubeb* sCubebContext;
@@ -211,16 +222,22 @@ cubeb* GetCubebContextUnlocked()
NS_WARNING_ASSERTION(
sBrandName, "Did not initialize sbrandName, and not on the main thread?");
}
int rv = cubeb_init(&sCubebContext, sBrandName);
NS_WARNING_ASSERTION(rv == CUBEB_OK, "Could not get a cubeb context.");
sCubebState = (rv == CUBEB_OK) ? CubebState::Initialized : CubebState::Uninitialized;
+ if (MOZ_LOG_TEST(gCubebLog, LogLevel::Verbose)) {
+ cubeb_set_log_callback(CUBEB_LOG_VERBOSE, CubebLogCallback);
+ } else if (MOZ_LOG_TEST(gCubebLog, LogLevel::Error)) {
+ cubeb_set_log_callback(CUBEB_LOG_NORMAL, CubebLogCallback);
+ }
+
return sCubebContext;
}
void ReportCubebBackendUsed()
{
StaticMutexAutoLock lock(sMutex);
sAudioStreamInitEverSucceeded = true;