Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[droidmedia] Limit the exported symbols to the public API. Contributes to JB#49426 #69

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Android.mk
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ LOCAL_SHARED_LIBRARIES += libmediaextractor \
[email protected]
endif

LOCAL_CPPFLAGS=-DANDROID_MAJOR=$(ANDROID_MAJOR) -DANDROID_MINOR=$(ANDROID_MINOR) -DANDROID_MICRO=$(ANDROID_MICRO) $(FORCE_HAL_PARAM) -Wno-unused-parameter
LOCAL_CPPFLAGS=-DANDROID_MAJOR=$(ANDROID_MAJOR) -DANDROID_MINOR=$(ANDROID_MINOR) -DANDROID_MICRO=$(ANDROID_MICRO) $(FORCE_HAL_PARAM) -Wno-unused-parameter -fvisibility=hidden
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := libdroidmedia

Expand Down
8 changes: 0 additions & 8 deletions droidmedia.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,14 +20,8 @@
#include <binder/ProcessState.h>
#include <binder/IPCThreadState.h>


extern "C" {

void droid_media_init()
{



android::ProcessState::self()->startThreadPool();
}

Expand All @@ -36,5 +30,3 @@ void droid_media_deinit()
android::IPCThreadState::self()->stopProcess(false);
android::IPCThreadState::self()->joinThreadPool();
}

};
51 changes: 25 additions & 26 deletions droidmedia.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ extern "C" {
#endif

#define DM_UNUSED __attribute__((unused))
#define DROID_MEDIA_EXPORT __attribute__ ((visibility ("default")))

typedef struct _DroidMediaBuffer DroidMediaBuffer;
typedef struct _DroidMediaBufferQueue DroidMediaBufferQueue;
Expand Down Expand Up @@ -80,36 +81,34 @@ typedef enum {
} DroidMediaBufferLockFlags;

/* droidmedia.cpp */
void droid_media_init();
void droid_media_deinit();
DROID_MEDIA_EXPORT void droid_media_init();
DROID_MEDIA_EXPORT void droid_media_deinit();

/* droidmediabuffer.cpp */
DroidMediaBuffer *droid_media_buffer_create(uint32_t w, uint32_t h,
uint32_t format);
void *droid_media_buffer_lock(DroidMediaBuffer *buffer, uint32_t flags);
void droid_media_buffer_unlock(DroidMediaBuffer *buffer);

void droid_media_buffer_get_info(DroidMediaBuffer *buffer, DroidMediaBufferInfo *info);
uint32_t droid_media_buffer_get_transform(DroidMediaBuffer * buffer);
uint32_t droid_media_buffer_get_scaling_mode(DroidMediaBuffer * buffer);
int64_t droid_media_buffer_get_timestamp(DroidMediaBuffer * buffer);
uint64_t droid_media_buffer_get_frame_number(DroidMediaBuffer * buffer);
DroidMediaRect droid_media_buffer_get_crop_rect(DroidMediaBuffer * buffer);
uint32_t droid_media_buffer_get_width(DroidMediaBuffer * buffer);
uint32_t droid_media_buffer_get_height(DroidMediaBuffer * buffer);
const void *droid_media_buffer_get_handle(DroidMediaBuffer *buffer);
void droid_media_buffer_release(DroidMediaBuffer *buffer,
EGLDisplay display, EGLSyncKHR fence);
void droid_media_buffer_destroy(DroidMediaBuffer *buffer);
void droid_media_buffer_set_user_data(DroidMediaBuffer *buffer, void *data);
void *droid_media_buffer_get_user_data(DroidMediaBuffer *buffer);


DROID_MEDIA_EXPORT DroidMediaBuffer *droid_media_buffer_create(uint32_t w, uint32_t h,
uint32_t format);
DROID_MEDIA_EXPORT void *droid_media_buffer_lock(DroidMediaBuffer *buffer, uint32_t flags);
DROID_MEDIA_EXPORT void droid_media_buffer_unlock(DroidMediaBuffer *buffer);

DROID_MEDIA_EXPORT void droid_media_buffer_get_info(DroidMediaBuffer *buffer, DroidMediaBufferInfo *info);
DROID_MEDIA_EXPORT uint32_t droid_media_buffer_get_transform(DroidMediaBuffer * buffer);
DROID_MEDIA_EXPORT uint32_t droid_media_buffer_get_scaling_mode(DroidMediaBuffer * buffer);
DROID_MEDIA_EXPORT int64_t droid_media_buffer_get_timestamp(DroidMediaBuffer * buffer);
DROID_MEDIA_EXPORT uint64_t droid_media_buffer_get_frame_number(DroidMediaBuffer * buffer);
DROID_MEDIA_EXPORT DroidMediaRect droid_media_buffer_get_crop_rect(DroidMediaBuffer * buffer);
DROID_MEDIA_EXPORT uint32_t droid_media_buffer_get_width(DroidMediaBuffer * buffer);
DROID_MEDIA_EXPORT uint32_t droid_media_buffer_get_height(DroidMediaBuffer * buffer);
DROID_MEDIA_EXPORT const void *droid_media_buffer_get_handle(DroidMediaBuffer *buffer);
DROID_MEDIA_EXPORT void droid_media_buffer_release(DroidMediaBuffer *buffer,
EGLDisplay display, EGLSyncKHR fence);
DROID_MEDIA_EXPORT void droid_media_buffer_destroy(DroidMediaBuffer *buffer);
DROID_MEDIA_EXPORT void droid_media_buffer_set_user_data(DroidMediaBuffer *buffer, void *data);
DROID_MEDIA_EXPORT void *droid_media_buffer_get_user_data(DroidMediaBuffer *buffer);

/* private.h */
void droid_media_buffer_queue_set_callbacks(DroidMediaBufferQueue *queue,
DroidMediaBufferQueueCallbacks *cb, void *data);
int droid_media_buffer_queue_length();
DROID_MEDIA_EXPORT void droid_media_buffer_queue_set_callbacks(DroidMediaBufferQueue *queue,
DroidMediaBufferQueueCallbacks *cb, void *data);
DROID_MEDIA_EXPORT int droid_media_buffer_queue_length();

#ifdef __cplusplus
};
Expand Down
4 changes: 0 additions & 4 deletions droidmediabuffer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -102,8 +102,6 @@ void _DroidMediaBuffer::update(const DroidMediaBufferItem& buffer)
m_crop = buffer.mCrop;
}

