diff options
Diffstat (limited to 'libvideoeditor/lvpp/VideoEditorPlayer.h')
-rwxr-xr-x | libvideoeditor/lvpp/VideoEditorPlayer.h | 157 |
1 files changed, 157 insertions, 0 deletions
diff --git a/libvideoeditor/lvpp/VideoEditorPlayer.h b/libvideoeditor/lvpp/VideoEditorPlayer.h new file mode 100755 index 0000000..47d174d --- /dev/null +++ b/libvideoeditor/lvpp/VideoEditorPlayer.h @@ -0,0 +1,157 @@ +/*
+ * Copyright (C) 2011 NXP Software
+ * Copyright (C) 2011 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 ANDROID_VIDEOEDITOR_PLAYER_H
+#define ANDROID_VIDEOEDITOR_PLAYER_H
+
+#include <media/MediaPlayerInterface.h>
+#include "AudioTrack.h"
+#include "M4xVSS_API.h"
+#include "VideoEditorMain.h"
+#include "VideoEditorTools.h"
+
+
+namespace android {
+
+struct PreviewPlayer;
+
+class VideoEditorPlayer : public MediaPlayerInterface {
+
+ class VeAudioOutput: public MediaPlayerBase::AudioSink
+ {
+ public:
+ VeAudioOutput();
+ virtual ~VeAudioOutput();
+
+ virtual bool ready() const { return mTrack != NULL; }
+ virtual bool realtime() const { return true; }
+ virtual ssize_t bufferSize() const;
+ virtual ssize_t frameCount() const;
+ virtual ssize_t channelCount() const;
+ virtual ssize_t frameSize() const;
+ virtual uint32_t latency() const;
+ virtual float msecsPerFrame() const;
+ virtual status_t getPosition(uint32_t *position);
+ virtual int getSessionId();
+
+ virtual status_t open(
+ uint32_t sampleRate, int channelCount,
+ int format, int bufferCount,
+ AudioCallback cb, void *cookie);
+
+ virtual void start();
+ virtual ssize_t write(const void* buffer, size_t size);
+ virtual void stop();
+ virtual void flush();
+ virtual void pause();
+ virtual void close();
+ void setAudioStreamType(int streamType) { mStreamType = streamType; }
+ void setVolume(float left, float right);
+ virtual status_t dump(int fd,const Vector<String16>& args) const;
+
+ static bool isOnEmulator();
+ static int getMinBufferCount();
+ private:
+ static void setMinBufferCount();
+ static void CallbackWrapper(
+ int event, void *me, void *info);
+
+ AudioTrack* mTrack;
+ AudioCallback mCallback;
+ void * mCallbackCookie;
+ int mStreamType;
+ float mLeftVolume;
+ float mRightVolume;
+ float mMsecsPerFrame;
+ uint32_t mLatency;
+ int mSessionId;
+ static bool mIsOnEmulator;
+ static int mMinBufferCount; // 12 for emulator; otherwise 4
+
+ public:
+ uint32_t mNumFramesWritten;
+ void snoopWrite(const void*, size_t);
+ };
+
+public:
+ VideoEditorPlayer();
+ virtual ~VideoEditorPlayer();
+
+ virtual status_t initCheck();
+
+ virtual status_t setDataSource(
+ const char *url, const KeyedVector<String8, String8> *headers);
+
+ virtual status_t setDataSource(int fd, int64_t offset, int64_t length);
+ virtual status_t setVideoISurface(const sp<ISurface> &surface);
+ virtual status_t setVideoSurface(const sp<Surface> &surface);
+ virtual status_t prepare();
+ virtual status_t prepareAsync();
+ virtual status_t start();
+ virtual status_t stop();
+ virtual status_t pause();
+ virtual bool isPlaying();
+ virtual status_t seekTo(int msec);
+ virtual status_t getCurrentPosition(int *msec);
+ virtual status_t getDuration(int *msec);
+ virtual status_t reset();
+ virtual status_t setLooping(int loop);
+ virtual player_type playerType();
+ virtual status_t invoke(const Parcel &request, Parcel *reply);
+ virtual void setAudioSink(const sp<AudioSink> &audioSink);
+ virtual status_t suspend();
+ virtual status_t resume();
+
+ virtual status_t getMetadata(
+ const media::Metadata::Filter& ids, Parcel *records);
+
+ virtual status_t loadEffectsSettings(
+ M4VSS3GPP_EffectSettings* pEffectSettings, int nEffects);
+
+ virtual status_t loadAudioMixSettings(
+ M4xVSS_AudioMixingSettings* pAudioMixSettings);
+
+ virtual status_t setAudioMixPCMFileHandle(
+ M4OSA_Context pAudioMixPCMFileHandle);
+
+ virtual status_t setAudioMixStoryBoardParam(
+ M4OSA_UInt32 x, M4OSA_UInt32 y, M4OSA_UInt32 z);
+
+ virtual status_t setPlaybackBeginTime(uint32_t msec);
+ virtual status_t setPlaybackEndTime(uint32_t msec);
+ virtual status_t setStoryboardStartTime(uint32_t msec);
+ virtual status_t setProgressCallbackInterval(uint32_t cbInterval);
+
+ virtual status_t setMediaRenderingMode(M4xVSS_MediaRendering mode,
+ M4VIDEOEDITING_VideoFrameSize outputVideoSize);
+
+ virtual status_t resetJniCallbackTimeStamp();
+ virtual status_t setImageClipProperties(uint32_t width, uint32_t height);
+ virtual status_t readFirstVideoFrame();
+
+
+private:
+ PreviewPlayer *mPlayer;
+ sp<VeAudioOutput> mVeAudioSink;
+
+ VideoEditorPlayer(const VideoEditorPlayer &);
+ VideoEditorPlayer &operator=(const VideoEditorPlayer &);
+};
+
+} // namespace android
+
+#endif // ANDROID_VIDEOEDITOR_PLAYER_H
|