diff options
Diffstat (limited to 'include/media')
27 files changed, 241 insertions, 206 deletions
diff --git a/include/media/AudioEffect.h b/include/media/AudioEffect.h index 1417416..7b0b443 100644 --- a/include/media/AudioEffect.h +++ b/include/media/AudioEffect.h @@ -226,8 +226,8 @@ public: AudioEffect(const effect_uuid_t *type, const effect_uuid_t *uuid = NULL, int32_t priority = 0, - effect_callback_t cbf = 0, - void* user = 0, + effect_callback_t cbf = NULL, + void* user = NULL, int sessionId = 0, audio_io_handle_t io = 0 ); @@ -238,8 +238,8 @@ public: AudioEffect(const char *typeStr, const char *uuidStr = NULL, int32_t priority = 0, - effect_callback_t cbf = 0, - void* user = 0, + effect_callback_t cbf = NULL, + void* user = NULL, int sessionId = 0, audio_io_handle_t io = 0 ); @@ -260,8 +260,8 @@ public: status_t set(const effect_uuid_t *type, const effect_uuid_t *uuid = NULL, int32_t priority = 0, - effect_callback_t cbf = 0, - void* user = 0, + effect_callback_t cbf = NULL, + void* user = NULL, int sessionId = 0, audio_io_handle_t io = 0 ); diff --git a/include/media/AudioRecord.h b/include/media/AudioRecord.h index 605680a..c8c5dba 100644 --- a/include/media/AudioRecord.h +++ b/include/media/AudioRecord.h @@ -22,7 +22,6 @@ #include <media/IAudioFlinger.h> #include <media/IAudioRecord.h> -#include <media/AudioTrack.h> #include <utils/RefBase.h> #include <utils/Errors.h> @@ -34,6 +33,8 @@ namespace android { +class audio_track_cblk_t; + // ---------------------------------------------------------------------------- class AudioRecord @@ -67,7 +68,7 @@ public: }; uint32_t flags; int channelCount; - int format; + audio_format_t format; size_t frameCount; size_t size; union { @@ -111,7 +112,7 @@ public: static status_t getMinFrameCount(int* frameCount, uint32_t sampleRate, - int format, + audio_format_t format, int channelCount); /* Constructs an uninitialized AudioRecord. No connection with @@ -148,14 +149,14 @@ public: RECORD_IIR_ENABLE = AUDIO_IN_ACOUSTICS_TX_IIR_ENABLE, }; - AudioRecord(int inputSource, + AudioRecord(audio_source_t inputSource, uint32_t sampleRate = 0, - int format = 0, + audio_format_t format = AUDIO_FORMAT_DEFAULT, uint32_t channelMask = AUDIO_CHANNEL_IN_MONO, int frameCount = 0, uint32_t flags = 0, - callback_t cbf = 0, - void* user = 0, + callback_t cbf = NULL, + void* user = NULL, int notificationFrames = 0, int sessionId = 0); @@ -174,14 +175,14 @@ public: * - NO_INIT: audio server or audio hardware not initialized * - PERMISSION_DENIED: recording is not allowed for the requesting process * */ - status_t set(int inputSource = 0, + status_t set(audio_source_t inputSource = AUDIO_SOURCE_DEFAULT, uint32_t sampleRate = 0, - int format = 0, + audio_format_t format = AUDIO_FORMAT_DEFAULT, uint32_t channelMask = AUDIO_CHANNEL_IN_MONO, int frameCount = 0, uint32_t flags = 0, - callback_t cbf = 0, - void* user = 0, + callback_t cbf = NULL, + void* user = NULL, int notificationFrames = 0, bool threadCanCallJava = false, int sessionId = 0); @@ -202,12 +203,12 @@ public: /* getters, see constructor */ - int format() const; + audio_format_t format() const; int channelCount() const; int channels() const; uint32_t frameCount() const; - int frameSize() const; - int inputSource() const; + size_t frameSize() const; + audio_source_t inputSource() const; /* After it's created the track is not active. Call start() to @@ -348,7 +349,7 @@ private: bool processAudioBuffer(const sp<ClientRecordThread>& thread); status_t openRecord_l(uint32_t sampleRate, - uint32_t format, + audio_format_t format, uint32_t channelMask, int frameCount, uint32_t flags, @@ -364,10 +365,9 @@ private: uint32_t mFrameCount; audio_track_cblk_t* mCblk; - uint32_t mFormat; + audio_format_t mFormat; uint8_t mChannelCount; - uint8_t mInputSource; - uint8_t mReserved[2]; + audio_source_t mInputSource; status_t mStatus; uint32_t mLatency; @@ -385,6 +385,8 @@ private: uint32_t mChannelMask; audio_io_handle_t mInput; int mSessionId; + int mPreviousPriority; // before start() + int mPreviousSchedulingGroup; }; }; // namespace android diff --git a/include/media/AudioSystem.h b/include/media/AudioSystem.h index 6a15f6e..74a1e62 100644 --- a/include/media/AudioSystem.h +++ b/include/media/AudioSystem.h @@ -55,19 +55,19 @@ public: static status_t getMasterMute(bool* mute); // set/get stream volume on specified output - static status_t setStreamVolume(int stream, float value, int output); - static status_t getStreamVolume(int stream, float* volume, int output); + static status_t setStreamVolume(audio_stream_type_t stream, float value, int output); + static status_t getStreamVolume(audio_stream_type_t stream, float* volume, int output); // mute/unmute stream - static status_t setStreamMute(int stream, bool mute); - static status_t getStreamMute(int stream, bool* mute); + static status_t setStreamMute(audio_stream_type_t stream, bool mute); + static status_t getStreamMute(audio_stream_type_t stream, bool* mute); - // set audio mode in audio hardware (see audio_mode_t) - static status_t setMode(int mode); + // set audio mode in audio hardware + static status_t setMode(audio_mode_t mode); // returns true in *state if tracks are active on the specified stream or has been active // in the past inPastMs milliseconds - static status_t isStreamActive(int stream, bool *state, uint32_t inPastMs = 0); + static status_t isStreamActive(audio_stream_type_t stream, bool *state, uint32_t inPastMs = 0); // set/get audio hardware parameters. The function accepts a list of parameters // key value pairs in the form: key1=value1;key2=value2;... @@ -83,13 +83,19 @@ public: static float linearToLog(int volume); static int logToLinear(float volume); + static status_t getOutputSamplingRate(int* samplingRate, audio_stream_type_t stream = AUDIO_STREAM_DEFAULT); + static status_t getOutputFrameCount(int* frameCount, audio_stream_type_t stream = AUDIO_STREAM_DEFAULT); + static status_t getOutputLatency(uint32_t* latency, audio_stream_type_t stream = AUDIO_STREAM_DEFAULT); + + // DEPRECATED static status_t getOutputSamplingRate(int* samplingRate, int stream = AUDIO_STREAM_DEFAULT); + + // DEPRECATED static status_t getOutputFrameCount(int* frameCount, int stream = AUDIO_STREAM_DEFAULT); - static status_t getOutputLatency(uint32_t* latency, int stream = AUDIO_STREAM_DEFAULT); - static bool routedToA2dpOutput(int streamType); + static bool routedToA2dpOutput(audio_stream_type_t streamType); - static status_t getInputBufferSize(uint32_t sampleRate, int format, int channelCount, + static status_t getInputBufferSize(uint32_t sampleRate, audio_format_t format, int channelCount, size_t* buffSize); static status_t setVoiceVolume(float volume); @@ -103,7 +109,7 @@ public: // - BAD_VALUE: invalid parameter // NOTE: this feature is not supported on all hardware platforms and it is // necessary to check returned status before using the returned values. - static status_t getRenderPosition(uint32_t *halFrames, uint32_t *dspFrames, int stream = AUDIO_STREAM_DEFAULT); + static status_t getRenderPosition(uint32_t *halFrames, uint32_t *dspFrames, audio_stream_type_t stream = AUDIO_STREAM_DEFAULT); static unsigned int getInputFramesLost(audio_io_handle_t ioHandle); @@ -128,7 +134,7 @@ public: class OutputDescriptor { public: OutputDescriptor() - : samplingRate(0), format(0), channels(0), frameCount(0), latency(0) {} + : samplingRate(0), format(AUDIO_FORMAT_DEFAULT), channels(0), frameCount(0), latency(0) {} uint32_t samplingRate; int32_t format; @@ -142,13 +148,12 @@ public: // static status_t setDeviceConnectionState(audio_devices_t device, audio_policy_dev_state_t state, const char *device_address); static audio_policy_dev_state_t getDeviceConnectionState(audio_devices_t device, const char *device_address); - static status_t setPhoneState(int state); - static status_t setRingerMode(uint32_t mode, uint32_t mask); + static status_t setPhoneState(audio_mode_t state); static status_t setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config); static audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage); static audio_io_handle_t getOutput(audio_stream_type_t stream, uint32_t samplingRate = 0, - uint32_t format = AUDIO_FORMAT_DEFAULT, + audio_format_t format = AUDIO_FORMAT_DEFAULT, uint32_t channels = AUDIO_CHANNEL_OUT_STEREO, audio_policy_output_flags_t flags = AUDIO_POLICY_OUTPUT_FLAG_INDIRECT); static status_t startOutput(audio_io_handle_t output, @@ -158,9 +163,9 @@ public: audio_stream_type_t stream, int session = 0); static void releaseOutput(audio_io_handle_t output); - static audio_io_handle_t getInput(int inputSource, + static audio_io_handle_t getInput(audio_source_t inputSource, uint32_t samplingRate = 0, - uint32_t format = AUDIO_FORMAT_DEFAULT, + audio_format_t format = AUDIO_FORMAT_DEFAULT, uint32_t channels = AUDIO_CHANNEL_IN_MONO, audio_in_acoustics_t acoustics = (audio_in_acoustics_t)0, int sessionId = 0); @@ -170,8 +175,12 @@ public: static status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax); - static status_t setStreamVolumeIndex(audio_stream_type_t stream, int index); - static status_t getStreamVolumeIndex(audio_stream_type_t stream, int *index); + static status_t setStreamVolumeIndex(audio_stream_type_t stream, + int index, + audio_devices_t device); + static status_t getStreamVolumeIndex(audio_stream_type_t stream, + int *index, + audio_devices_t device); static uint32_t getStrategyForStream(audio_stream_type_t stream); static uint32_t getDevicesForStream(audio_stream_type_t stream); @@ -233,13 +242,13 @@ private: static size_t gInBuffSize; // previous parameters for recording buffer size queries static uint32_t gPrevInSamplingRate; - static int gPrevInFormat; + static audio_format_t gPrevInFormat; static int gPrevInChannelCount; static sp<IAudioPolicyService> gAudioPolicyService; // mapping between stream types and outputs - static DefaultKeyedVector<int, audio_io_handle_t> gStreamOutputMap; + static DefaultKeyedVector<audio_stream_type_t, audio_io_handle_t> gStreamOutputMap; // list of output descriptors containing cached parameters // (sampling rate, framecount, channel count...) static DefaultKeyedVector<audio_io_handle_t, OutputDescriptor *> gOutputs; diff --git a/include/media/AudioTrack.h b/include/media/AudioTrack.h index d1a8105..02c85cd 100644 --- a/include/media/AudioTrack.h +++ b/include/media/AudioTrack.h @@ -38,7 +38,7 @@ class audio_track_cblk_t; // ---------------------------------------------------------------------------- -class AudioTrack +class AudioTrack : virtual public RefBase { public: enum channel_index { @@ -69,21 +69,22 @@ public: MUTE = 0x00000001 }; uint32_t flags; - int format; + audio_format_t format; // but AUDIO_FORMAT_PCM_8_BIT -> AUDIO_FORMAT_PCM_16_BIT + // accessed directly by WebKit ANP callback int channelCount; // will be removed in the future, do not use size_t frameCount; size_t size; union { void* raw; - short* i16; - int8_t* i8; + short* i16; // signed 16-bit + int8_t* i8; // unsigned 8-bit, offset by 0x80 }; }; /* As a convenience, if a callback is supplied, a handler thread * is automatically created with the appropriate priority. This thread - * invokes the callback when a new buffer becomes availlable or an underrun condition occurs. + * invokes the callback when a new buffer becomes available or an underrun condition occurs. * Parameters: * * event: type of event notified (see enum AudioTrack::event_type). @@ -94,8 +95,8 @@ public: * written. * - EVENT_UNDERRUN: unused. * - EVENT_LOOP_END: pointer to an int indicating the number of loops remaining. - * - EVENT_MARKER: pointer to an uin32_t containing the marker position in frames. - * - EVENT_NEW_POS: pointer to an uin32_t containing the new position in frames. + * - EVENT_MARKER: pointer to an uint32_t containing the marker position in frames. + * - EVENT_NEW_POS: pointer to an uint32_t containing the new position in frames. * - EVENT_BUFFER_END: unused. */ @@ -109,7 +110,7 @@ public: */ static status_t getMinFrameCount(int* frameCount, - int streamType =-1, + audio_stream_type_t streamType = AUDIO_STREAM_DEFAULT, uint32_t sampleRate = 0); /* Constructs an uninitialized AudioTrack. No connection with @@ -135,14 +136,27 @@ public: * flags: Reserved for future use. * cbf: Callback function. If not null, this function is called periodically * to request new PCM data. + * user: Context for use by the callback receiver. * notificationFrames: The callback function is called each time notificationFrames PCM - * frames have been comsumed from track input buffer. - * user Context for use by the callback receiver. + * frames have been consumed from track input buffer. + * sessionId: Specific session ID, or zero to use default. */ - AudioTrack( int streamType, + AudioTrack( audio_stream_type_t streamType, uint32_t sampleRate = 0, - int format = 0, + audio_format_t format = AUDIO_FORMAT_DEFAULT, + int channelMask = 0, + int frameCount = 0, + uint32_t flags = 0, + callback_t cbf = NULL, + void* user = NULL, + int notificationFrames = 0, + int sessionId = 0); + + // DEPRECATED + explicit AudioTrack( int streamType, + uint32_t sampleRate = 0, + int format = AUDIO_FORMAT_DEFAULT, int channelMask = 0, int frameCount = 0, uint32_t flags = 0, @@ -152,46 +166,46 @@ public: int sessionId = 0); /* Creates an audio track and registers it with AudioFlinger. With this constructor, - * The PCM data to be rendered by AudioTrack is passed in a shared memory buffer + * the PCM data to be rendered by AudioTrack is passed in a shared memory buffer * identified by the argument sharedBuffer. This prototype is for static buffer playback. - * PCM data must be present into memory before the AudioTrack is started. - * The Write() and Flush() methods are not supported in this case. - * It is recommented to pass a callback function to be notified of playback end by an + * PCM data must be present in memory before the AudioTrack is started. + * The write() and flush() methods are not supported in this case. + * It is recommended to pass a callback function to be notified of playback end by an * EVENT_UNDERRUN event. */ - AudioTrack( int streamType, + AudioTrack( audio_stream_type_t streamType, uint32_t sampleRate = 0, - int format = 0, + audio_format_t format = AUDIO_FORMAT_DEFAULT, int channelMask = 0, const sp<IMemory>& sharedBuffer = 0, uint32_t flags = 0, - callback_t cbf = 0, - void* user = 0, + callback_t cbf = NULL, + void* user = NULL, int notificationFrames = 0, int sessionId = 0); /* Terminates the AudioTrack and unregisters it from AudioFlinger. - * Also destroys all resources assotiated with the AudioTrack. + * Also destroys all resources associated with the AudioTrack. */ ~AudioTrack(); /* Initialize an uninitialized AudioTrack. * Returned status (from utils/Errors.h) can be: - * - NO_ERROR: successful intialization - * - INVALID_OPERATION: AudioTrack is already intitialized + * - NO_ERROR: successful initialization + * - INVALID_OPERATION: AudioTrack is already initialized * - BAD_VALUE: invalid parameter (channels, format, sampleRate...) * - NO_INIT: audio server or audio hardware not initialized * */ - status_t set(int streamType =-1, + status_t set(audio_stream_type_t streamType = AUDIO_STREAM_DEFAULT, uint32_t sampleRate = 0, - int format = 0, + audio_format_t format = AUDIO_FORMAT_DEFAULT, int channelMask = 0, int frameCount = 0, uint32_t flags = 0, - callback_t cbf = 0, - void* user = 0, + callback_t cbf = NULL, + void* user = NULL, int notificationFrames = 0, const sp<IMemory>& sharedBuffer = 0, bool threadCanCallJava = false, @@ -199,13 +213,13 @@ public: /* Result of constructing the AudioTrack. This must be checked - * before using any AudioTrack API (except for set()), using + * before using any AudioTrack API (except for set()), because using * an uninitialized AudioTrack produces undefined results. * See set() method above for possible return codes. */ status_t initCheck() const; - /* Returns this track's latency in milliseconds. + /* Returns this track's estimated latency in milliseconds. * This includes the latency due to AudioTrack buffer size, AudioMixer (if any) * and audio hardware driver. */ @@ -213,11 +227,16 @@ public: /* getters, see constructor */ - int streamType() const; - int format() const; + audio_stream_type_t streamType() const; + audio_format_t format() const; int channelCount() const; uint32_t frameCount() const; - int frameSize() const; + + /* Return channelCount * (bit depth per channel / 8). + * channelCount is determined from channelMask, and bit depth comes from format. + */ + size_t frameSize() const; + sp<IMemory>& sharedBuffer(); @@ -233,8 +252,8 @@ public: void stop(); bool stopped() const; - /* flush a stopped track. All pending buffers are discarded. - * This function has no effect if the track is not stoped. + /* Flush a stopped track. All pending buffers are discarded. + * This function has no effect if the track is not stopped. */ void flush(); @@ -244,26 +263,25 @@ public: */ void pause(); - /* mute or unmutes this track. - * While mutted, the callback, if set, is still called. + /* Mute or unmute this track. + * While muted, the callback, if set, is still called. */ void mute(bool); bool muted() const; - - /* set volume for this track, mostly used for games' sound effects - * left and right volumes. Levels must be <= 1.0. + /* Set volume for this track, mostly used for games' sound effects + * left and right volumes. Levels must be >= 0.0 and <= 1.0. */ status_t setVolume(float left, float right); void getVolume(float* left, float* right); - /* set the send level for this track. An auxiliary effect should be attached - * to the track with attachEffect(). Level must be <= 1.0. + /* Set the send level for this track. An auxiliary effect should be attached + * to the track with attachEffect(). Level must be >= 0.0 and <= 1.0. */ status_t setAuxEffectSendLevel(float level); void getAuxEffectSendLevel(float* level); - /* set sample rate for this track, mostly used for games' sound effects + /* Set sample rate for this track, mostly used for games' sound effects */ status_t setSampleRate(int sampleRate); uint32_t getSampleRate(); @@ -274,8 +292,8 @@ public: * * loopStart: loop start expressed as the number of PCM frames played since AudioTrack start. * loopEnd: loop end expressed as the number of PCM frames played since AudioTrack start. - * loopCount: number of loops to execute. Calling setLoop() with loopCount == 0 cancels any pending or - * active loop. loopCount = -1 means infinite looping. + * loopCount: number of loops to execute. Calling setLoop() with loopCount == 0 cancels any + * pending or active loop. loopCount = -1 means infinite looping. * * For proper operation the following condition must be respected: * (loopEnd-loopStart) <= framecount() @@ -283,10 +301,9 @@ public: status_t setLoop(uint32_t loopStart, uint32_t loopEnd, int loopCount); status_t getLoop(uint32_t *loopStart, uint32_t *loopEnd, int *loopCount); - - /* Sets marker position. When playback reaches the number of frames specified, a callback with event - * type EVENT_MARKER is called. Calling setMarkerPosition with marker == 0 cancels marker notification - * callback. + /* Sets marker position. When playback reaches the number of frames specified, a callback with + * event type EVENT_MARKER is called. Calling setMarkerPosition with marker == 0 cancels marker + * notification callback. * If the AudioTrack has been opened with no callback function associated, the operation will fail. * * Parameters: @@ -301,10 +318,10 @@ public: status_t getMarkerPosition(uint32_t *marker); - /* Sets position update period. Every time the number of frames specified has been played, - * a callback with event type EVENT_NEW_POS is called. - * Calling setPositionUpdatePeriod with updatePeriod == 0 cancels new position notification - * callback. + /* Sets position update period. Every time the number of frames specified has been played, + * a callback with event type EVENT_NEW_POS is called. + * Calling setPositionUpdatePeriod with updatePeriod == 0 cancels new position notification + * callback. * If the AudioTrack has been opened with no callback function associated, the operation will fail. * * Parameters: @@ -318,12 +335,11 @@ public: status_t setPositionUpdatePeriod(uint32_t updatePeriod); status_t getPositionUpdatePeriod(uint32_t *updatePeriod); - /* Sets playback head position within AudioTrack buffer. The new position is specified - * in number of frames. + * in number of frames. * This method must be called with the AudioTrack in paused or stopped state. - * Note that the actual position set is <position> modulo the AudioTrack buffer size in frames. - * Therefore using this method makes sense only when playing a "static" audio buffer + * Note that the actual position set is <position> modulo the AudioTrack buffer size in frames. + * Therefore using this method makes sense only when playing a "static" audio buffer * as opposed to streaming. * The getPosition() method on the other hand returns the total number of frames played since * playback start. @@ -335,12 +351,12 @@ public: * Returned status (from utils/Errors.h) can be: * - NO_ERROR: successful operation * - INVALID_OPERATION: the AudioTrack is not stopped. - * - BAD_VALUE: The specified position is beyond the number of frames present in AudioTrack buffer + * - BAD_VALUE: The specified position is beyond the number of frames present in AudioTrack buffer */ status_t setPosition(uint32_t position); status_t getPosition(uint32_t *position); - /* Forces AudioTrack buffer full condition. When playing a static buffer, this method avoids + /* Forces AudioTrack buffer full condition. When playing a static buffer, this method avoids * rewriting the buffer before restarting playback after a stop. * This method must be called with the AudioTrack in paused or stopped state. * @@ -350,7 +366,7 @@ public: */ status_t reload(); - /* returns a handle on the audio output used by this AudioTrack. + /* Returns a handle on the audio output used by this AudioTrack. * * Parameters: * none. @@ -360,18 +376,17 @@ public: */ audio_io_handle_t getOutput(); - /* returns the unique ID associated to this track. + /* Returns the unique session ID associated with this track. * * Parameters: * none. * * Returned value: - * AudioTrack ID. + * AudioTrack session ID. */ int getSessionId(); - - /* Attach track auxiliary output to specified effect. Used effectId = 0 + /* Attach track auxiliary output to specified effect. Use effectId = 0 * to detach track from effect. * * Parameters: @@ -385,9 +400,9 @@ public: */ status_t attachAuxEffect(int effectId); - /* obtains a buffer of "frameCount" frames. The buffer must be + /* Obtains a buffer of "frameCount" frames. The buffer must be * filled entirely. If the track is stopped, obtainBuffer() returns - * STOPPED instead of NO_ERROR as long as there are buffers availlable, + * STOPPED instead of NO_ERROR as long as there are buffers available, * at which point NO_MORE_BUFFERS is returned. * Buffers will be returned until the pool (buffercount()) * is exhausted, at which point obtainBuffer() will either block @@ -396,17 +411,16 @@ public: */ enum { - NO_MORE_BUFFERS = 0x80000001, + NO_MORE_BUFFERS = 0x80000001, // same name in AudioFlinger.h, ok to be different value STOPPED = 1 }; status_t obtainBuffer(Buffer* audioBuffer, int32_t waitCount); void releaseBuffer(Buffer* audioBuffer); - /* As a convenience we provide a write() interface to the audio buffer. * This is implemented on top of lockBuffer/unlockBuffer. For best - * performance + * performance use callbacks. Return actual number of bytes written. * */ ssize_t write(const void* buffer, size_t size); @@ -436,9 +450,9 @@ private: }; bool processAudioBuffer(const sp<AudioTrackThread>& thread); - status_t createTrack_l(int streamType, + status_t createTrack_l(audio_stream_type_t streamType, uint32_t sampleRate, - uint32_t format, + audio_format_t format, uint32_t channelMask, int frameCount, uint32_t flags, @@ -449,6 +463,7 @@ private: status_t setLoop_l(uint32_t loopStart, uint32_t loopEnd, int loopCount); audio_io_handle_t getOutput_l(); status_t restoreTrack_l(audio_track_cblk_t*& cblk, bool fromStart); + bool stopped_l() const { return !mActive; } sp<IAudioTrack> mAudioTrack; sp<IMemory> mCblkMemory; @@ -459,8 +474,8 @@ private: uint32_t mFrameCount; audio_track_cblk_t* mCblk; - uint32_t mFormat; - uint8_t mStreamType; + audio_format_t mFormat; + audio_stream_type_t mStreamType; uint8_t mChannelCount; uint8_t mMuted; uint8_t mReserved; @@ -468,7 +483,7 @@ private: status_t mStatus; uint32_t mLatency; - volatile int32_t mActive; + bool mActive; // protected by mLock callback_t mCbf; void* mUserData; @@ -485,8 +500,10 @@ private: uint32_t mFlags; int mSessionId; int mAuxEffectId; - Mutex mLock; + mutable Mutex mLock; status_t mRestoreStatus; + int mPreviousPriority; // before start() + int mPreviousSchedulingGroup; }; diff --git a/include/media/IAudioFlinger.h b/include/media/IAudioFlinger.h index 9e3cb7f..760595c 100644 --- a/include/media/IAudioFlinger.h +++ b/include/media/IAudioFlinger.h @@ -46,9 +46,9 @@ public: */ virtual sp<IAudioTrack> createTrack( pid_t pid, - int streamType, + audio_stream_type_t streamType, uint32_t sampleRate, - uint32_t format, + audio_format_t format, uint32_t channelMask, int frameCount, uint32_t flags, @@ -61,7 +61,7 @@ public: pid_t pid, int input, uint32_t sampleRate, - uint32_t format, + audio_format_t format, uint32_t channelMask, int frameCount, uint32_t flags, @@ -73,7 +73,7 @@ public: */ virtual uint32_t sampleRate(int output) const = 0; virtual int channelCount(int output) const = 0; - virtual uint32_t format(int output) const = 0; + virtual audio_format_t format(int output) const = 0; virtual size_t frameCount(int output) const = 0; virtual uint32_t latency(int output) const = 0; @@ -89,14 +89,14 @@ public: /* set/get stream type state. This will probably be used by * the preference panel, mostly. */ - virtual status_t setStreamVolume(int stream, float value, int output) = 0; - virtual status_t setStreamMute(int stream, bool muted) = 0; + virtual status_t setStreamVolume(audio_stream_type_t stream, float value, int output) = 0; + virtual status_t setStreamMute(audio_stream_type_t stream, bool muted) = 0; - virtual float streamVolume(int stream, int output) const = 0; - virtual bool streamMute(int stream) const = 0; + virtual float streamVolume(audio_stream_type_t stream, int output) const = 0; + virtual bool streamMute(audio_stream_type_t stream) const = 0; // set audio mode - virtual status_t setMode(int mode) = 0; + virtual status_t setMode(audio_mode_t mode) = 0; // mic mute/state virtual status_t setMicMute(bool state) = 0; @@ -109,11 +109,11 @@ public: virtual void registerClient(const sp<IAudioFlingerClient>& client) = 0; // retrieve the audio recording buffer size - virtual size_t getInputBufferSize(uint32_t sampleRate, int format, int channelCount) = 0; + virtual size_t getInputBufferSize(uint32_t sampleRate, audio_format_t format, int channelCount) = 0; virtual int openOutput(uint32_t *pDevices, uint32_t *pSamplingRate, - uint32_t *pFormat, + audio_format_t *pFormat, uint32_t *pChannels, uint32_t *pLatencyMs, uint32_t flags) = 0; @@ -124,12 +124,12 @@ public: virtual int openInput(uint32_t *pDevices, uint32_t *pSamplingRate, - uint32_t *pFormat, + audio_format_t *pFormat, uint32_t *pChannels, - uint32_t acoustics) = 0; + audio_in_acoustics_t acoustics) = 0; virtual status_t closeInput(int input) = 0; - virtual status_t setStreamOutput(uint32_t stream, int output) = 0; + virtual status_t setStreamOutput(audio_stream_type_t stream, int output) = 0; virtual status_t setVoiceVolume(float volume) = 0; diff --git a/include/media/IAudioPolicyService.h b/include/media/IAudioPolicyService.h index 9807cbe..4d88297 100644 --- a/include/media/IAudioPolicyService.h +++ b/include/media/IAudioPolicyService.h @@ -45,13 +45,12 @@ public: const char *device_address) = 0; virtual audio_policy_dev_state_t getDeviceConnectionState(audio_devices_t device, const char *device_address) = 0; - virtual status_t setPhoneState(int state) = 0; - virtual status_t setRingerMode(uint32_t mode, uint32_t mask) = 0; + virtual status_t setPhoneState(audio_mode_t state) = 0; virtual status_t setForceUse(audio_policy_force_use_t usage, audio_policy_forced_cfg_t config) = 0; virtual audio_policy_forced_cfg_t getForceUse(audio_policy_force_use_t usage) = 0; virtual audio_io_handle_t getOutput(audio_stream_type_t stream, uint32_t samplingRate = 0, - uint32_t format = AUDIO_FORMAT_DEFAULT, + audio_format_t format = AUDIO_FORMAT_DEFAULT, uint32_t channels = 0, audio_policy_output_flags_t flags = AUDIO_POLICY_OUTPUT_FLAG_INDIRECT) = 0; virtual status_t startOutput(audio_io_handle_t output, @@ -61,9 +60,9 @@ public: audio_stream_type_t stream, int session = 0) = 0; virtual void releaseOutput(audio_io_handle_t output) = 0; - virtual audio_io_handle_t getInput(int inputSource, + virtual audio_io_handle_t getInput(audio_source_t inputSource, uint32_t samplingRate = 0, - uint32_t format = AUDIO_FORMAT_DEFAULT, + audio_format_t format = AUDIO_FORMAT_DEFAULT, uint32_t channels = 0, audio_in_acoustics_t acoustics = (audio_in_acoustics_t)0, int audioSession = 0) = 0; @@ -73,8 +72,12 @@ public: virtual status_t initStreamVolume(audio_stream_type_t stream, int indexMin, int indexMax) = 0; - virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, int index) = 0; - virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, int *index) = 0; + virtual status_t setStreamVolumeIndex(audio_stream_type_t stream, + int index, + audio_devices_t device) = 0; + virtual status_t getStreamVolumeIndex(audio_stream_type_t stream, + int *index, + audio_devices_t device) = 0; virtual uint32_t getStrategyForStream(audio_stream_type_t stream) = 0; virtual uint32_t getDevicesForStream(audio_stream_type_t stream) = 0; virtual audio_io_handle_t getOutputForEffect(effect_descriptor_t *desc) = 0; @@ -85,7 +88,7 @@ public: int id) = 0; virtual status_t unregisterEffect(int id) = 0; virtual status_t setEffectEnabled(int id, bool enabled) = 0; - virtual bool isStreamActive(int stream, uint32_t inPastMs = 0) const = 0; + virtual bool isStreamActive(audio_stream_type_t stream, uint32_t inPastMs = 0) const = 0; virtual status_t queryDefaultPreProcessing(int audioSession, effect_descriptor_t *descriptors, uint32_t *count) = 0; diff --git a/include/media/IAudioTrack.h b/include/media/IAudioTrack.h index 47d530b..b83e552 100644 --- a/include/media/IAudioTrack.h +++ b/include/media/IAudioTrack.h @@ -35,6 +35,9 @@ class IAudioTrack : public IInterface public: DECLARE_META_INTERFACE(AudioTrack); + /* Get this track's control block */ + virtual sp<IMemory> getCblk() const = 0; + /* After it's created the track is not active. Call start() to * make it active. If set, the callback will start being called. */ @@ -46,13 +49,13 @@ public: */ virtual void stop() = 0; - /* flush a stopped track. All pending buffers are discarded. - * This function has no effect if the track is not stoped. + /* Flush a stopped track. All pending buffers are discarded. + * This function has no effect if the track is not stopped. */ virtual void flush() = 0; - /* mute or unmutes this track. - * While mutted, the callback, if set, is still called. + /* Mute or unmute this track. + * While muted, the callback, if set, is still called. */ virtual void mute(bool) = 0; @@ -67,8 +70,6 @@ public: */ virtual status_t attachAuxEffect(int effectId) = 0; - /* get this tracks control block */ - virtual sp<IMemory> getCblk() const = 0; }; // ---------------------------------------------------------------------------- diff --git a/include/media/IMediaPlayer.h b/include/media/IMediaPlayer.h index e905903..6425886 100644 --- a/include/media/IMediaPlayer.h +++ b/include/media/IMediaPlayer.h @@ -21,6 +21,7 @@ #include <binder/IInterface.h> #include <binder/Parcel.h> #include <utils/KeyedVector.h> +#include <system/audio.h> namespace android { @@ -51,7 +52,7 @@ public: virtual status_t getCurrentPosition(int* msec) = 0; virtual status_t getDuration(int* msec) = 0; virtual status_t reset() = 0; - virtual status_t setAudioStreamType(int type) = 0; + virtual status_t setAudioStreamType(audio_stream_type_t type) = 0; virtual status_t setLooping(int loop) = 0; virtual status_t setVolume(float leftVolume, float rightVolume) = 0; virtual status_t setAuxEffectSendLevel(float level) = 0; diff --git a/include/media/IMediaPlayerService.h b/include/media/IMediaPlayerService.h index 93bbe13..4f46fcd 100644 --- a/include/media/IMediaPlayerService.h +++ b/include/media/IMediaPlayerService.h @@ -23,6 +23,7 @@ #include <utils/String8.h> #include <binder/IInterface.h> #include <binder/Parcel.h> +#include <system/audio.h> #include <media/IMediaPlayerClient.h> #include <media/IMediaPlayer.h> @@ -43,8 +44,8 @@ public: virtual sp<IMediaMetadataRetriever> createMetadataRetriever(pid_t pid) = 0; virtual sp<IMediaPlayer> create(pid_t pid, const sp<IMediaPlayerClient>& client, int audioSessionId = 0) = 0; - virtual sp<IMemory> decode(const char* url, uint32_t *pSampleRate, int* pNumChannels, int* pFormat) = 0; - virtual sp<IMemory> decode(int fd, int64_t offset, int64_t length, uint32_t *pSampleRate, int* pNumChannels, int* pFormat) = 0; + virtual sp<IMemory> decode(const char* url, uint32_t *pSampleRate, int* pNumChannels, audio_format_t* pFormat) = 0; + virtual sp<IMemory> decode(int fd, int64_t offset, int64_t length, uint32_t *pSampleRate, int* pNumChannels, audio_format_t* pFormat) = 0; virtual sp<IOMX> getOMX() = 0; // codecs and audio devices usage tracking for the battery app diff --git a/include/media/IOMX.h b/include/media/IOMX.h index c4cc947..a295e9a 100644 --- a/include/media/IOMX.h +++ b/include/media/IOMX.h @@ -42,10 +42,10 @@ public: typedef void *buffer_id; typedef void *node_id; - // Given the calling process' pid, returns true iff + // Given a node_id and the calling process' pid, returns true iff // the implementation of the OMX interface lives in the same // process. - virtual bool livesLocally(pid_t pid) = 0; + virtual bool livesLocally(node_id node, pid_t pid) = 0; struct ComponentInfo { String8 mName; diff --git a/include/media/JetPlayer.h b/include/media/JetPlayer.h index 16764a9..491a950 100644 --- a/include/media/JetPlayer.h +++ b/include/media/JetPlayer.h @@ -65,7 +65,6 @@ public: private: - static int renderThread(void*); int render(); void fireUpdateOnStatusChange(); void fireEventsFromJetQueue(); @@ -95,8 +94,30 @@ private: S_JET_STATUS mJetStatus; S_JET_STATUS mPreviousJetStatus; - char mJetFilePath[256]; + char mJetFilePath[PATH_MAX]; + class JetPlayerThread : public Thread { + public: + JetPlayerThread(JetPlayer *player) : mPlayer(player) { + } + + protected: + virtual ~JetPlayerThread() {} + + private: + JetPlayer *mPlayer; + + bool threadLoop() { + int result; + result = mPlayer->render(); + return false; + } + + JetPlayerThread(const JetPlayerThread &); + JetPlayerThread &operator=(const JetPlayerThread &); + }; + + sp<JetPlayerThread> mThread; }; // end class JetPlayer diff --git a/include/media/MediaPlayerInterface.h b/include/media/MediaPlayerInterface.h index 80f43a3..7beb176 100644 --- a/include/media/MediaPlayerInterface.h +++ b/include/media/MediaPlayerInterface.h @@ -85,7 +85,7 @@ public: // audio data. virtual status_t open( uint32_t sampleRate, int channelCount, - int format=AUDIO_FORMAT_PCM_16_BIT, + audio_format_t format=AUDIO_FORMAT_PCM_16_BIT, int bufferCount=DEFAULT_AUDIOSINK_BUFFERCOUNT, AudioCallback cb = NULL, void *cookie = NULL) = 0; @@ -199,7 +199,7 @@ public: virtual ~MediaPlayerHWInterface() {} virtual bool hardwareOutput() { return true; } virtual status_t setVolume(float leftVolume, float rightVolume) = 0; - virtual status_t setAudioStreamType(int streamType) = 0; + virtual status_t setAudioStreamType(audio_stream_type_t streamType) = 0; }; }; // namespace android diff --git a/include/media/ToneGenerator.h b/include/media/ToneGenerator.h index 1ad1f26..df0c97e 100644 --- a/include/media/ToneGenerator.h +++ b/include/media/ToneGenerator.h @@ -151,10 +151,10 @@ public: NUM_SUP_TONES = LAST_SUP_TONE-FIRST_SUP_TONE+1 }; - ToneGenerator(int streamType, float volume, bool threadCanCallJava = false); + ToneGenerator(audio_stream_type_t streamType, float volume, bool threadCanCallJava = false); ~ToneGenerator(); - bool startTone(int toneType, int durationMs = -1); + bool startTone(tone_type toneType, int durationMs = -1); void stopTone(); bool isInited() { return (mState == TONE_IDLE)?false:true;} @@ -266,7 +266,7 @@ private: Mutex mCbkCondLock; // Mutex associated to mWaitCbkCond Condition mWaitCbkCond; // condition enabling interface to wait for audio callback completion after a change is requested float mVolume; // Volume applied to audio track - int mStreamType; // Audio stream used for output + audio_stream_type_t mStreamType; // Audio stream used for output unsigned int mProcessSize; // Size of audio blocks generated at a time by audioCallback() (in PCM frames). bool initAudioTrack(); @@ -274,7 +274,7 @@ private: bool prepareWave(); unsigned int numWaves(unsigned int segmentIdx); void clearWaveGens(); - int getToneForRegion(int toneType); + tone_type getToneForRegion(tone_type toneType); // WaveGenerator generates a single sine wave class WaveGenerator { diff --git a/include/media/Visualizer.h b/include/media/Visualizer.h index 5d2c874..60fa15b 100644 --- a/include/media/Visualizer.h +++ b/include/media/Visualizer.h @@ -66,8 +66,8 @@ public: * See AudioEffect constructor for details on parameters. */ Visualizer(int32_t priority = 0, - effect_callback_t cbf = 0, - void* user = 0, + effect_callback_t cbf = NULL, + void* user = NULL, int sessionId = 0); ~Visualizer(); @@ -143,7 +143,7 @@ private: void periodicCapture(); uint32_t initCaptureSize(); - Mutex mLock; + Mutex mCaptureLock; uint32_t mCaptureRate; uint32_t mCaptureSize; uint32_t mSampleRate; diff --git a/include/media/mediaplayer.h b/include/media/mediaplayer.h index e6a0cc5..00b7dd5 100644 --- a/include/media/mediaplayer.h +++ b/include/media/mediaplayer.h @@ -185,13 +185,13 @@ public: status_t getCurrentPosition(int *msec); status_t getDuration(int *msec); status_t reset(); - status_t setAudioStreamType(int type); + status_t setAudioStreamType(audio_stream_type_t type); status_t setLooping(int loop); bool isLooping(); status_t setVolume(float leftVolume, float rightVolume); void notify(int msg, int ext1, int ext2, const Parcel *obj = NULL); - static sp<IMemory> decode(const char* url, uint32_t *pSampleRate, int* pNumChannels, int* pFormat); - static sp<IMemory> decode(int fd, int64_t offset, int64_t length, uint32_t *pSampleRate, int* pNumChannels, int* pFormat); + static sp<IMemory> decode(const char* url, uint32_t *pSampleRate, int* pNumChannels, audio_format_t* pFormat); + static sp<IMemory> decode(int fd, int64_t offset, int64_t length, uint32_t *pSampleRate, int* pNumChannels, audio_format_t* pFormat); status_t invoke(const Parcel& request, Parcel *reply); status_t setMetadataFilter(const Parcel& filter); status_t getMetadata(bool update_only, bool apply_filter, Parcel *metadata); @@ -223,7 +223,7 @@ private: int mSeekPosition; bool mPrepareSync; status_t mPrepareStatus; - int mStreamType; + audio_stream_type_t mStreamType; bool mLoop; float mLeftVolume; float mRightVolume; diff --git a/include/media/stagefright/AACWriter.h b/include/media/stagefright/AACWriter.h index fa3ab8a..49397ee 100644 --- a/include/media/stagefright/AACWriter.h +++ b/include/media/stagefright/AACWriter.h @@ -34,7 +34,7 @@ struct AACWriter : public MediaWriter { virtual status_t addSource(const sp<MediaSource> &source); virtual bool reachedEOS(); virtual status_t start(MetaData *params = NULL); - virtual status_t stop(); + virtual status_t stop() { return reset(); } virtual status_t pause(); protected: @@ -66,6 +66,7 @@ private: bool exceedsFileSizeLimit(); bool exceedsFileDurationLimit(); status_t writeAdtsHeader(uint32_t frameLength); + status_t reset(); DISALLOW_EVIL_CONSTRUCTORS(AACWriter); }; diff --git a/include/media/stagefright/AMRWriter.h b/include/media/stagefright/AMRWriter.h index 62d57b4..392f968 100644 --- a/include/media/stagefright/AMRWriter.h +++ b/include/media/stagefright/AMRWriter.h @@ -37,7 +37,7 @@ struct AMRWriter : public MediaWriter { virtual status_t addSource(const sp<MediaSource> &source); virtual bool reachedEOS(); virtual status_t start(MetaData *params = NULL); - virtual status_t stop(); + virtual status_t stop() { return reset(); } virtual status_t pause(); protected: @@ -60,6 +60,7 @@ private: status_t threadFunc(); bool exceedsFileSizeLimit(); bool exceedsFileDurationLimit(); + status_t reset(); AMRWriter(const AMRWriter &); AMRWriter &operator=(const AMRWriter &); diff --git a/include/media/stagefright/AudioSource.h b/include/media/stagefright/AudioSource.h index 19bd31b..79437bf 100644 --- a/include/media/stagefright/AudioSource.h +++ b/include/media/stagefright/AudioSource.h @@ -34,13 +34,13 @@ struct AudioSource : public MediaSource, public MediaBufferObserver { // Note that the "channels" parameter is _not_ the number of channels, // but a bitmask of audio_channels_t constants. AudioSource( - int inputSource, uint32_t sampleRate, + audio_source_t inputSource, uint32_t sampleRate, uint32_t channels = AUDIO_CHANNEL_IN_MONO); status_t initCheck() const; virtual status_t start(MetaData *params = NULL); - virtual status_t stop(); + virtual status_t stop() { return reset(); } virtual sp<MetaData> getFormat(); // Returns the maximum amplitude since last call. @@ -97,6 +97,7 @@ private: void releaseQueuedFrames_l(); void waitOutstandingEncodingFrames_l(); + status_t reset(); AudioSource(const AudioSource &); AudioSource &operator=(const AudioSource &); diff --git a/include/media/stagefright/CameraSource.h b/include/media/stagefright/CameraSource.h index 446720b..5a35358 100644 --- a/include/media/stagefright/CameraSource.h +++ b/include/media/stagefright/CameraSource.h @@ -79,7 +79,7 @@ public: virtual ~CameraSource(); virtual status_t start(MetaData *params = NULL); - virtual status_t stop(); + virtual status_t stop() { return reset(); } virtual status_t read( MediaBuffer **buffer, const ReadOptions *options = NULL); @@ -163,7 +163,6 @@ protected: bool storeMetaDataInVideoBuffers); virtual void startCameraRecording(); - virtual void stopCameraRecording(); virtual void releaseRecordingFrame(const sp<IMemory>& frame); // Returns true if need to skip the current frame. @@ -220,7 +219,9 @@ private: status_t checkFrameRate(const CameraParameters& params, int32_t frameRate); + void stopCameraRecording(); void releaseCamera(); + status_t reset(); CameraSource(const CameraSource &); CameraSource &operator=(const CameraSource &); diff --git a/include/media/stagefright/CameraSourceTimeLapse.h b/include/media/stagefright/CameraSourceTimeLapse.h index b060691..0936da2 100644 --- a/include/media/stagefright/CameraSourceTimeLapse.h +++ b/include/media/stagefright/CameraSourceTimeLapse.h @@ -121,9 +121,6 @@ private: // Wrapper over CameraSource::read() to implement quick stop. virtual status_t read(MediaBuffer **buffer, const ReadOptions *options = NULL); - // For video camera case, just stops the camera's video recording. - virtual void stopCameraRecording(); - // mSkipCurrentFrame is set to true in dataCallbackTimestamp() if the current // frame needs to be skipped and this function just returns the value of mSkipCurrentFrame. virtual bool skipCurrentFrame(int64_t timestampUs); diff --git a/include/media/stagefright/DataSource.h b/include/media/stagefright/DataSource.h index 713af92..00d583e 100644 --- a/include/media/stagefright/DataSource.h +++ b/include/media/stagefright/DataSource.h @@ -81,7 +81,7 @@ public: static void RegisterDefaultSniffers(); // for DRM - virtual sp<DecryptHandle> DrmInitialization() { + virtual sp<DecryptHandle> DrmInitialization(const char *mime = NULL) { return NULL; } virtual void getDrmInfo(sp<DecryptHandle> &handle, DrmManagerClient **client) {}; diff --git a/include/media/stagefright/FileSource.h b/include/media/stagefright/FileSource.h index 6cf86dc..d994cb3 100644 --- a/include/media/stagefright/FileSource.h +++ b/include/media/stagefright/FileSource.h @@ -38,7 +38,7 @@ public: virtual status_t getSize(off64_t *size); - virtual sp<DecryptHandle> DrmInitialization(); + virtual sp<DecryptHandle> DrmInitialization(const char *mime); virtual void getDrmInfo(sp<DecryptHandle> &handle, DrmManagerClient **client); diff --git a/include/media/stagefright/MPEG2TSWriter.h b/include/media/stagefright/MPEG2TSWriter.h index e4c1c49..a7c9ecf 100644 --- a/include/media/stagefright/MPEG2TSWriter.h +++ b/include/media/stagefright/MPEG2TSWriter.h @@ -37,7 +37,7 @@ struct MPEG2TSWriter : public MediaWriter { virtual status_t addSource(const sp<MediaSource> &source); virtual status_t start(MetaData *param = NULL); - virtual status_t stop(); + virtual status_t stop() { return reset(); } virtual status_t pause(); virtual bool reachedEOS(); virtual status_t dump(int fd, const Vector<String16>& args); @@ -78,6 +78,7 @@ private: void writeAccessUnit(int32_t sourceIndex, const sp<ABuffer> &buffer); ssize_t internalWrite(const void *data, size_t size); + status_t reset(); DISALLOW_EVIL_CONSTRUCTORS(MPEG2TSWriter); }; diff --git a/include/media/stagefright/MPEG4Writer.h b/include/media/stagefright/MPEG4Writer.h index 77166ed..0409b30 100644 --- a/include/media/stagefright/MPEG4Writer.h +++ b/include/media/stagefright/MPEG4Writer.h @@ -37,7 +37,7 @@ public: virtual status_t addSource(const sp<MediaSource> &source); virtual status_t start(MetaData *param = NULL); - virtual status_t stop(); + virtual status_t stop() { return reset(); } virtual status_t pause(); virtual bool reachedEOS(); virtual status_t dump(int fd, const Vector<String16>& args); @@ -184,6 +184,7 @@ private: void writeLongitude(int degreex10000); void sendSessionSummary(); void release(); + status_t reset(); MPEG4Writer(const MPEG4Writer &); MPEG4Writer &operator=(const MPEG4Writer &); diff --git a/include/media/stagefright/MediaExtractor.h b/include/media/stagefright/MediaExtractor.h index eb45237..94090ee 100644 --- a/include/media/stagefright/MediaExtractor.h +++ b/include/media/stagefright/MediaExtractor.h @@ -56,10 +56,10 @@ public: virtual uint32_t flags() const; // for DRM - virtual void setDrmFlag(bool flag) { + void setDrmFlag(bool flag) { mIsDrm = flag; }; - virtual bool getDrmFlag() { + bool getDrmFlag() { return mIsDrm; } virtual char* getDrmTrackInfo(size_t trackID, int *len) { diff --git a/include/media/stagefright/OMXCodec.h b/include/media/stagefright/OMXCodec.h index 84f8282..4c30e04 100644 --- a/include/media/stagefright/OMXCodec.h +++ b/include/media/stagefright/OMXCodec.h @@ -172,6 +172,7 @@ private: uint32_t mFlags; bool mIsEncoder; + bool mIsVideo; char *mMIME; char *mComponentName; sp<MetaData> mOutputFormat; diff --git a/include/media/thread_init.h b/include/media/thread_init.h deleted file mode 100644 index 2feac86..0000000 --- a/include/media/thread_init.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2008 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 THREAD_INIT_H -#define THREAD_INIT_H - -bool InitializeForThread(); -void UninitializeForThread(); - -#endif /* THREAD_INIT_H*/ - |