Loading include/media/IMediaPlayer.h +3 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ namespace android { class Parcel; class ISurface; class Surface; class ISurfaceTexture; class IMediaPlayer: public IInterface { Loading @@ -35,6 +36,8 @@ public: virtual void disconnect() = 0; virtual status_t setVideoSurface(const sp<Surface>& surface) = 0; virtual status_t setVideoSurfaceTexture( const sp<ISurfaceTexture>& surfaceTexture) = 0; virtual status_t prepareAsync() = 0; virtual status_t start() = 0; virtual status_t stop() = 0; Loading include/media/MediaPlayerInterface.h +8 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ namespace android { class Parcel; class ISurface; class Surface; class ISurfaceTexture; template<typename T> class SortedVector; Loading Loading @@ -112,7 +113,13 @@ public: return INVALID_OPERATION; } // pass the buffered Surface to the media player service virtual status_t setVideoSurface(const sp<Surface>& surface) = 0; // pass the buffered ISurfaceTexture to the media player service virtual status_t setVideoSurfaceTexture( const sp<ISurfaceTexture>& surfaceTexture) = 0; virtual status_t prepare() = 0; virtual status_t prepareAsync() = 0; virtual status_t start() = 0; Loading Loading @@ -177,7 +184,7 @@ protected: sp<AudioSink> mAudioSink; }; // Implement this class for media players that output directo to hardware // Implement this class for media players that output audio directly to hardware class MediaPlayerHWInterface : public MediaPlayerBase { public: Loading include/media/mediaplayer.h +3 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ namespace android { class Surface; class ISurfaceTexture; enum media_event_type { MEDIA_NOP = 0, // interface test message Loading Loading @@ -146,6 +147,8 @@ public: status_t setDataSource(int fd, int64_t offset, int64_t length); status_t setVideoSurface(const sp<Surface>& surface); status_t setVideoSurfaceTexture( const sp<ISurfaceTexture>& surfaceTexture); status_t setListener(const sp<MediaPlayerListener>& listener); status_t prepare(); status_t prepareAsync(); Loading include/media/stagefright/NativeWindowWrapper.h 0 → 100644 +62 −0 Original line number Diff line number Diff line /* * 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 NATIVE_WINDOW_WRAPPER_H_ #define NATIVE_WINDOW_WRAPPER_H_ #include <surfaceflinger/Surface.h> #include <gui/SurfaceTextureClient.h> namespace android { // Both Surface and SurfaceTextureClient are RefBase that implement the // ANativeWindow interface, but at different addresses. ANativeWindow is not // a RefBase but acts like one for use with sp<>. This wrapper converts a // Surface or SurfaceTextureClient into a single reference-counted object // that holds an sp reference to the underlying Surface or SurfaceTextureClient, // It provides a method to get the ANativeWindow. struct NativeWindowWrapper : RefBase { NativeWindowWrapper( const sp<Surface> &surface) : mSurface(surface) { } NativeWindowWrapper( const sp<SurfaceTextureClient> &surfaceTextureClient) : mSurfaceTextureClient(surfaceTextureClient) { } sp<ANativeWindow> getNativeWindow() const { if (mSurface != NULL) { return mSurface; } else { return mSurfaceTextureClient; } } // If needed later we can provide a method to ask what kind of native window private: // At most one of mSurface and mSurfaceTextureClient will be non-NULL const sp<Surface> mSurface; const sp<SurfaceTextureClient> mSurfaceTextureClient; DISALLOW_EVIL_CONSTRUCTORS(NativeWindowWrapper); }; } // namespace android #endif // NATIVE_WINDOW_WRAPPER_H_ media/libmedia/Android.mk +2 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,8 @@ LOCAL_SRC_FILES:= \ LOCAL_SHARED_LIBRARIES := \ libui libcutils libutils libbinder libsonivox libicuuc libexpat \ libsurfaceflinger_client libcamera_client libstagefright_foundation libsurfaceflinger_client libcamera_client libstagefright_foundation \ libgui LOCAL_MODULE:= libmedia Loading Loading
include/media/IMediaPlayer.h +3 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ namespace android { class Parcel; class ISurface; class Surface; class ISurfaceTexture; class IMediaPlayer: public IInterface { Loading @@ -35,6 +36,8 @@ public: virtual void disconnect() = 0; virtual status_t setVideoSurface(const sp<Surface>& surface) = 0; virtual status_t setVideoSurfaceTexture( const sp<ISurfaceTexture>& surfaceTexture) = 0; virtual status_t prepareAsync() = 0; virtual status_t start() = 0; virtual status_t stop() = 0; Loading
include/media/MediaPlayerInterface.h +8 −1 Original line number Diff line number Diff line Loading @@ -34,6 +34,7 @@ namespace android { class Parcel; class ISurface; class Surface; class ISurfaceTexture; template<typename T> class SortedVector; Loading Loading @@ -112,7 +113,13 @@ public: return INVALID_OPERATION; } // pass the buffered Surface to the media player service virtual status_t setVideoSurface(const sp<Surface>& surface) = 0; // pass the buffered ISurfaceTexture to the media player service virtual status_t setVideoSurfaceTexture( const sp<ISurfaceTexture>& surfaceTexture) = 0; virtual status_t prepare() = 0; virtual status_t prepareAsync() = 0; virtual status_t start() = 0; Loading Loading @@ -177,7 +184,7 @@ protected: sp<AudioSink> mAudioSink; }; // Implement this class for media players that output directo to hardware // Implement this class for media players that output audio directly to hardware class MediaPlayerHWInterface : public MediaPlayerBase { public: Loading
include/media/mediaplayer.h +3 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ namespace android { class Surface; class ISurfaceTexture; enum media_event_type { MEDIA_NOP = 0, // interface test message Loading Loading @@ -146,6 +147,8 @@ public: status_t setDataSource(int fd, int64_t offset, int64_t length); status_t setVideoSurface(const sp<Surface>& surface); status_t setVideoSurfaceTexture( const sp<ISurfaceTexture>& surfaceTexture); status_t setListener(const sp<MediaPlayerListener>& listener); status_t prepare(); status_t prepareAsync(); Loading
include/media/stagefright/NativeWindowWrapper.h 0 → 100644 +62 −0 Original line number Diff line number Diff line /* * 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 NATIVE_WINDOW_WRAPPER_H_ #define NATIVE_WINDOW_WRAPPER_H_ #include <surfaceflinger/Surface.h> #include <gui/SurfaceTextureClient.h> namespace android { // Both Surface and SurfaceTextureClient are RefBase that implement the // ANativeWindow interface, but at different addresses. ANativeWindow is not // a RefBase but acts like one for use with sp<>. This wrapper converts a // Surface or SurfaceTextureClient into a single reference-counted object // that holds an sp reference to the underlying Surface or SurfaceTextureClient, // It provides a method to get the ANativeWindow. struct NativeWindowWrapper : RefBase { NativeWindowWrapper( const sp<Surface> &surface) : mSurface(surface) { } NativeWindowWrapper( const sp<SurfaceTextureClient> &surfaceTextureClient) : mSurfaceTextureClient(surfaceTextureClient) { } sp<ANativeWindow> getNativeWindow() const { if (mSurface != NULL) { return mSurface; } else { return mSurfaceTextureClient; } } // If needed later we can provide a method to ask what kind of native window private: // At most one of mSurface and mSurfaceTextureClient will be non-NULL const sp<Surface> mSurface; const sp<SurfaceTextureClient> mSurfaceTextureClient; DISALLOW_EVIL_CONSTRUCTORS(NativeWindowWrapper); }; } // namespace android #endif // NATIVE_WINDOW_WRAPPER_H_
media/libmedia/Android.mk +2 −1 Original line number Diff line number Diff line Loading @@ -37,7 +37,8 @@ LOCAL_SRC_FILES:= \ LOCAL_SHARED_LIBRARIES := \ libui libcutils libutils libbinder libsonivox libicuuc libexpat \ libsurfaceflinger_client libcamera_client libstagefright_foundation libsurfaceflinger_client libcamera_client libstagefright_foundation \ libgui LOCAL_MODULE:= libmedia Loading