зеркало из https://github.com/mozilla/gecko-dev.git
76 строки
2.3 KiB
C++
76 строки
2.3 KiB
C++
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim:set ts=2 sw=2 sts=2 et cindent: */
|
|
/*
|
|
* Copyright (c) 2014 The Linux Foundation. All rights reserved.
|
|
* Copyright (C) 2009 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#ifndef AUDIO_OFFLOAD_PLAYER_BASE_H_
|
|
#define AUDIO_OFFLOAD_PLAYER_BASE_H_
|
|
|
|
#include "MediaDecoder.h"
|
|
#include "MediaDecoderOwner.h"
|
|
|
|
namespace mozilla {
|
|
|
|
/**
|
|
* AudioOffloadPlayer interface class which has funtions used by MediaOmxDecoder
|
|
* This is to reduce the dependency of AudioOffloadPlayer in MediaOmxDecoder
|
|
*/
|
|
class AudioOffloadPlayerBase
|
|
{
|
|
typedef android::status_t status_t;
|
|
typedef android::MediaSource MediaSource;
|
|
|
|
public:
|
|
virtual ~AudioOffloadPlayerBase() {};
|
|
|
|
// Caller retains ownership of "aSource".
|
|
virtual void SetSource(const android::sp<MediaSource> &aSource) {}
|
|
|
|
// Start the source if it's not already started and open the AudioSink to
|
|
// create an offloaded audio track
|
|
virtual status_t Start(bool aSourceAlreadyStarted = false)
|
|
{
|
|
return android::NO_INIT;
|
|
}
|
|
|
|
virtual status_t ChangeState(MediaDecoder::PlayState aState)
|
|
{
|
|
return android::NO_INIT;
|
|
}
|
|
|
|
virtual void SetVolume(double aVolume) {}
|
|
|
|
virtual int64_t GetMediaTimeUs() { return 0; }
|
|
|
|
// To update progress bar when the element is visible
|
|
virtual void SetElementVisibility(bool aIsVisible) {}
|
|
|
|
// Update ready state based on current play state. Not checking data
|
|
// availability since offloading is currently done only when whole compressed
|
|
// data is available
|
|
virtual MediaDecoderOwner::NextFrameStatus GetNextFrameStatus()
|
|
{
|
|
return MediaDecoderOwner::NEXT_FRAME_UNAVAILABLE;
|
|
}
|
|
|
|
virtual RefPtr<MediaDecoder::SeekPromise> Seek(SeekTarget aTarget) = 0;
|
|
};
|
|
|
|
} // namespace mozilla
|
|
|
|
#endif // AUDIO_OFFLOAD_PLAYER_BASE_H_
|