diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/camera/CameraParameters.h | 19 | ||||
| -rw-r--r-- | include/media/IMediaPlayer.h | 6 | ||||
| -rw-r--r-- | include/media/IMediaPlayerService.h | 12 | ||||
| -rw-r--r-- | include/media/mediaplayer.h | 4 | ||||
| -rw-r--r-- | include/media/stagefright/SurfaceMediaSource.h | 2 |
5 files changed, 31 insertions, 12 deletions
diff --git a/include/camera/CameraParameters.h b/include/camera/CameraParameters.h index 6c91dfc..4a4bcfb 100644 --- a/include/camera/CameraParameters.h +++ b/include/camera/CameraParameters.h @@ -495,6 +495,25 @@ public: // Example value: "true" or "false". Read/write. static const char KEY_RECORDING_HINT[]; + // Returns true if video snapshot is supported. That is, applications + // can call Camera.takePicture during recording. Applications do not need to + // call Camera.startPreview after taking a picture. The preview will be + // still active. Other than that, taking a picture during recording is + // identical to taking a picture normally. All settings and methods related + // to takePicture work identically. Ex: KEY_PICTURE_SIZE, + // KEY_SUPPORTED_PICTURE_SIZES, KEY_JPEG_QUALITY, KEY_ROTATION, and etc. + // The picture will have an EXIF header. FLASH_MODE_AUTO and FLASH_MODE_ON + // also still work, but the video will record the flash. + // + // Applications can set shutter callback as null to avoid the shutter + // sound. It is also recommended to set raw picture and post view callbacks + // to null to avoid the interrupt of preview display. + // + // Field-of-view of the recorded video may be different from that of the + // captured pictures. + // Example value: "true" or "false". Read only. + static const char KEY_VIDEO_SNAPSHOT_SUPPORTED[]; + // Value for KEY_ZOOM_SUPPORTED or KEY_SMOOTH_ZOOM_SUPPORTED. static const char TRUE[]; static const char FALSE[]; diff --git a/include/media/IMediaPlayer.h b/include/media/IMediaPlayer.h index d552b2e..0e2cdf7 100644 --- a/include/media/IMediaPlayer.h +++ b/include/media/IMediaPlayer.h @@ -20,11 +20,13 @@ #include <utils/RefBase.h> #include <binder/IInterface.h> #include <binder/Parcel.h> +#include <utils/KeyedVector.h> namespace android { class Parcel; class Surface; +class IStreamSource; class ISurfaceTexture; class IMediaPlayer: public IInterface @@ -34,6 +36,10 @@ public: virtual void disconnect() = 0; + virtual status_t setDataSource(const char *url, + const KeyedVector<String8, String8>* headers) = 0; + virtual status_t setDataSource(int fd, int64_t offset, int64_t length) = 0; + virtual status_t setDataSource(const sp<IStreamSource>& source) = 0; virtual status_t setVideoSurface(const sp<Surface>& surface) = 0; virtual status_t setVideoSurfaceTexture( const sp<ISurfaceTexture>& surfaceTexture) = 0; diff --git a/include/media/IMediaPlayerService.h b/include/media/IMediaPlayerService.h index 7956788..93bbe13 100644 --- a/include/media/IMediaPlayerService.h +++ b/include/media/IMediaPlayerService.h @@ -39,17 +39,9 @@ class IMediaPlayerService: public IInterface public: DECLARE_META_INTERFACE(MediaPlayerService); - virtual sp<IMediaRecorder> createMediaRecorder(pid_t pid) = 0; + virtual sp<IMediaRecorder> createMediaRecorder(pid_t pid) = 0; virtual sp<IMediaMetadataRetriever> createMetadataRetriever(pid_t pid) = 0; - virtual sp<IMediaPlayer> create(pid_t pid, const sp<IMediaPlayerClient>& client, - const char* url, const KeyedVector<String8, String8> *headers = NULL, - int audioSessionId = 0) = 0; - virtual sp<IMediaPlayer> create(pid_t pid, const sp<IMediaPlayerClient>& client, - int fd, int64_t offset, int64_t length, int audioSessionId) = 0; - - virtual sp<IMediaPlayer> create( - pid_t pid, const sp<IMediaPlayerClient> &client, - const sp<IStreamSource> &source, int audioSessionId) = 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; diff --git a/include/media/mediaplayer.h b/include/media/mediaplayer.h index 1a67671..e98d55c 100644 --- a/include/media/mediaplayer.h +++ b/include/media/mediaplayer.h @@ -21,6 +21,7 @@ #include <media/IMediaPlayerClient.h> #include <media/IMediaPlayer.h> #include <media/IMediaDeathNotifier.h> +#include <media/IStreamSource.h> #include <utils/KeyedVector.h> #include <utils/String8.h> @@ -168,6 +169,7 @@ public: const KeyedVector<String8, String8> *headers); status_t setDataSource(int fd, int64_t offset, int64_t length); + status_t setDataSource(const sp<IStreamSource> &source); status_t setVideoSurface(const sp<Surface>& surface); status_t setVideoSurfaceTexture( const sp<ISurfaceTexture>& surfaceTexture); @@ -206,7 +208,7 @@ private: status_t seekTo_l(int msec); status_t prepareAsync_l(); status_t getDuration_l(int *msec); - status_t setDataSource(const sp<IMediaPlayer>& player); + status_t attachNewPlayer(const sp<IMediaPlayer>& player); void disconnectNativeWindow(); status_t reset_l(); diff --git a/include/media/stagefright/SurfaceMediaSource.h b/include/media/stagefright/SurfaceMediaSource.h index f7f0ed7..d0940bb 100644 --- a/include/media/stagefright/SurfaceMediaSource.h +++ b/include/media/stagefright/SurfaceMediaSource.h @@ -34,7 +34,7 @@ class GraphicBuffer; class SurfaceMediaSource : public BnSurfaceTexture, public MediaSource, public MediaBufferObserver { public: - enum { MIN_UNDEQUEUED_BUFFERS = 3 }; + enum { MIN_UNDEQUEUED_BUFFERS = 4 }; enum { MIN_ASYNC_BUFFER_SLOTS = MIN_UNDEQUEUED_BUFFERS + 1, MIN_SYNC_BUFFER_SLOTS = MIN_UNDEQUEUED_BUFFERS |