extern "C" {

DroidMediaBuffer *droid_media_buffer_create(uint32_t w, uint32_t h,
uint32_t format)
{
Expand Down Expand Up @@ -239,5 +237,3 @@ void droid_media_buffer_get_info(DroidMediaBuffer *buffer, DroidMediaBufferInfo
info->format = buffer->format;
info->stride = buffer->stride;
}

};
89 changes: 44 additions & 45 deletions droidmediacamera.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -36,48 +36,6 @@
#undef LOG_TAG
#define LOG_TAG "DroidMediaCamera"

namespace android {
int32_t getColorFormat(const char* colorFormat) {
if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV420P)) {
return OMX_COLOR_FormatYUV420Planar;
}

if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV422SP)) {
return OMX_COLOR_FormatYUV422SemiPlanar;
}

if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV420SP)) {
return OMX_COLOR_FormatYUV420SemiPlanar;
}

if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_YUV422I)) {
return OMX_COLOR_FormatYCbYCr;
}

if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_RGB565)) {
return OMX_COLOR_Format16bitRGB565;
}

if (!strcmp(colorFormat, "OMX_TI_COLOR_FormatYUV420PackedSemiPlanar")) {
return OMX_TI_COLOR_FormatYUV420PackedSemiPlanar;
}
#if (ANDROID_MAJOR == 4 && ANDROID_MINOR >= 2) || ANDROID_MAJOR >= 5
if (!strcmp(colorFormat, CameraParameters::PIXEL_FORMAT_ANDROID_OPAQUE)) {
return OMX_COLOR_FormatAndroidOpaque;
}
#endif
return -1;
}
}

