1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef MEDIA_BASE_ANDROID_AUDIO_DECODER_JOB_H_
6 #define MEDIA_BASE_ANDROID_AUDIO_DECODER_JOB_H_
10 #include "media/base/android/media_decoder_job.h"
14 class AudioCodecBridge
;
16 // Class for managing audio decoding jobs.
17 class AudioDecoderJob
: public MediaDecoderJob
{
19 virtual ~AudioDecoderJob();
21 // Creates a new AudioDecoderJob instance for decoding audio.
22 // |audio_codec| - The audio format the object needs to decode.
23 // |sample_rate| - The sample rate of the decoded output.
24 // |channel_count| - The number of channels in the decoded output.
25 // |extra_data|, |extra_data_size| - Extra data buffer needed for initializing
27 // |media_crypto| - Handle to a Java object that handles the encryption for
29 static AudioDecoderJob
* Create(
30 const AudioCodec audio_codec
, int sample_rate
, int channel_count
,
31 const uint8
* extra_data
, size_t extra_data_size
, jobject media_crypto
);
33 void SetVolume(double volume
);
36 AudioDecoderJob(scoped_ptr
<AudioCodecBridge
> audio_decoder_bridge
);
38 // MediaDecoderJob implementation.
39 virtual void ReleaseOutputBuffer(
40 int outputBufferIndex
, size_t size
,
41 const base::TimeDelta
& presentation_timestamp
,
42 const MediaDecoderJob::DecoderCallback
& callback
,
43 DecodeStatus status
) OVERRIDE
;
45 virtual bool ComputeTimeToRender() const OVERRIDE
;
47 scoped_ptr
<AudioCodecBridge
> audio_codec_bridge_
;
52 #endif // MEDIA_BASE_ANDROID_AUDIO_DECODER_JOB_H_