// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "cobalt/media/base/media_keys.h"

namespace cobalt {
namespace media {

MediaKeys::MediaKeys() {}

MediaKeys::~MediaKeys() {}

CdmContext* MediaKeys::GetCdmContext() { return NULL; }

void MediaKeys::DeleteOnCorrectThread() const { delete this; }

// static
void MediaKeysTraits::Destruct(const MediaKeys* media_keys) {
  media_keys->DeleteOnCorrectThread();
}

}  // namespace media
}  // namespace cobalt