extern "C" {

struct _DroidMediaCameraRecordingData
{
android::sp<android::IMemory> mem;
nsecs_t ts;
};

struct _DroidMediaCamera
{
_DroidMediaCamera() :
Expand All @@ -91,6 +49,47 @@ struct _DroidMediaCamera
void *m_cb_data;
};

struct _DroidMediaCameraRecordingData
{
android::sp<android::IMemory> mem;
nsecs_t ts;
};

namespace {

int32_t getColorFormat(const char* colorFormat)
{
if (!strcmp(colorFormat, android::CameraParameters::PIXEL_FORMAT_YUV420P)) {
return OMX_COLOR_FormatYUV420Planar;
}

if (!strcmp(colorFormat, android::CameraParameters::PIXEL_FORMAT_YUV422SP)) {
return OMX_COLOR_FormatYUV422SemiPlanar;
}

if (!strcmp(colorFormat, android::CameraParameters::PIXEL_FORMAT_YUV420SP)) {
return OMX_COLOR_FormatYUV420SemiPlanar;
}

if (!strcmp(colorFormat, android::CameraParameters::PIXEL_FORMAT_YUV422I)) {
return OMX_COLOR_FormatYCbYCr;
}

if (!strcmp(colorFormat, android::CameraParameters::PIXEL_FORMAT_RGB565)) {
return OMX_COLOR_Format16bitRGB565;
}

if (!strcmp(colorFormat, "OMX_TI_COLOR_FormatYUV420PackedSemiPlanar")) {
return OMX_TI_COLOR_FormatYUV420PackedSemiPlanar;
}
#if (ANDROID_MAJOR == 4 && ANDROID_MINOR >= 2) || ANDROID_MAJOR >= 5
if (!strcmp(colorFormat, android::CameraParameters::PIXEL_FORMAT_ANDROID_OPAQUE)) {
return OMX_COLOR_FormatAndroidOpaque;
}
#endif
return -1;
}

class CameraListener : public android::CameraListener {
public:
CameraListener(DroidMediaCamera *cam) :
Expand Down Expand Up @@ -263,6 +262,8 @@ class CameraListener : public android::CameraListener {
DroidMediaCamera *m_cam;
};

}

DroidMediaBufferQueue *droid_media_camera_get_buffer_queue (DroidMediaCamera *camera)
{
return camera->m_queue.get();
Expand Down Expand Up @@ -510,11 +511,9 @@ int32_t droid_media_camera_get_video_color_format (DroidMediaCamera *camera)

android::CameraParameters p(camera->m_camera->getParameters());

return android::getColorFormat(p.get(android::CameraParameters::KEY_VIDEO_FRAME_FORMAT));
return getColorFormat(p.get(android::CameraParameters::KEY_VIDEO_FRAME_FORMAT));
}

};

android::sp<android::Camera> droid_media_camera_get_camera (DroidMediaCamera *camera) {
return camera->m_camera;
}
60 changes: 30 additions & 30 deletions droidmediacamera.h
Original file line number Diff line number Diff line change
Expand Up @@ -75,48 +75,48 @@ typedef struct {
void (* video_frame_cb) (void *data, DroidMediaCameraRecordingData *video_data);
} DroidMediaCameraCallbacks;

DroidMediaBufferQueue *droid_media_camera_get_buffer_queue (DroidMediaCamera *camera);
int droid_media_camera_get_number_of_cameras();
bool droid_media_camera_get_info(DroidMediaCameraInfo *info, int camera_number);
DROID_MEDIA_EXPORT DroidMediaBufferQueue *droid_media_camera_get_buffer_queue (DroidMediaCamera *camera);
DROID_MEDIA_EXPORT int droid_media_camera_get_number_of_cameras();
DROID_MEDIA_EXPORT bool droid_media_camera_get_info(DroidMediaCameraInfo *info, int camera_number);

DroidMediaCamera *droid_media_camera_connect(int camera_number);
bool droid_media_camera_reconnect(DroidMediaCamera *camera);
void droid_media_camera_disconnect(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT DroidMediaCamera *droid_media_camera_connect(int camera_number);
DROID_MEDIA_EXPORT bool droid_media_camera_reconnect(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT void droid_media_camera_disconnect(DroidMediaCamera *camera);

bool droid_media_camera_lock(DroidMediaCamera *camera);
bool droid_media_camera_unlock(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT bool droid_media_camera_lock(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT bool droid_media_camera_unlock(DroidMediaCamera *camera);

bool droid_media_camera_start_preview(DroidMediaCamera *camera);
void droid_media_camera_stop_preview(DroidMediaCamera *camera);
bool droid_media_camera_is_preview_enabled(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT bool droid_media_camera_start_preview(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT void droid_media_camera_stop_preview(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT bool droid_media_camera_is_preview_enabled(DroidMediaCamera *camera);

bool droid_media_camera_start_recording(DroidMediaCamera *camera);
void droid_media_camera_stop_recording(DroidMediaCamera *camera);
bool droid_media_camera_is_recording_enabled(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT bool droid_media_camera_start_recording(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT void droid_media_camera_stop_recording(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT bool droid_media_camera_is_recording_enabled(DroidMediaCamera *camera);

bool droid_media_camera_start_auto_focus(DroidMediaCamera *camera);
bool droid_media_camera_cancel_auto_focus(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT bool droid_media_camera_start_auto_focus(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT bool droid_media_camera_cancel_auto_focus(DroidMediaCamera *camera);

void droid_media_camera_set_callbacks(DroidMediaCamera *camera, DroidMediaCameraCallbacks *cb, void *data);
bool droid_media_camera_send_command(DroidMediaCamera *camera, int32_t cmd, int32_t arg1, int32_t arg2);
bool droid_media_camera_store_meta_data_in_buffers(DroidMediaCamera *camera, bool enabled);
void droid_media_camera_set_preview_callback_flags(DroidMediaCamera *camera, int preview_callback_flag);
DROID_MEDIA_EXPORT void droid_media_camera_set_callbacks(DroidMediaCamera *camera, DroidMediaCameraCallbacks *cb, void *data);
DROID_MEDIA_EXPORT bool droid_media_camera_send_command(DroidMediaCamera *camera, int32_t cmd, int32_t arg1, int32_t arg2);
DROID_MEDIA_EXPORT bool droid_media_camera_store_meta_data_in_buffers(DroidMediaCamera *camera, bool enabled);
DROID_MEDIA_EXPORT void droid_media_camera_set_preview_callback_flags(DroidMediaCamera *camera, int preview_callback_flag);

bool droid_media_camera_set_parameters(DroidMediaCamera *camera, const char *params);
char *droid_media_camera_get_parameters(DroidMediaCamera *camera);
DROID_MEDIA_EXPORT bool droid_media_camera_set_parameters(DroidMediaCamera *camera, const char *params);
DROID_MEDIA_EXPORT char *droid_media_camera_get_parameters(DroidMediaCamera *camera);

bool droid_media_camera_take_picture(DroidMediaCamera *camera, int msgType);
DROID_MEDIA_EXPORT bool droid_media_camera_take_picture(DroidMediaCamera *camera, int msgType);

void droid_media_camera_release_recording_frame(DroidMediaCamera *camera, DroidMediaCameraRecordingData *data);
DROID_MEDIA_EXPORT void droid_media_camera_release_recording_frame(DroidMediaCamera *camera, DroidMediaCameraRecordingData *data);

nsecs_t droid_media_camera_recording_frame_get_timestamp(DroidMediaCameraRecordingData *data);
size_t droid_media_camera_recording_frame_get_size(DroidMediaCameraRecordingData *data);
void *droid_media_camera_recording_frame_get_data(DroidMediaCameraRecordingData *data);
DROID_MEDIA_EXPORT nsecs_t droid_media_camera_recording_frame_get_timestamp(DroidMediaCameraRecordingData *data);
DROID_MEDIA_EXPORT size_t droid_media_camera_recording_frame_get_size(DroidMediaCameraRecordingData *data);
DROID_MEDIA_EXPORT void *droid_media_camera_recording_frame_get_data(DroidMediaCameraRecordingData *data);

bool droid_media_camera_enable_face_detection(DroidMediaCamera *camera,
DroidMediaCameraFaceDetectionType type, bool enable);
DROID_MEDIA_EXPORT bool droid_media_camera_enable_face_detection(DroidMediaCamera *camera,
DroidMediaCameraFaceDetectionType type, bool enable);

int32_t droid_media_camera_get_video_color_format (DroidMediaCamera *camera);
DROID_MEDIA_EXPORT int32_t droid_media_camera_get_video_color_format (DroidMediaCamera *camera);

#ifdef __cplusplus
};
Expand Down
12 changes: 8 additions & 4 deletions droidmediacodec.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,8 @@
md->setInt32(android::k, meta->v); \
}

namespace {

struct DroidMediaCodecMetaDataKey {
const char *mime;
int key;
Expand Down Expand Up @@ -282,6 +284,8 @@ class InputBuffer : public android::MediaBuffer {
DroidMediaCallback m_unref;
};

}

struct _DroidMediaCodec : public android::MediaBufferObserver
{
_DroidMediaCodec() :
Expand Down Expand Up @@ -356,6 +360,8 @@ struct _DroidMediaCodec : public android::MediaBufferObserver
void *m_data_cb_data;
};

namespace {

class DroidMediaCodecLoop : public android::Thread {
public:
DroidMediaCodecLoop(DroidMediaCodec *codec) :
Expand Down Expand Up @@ -633,6 +639,8 @@ class DroidMediaCodecBuilder {
DroidMediaCodecDecoderMetaData *m_dec;
};

}

android::sp<android::MediaSource> droid_media_codec_create_encoder_raw(DroidMediaCodecEncoderMetaData *meta,
#if ANDROID_MAJOR >=5
android::sp<android::ALooper> looper,
Expand All @@ -647,8 +655,6 @@ android::sp<android::MediaSource> droid_media_codec_create_encoder_raw(DroidMedi
#endif
}

extern "C" {

DroidMediaBufferQueue *droid_media_codec_get_buffer_queue (DroidMediaCodec *codec)
{
return codec->m_queue.get();
Expand Down Expand Up @@ -1046,5 +1052,3 @@ void droid_media_codec_get_output_info(DroidMediaCodec *codec,
crop->bottom += 1;
}
}

};
Loading