Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
BC
public
mediastreamer2
Commits
81d090ad
Commit
81d090ad
authored
Sep 30, 2011
by
Simon Morlat
Browse files
Merge branch 'master' of
git://git.linphone.org/mediastreamer2
parents
8e0e85af
0981b952
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
3 deletions
+23
-3
include/mediastreamer2/msfilter.h
include/mediastreamer2/msfilter.h
+1
-0
java/src/org/linphone/mediastream/video/capture/AndroidVideoApi5JniWrapper.java
...mediastream/video/capture/AndroidVideoApi5JniWrapper.java
+9
-2
src/msandroidvideo.cpp
src/msandroidvideo.cpp
+13
-1
No files found.
include/mediastreamer2/msfilter.h
View file @
81d090ad
...
@@ -552,6 +552,7 @@ typedef enum _MSFilterInterfaceId MSFilterInterfaceId;
...
@@ -552,6 +552,7 @@ typedef enum _MSFilterInterfaceId MSFilterInterfaceId;
#define MS_FILTER_SET_VAD_PROB_START MS_FILTER_BASE_METHOD(23,int)
#define MS_FILTER_SET_VAD_PROB_START MS_FILTER_BASE_METHOD(23,int)
#define MS_FILTER_SET_VAD_PROB_CONTINUE MS_FILTER_BASE_METHOD(24,int)
#define MS_FILTER_SET_VAD_PROB_CONTINUE MS_FILTER_BASE_METHOD(24,int)
#define MS_FILTER_SET_MAX_GAIN MS_FILTER_BASE_METHOD(25,int)
#define MS_FILTER_SET_MAX_GAIN MS_FILTER_BASE_METHOD(25,int)
#define MS_VIDEO_CAPTURE_SET_AUTOFOCUS MS_FILTER_BASE_METHOD(26,int)
#define MS_CONF_SPEEX_PREPROCESS_MIC MS_FILTER_EVENT(MS_CONF_ID, 1, void*)
#define MS_CONF_SPEEX_PREPROCESS_MIC MS_FILTER_EVENT(MS_CONF_ID, 1, void*)
#define MS_CONF_CHANNEL_VOLUME MS_FILTER_EVENT(MS_CONF_ID, 3, void*)
#define MS_CONF_CHANNEL_VOLUME MS_FILTER_EVENT(MS_CONF_ID, 3, void*)
...
...
java/src/org/linphone/mediastream/video/capture/AndroidVideoApi5JniWrapper.java
View file @
81d090ad
...
@@ -75,6 +75,13 @@ public class AndroidVideoApi5JniWrapper {
...
@@ -75,6 +75,13 @@ public class AndroidVideoApi5JniWrapper {
return
selectNearestResolutionAvailableForCamera
(
cameraId
,
requestedW
,
requestedH
);
return
selectNearestResolutionAvailableForCamera
(
cameraId
,
requestedW
,
requestedH
);
}
}
static
public
void
activateAutoFocus
(
Object
cam
)
{
Log
.
d
(
"mediastreamer"
,
"Turning on autofocus on camera "
+
cam
);
Camera
camera
=
(
Camera
)
cam
;
if
(
camera
!=
null
&&
(
camera
.
getParameters
().
getFocusMode
()
==
Parameters
.
FOCUS_MODE_AUTO
||
camera
.
getParameters
().
getFocusMode
()
==
Parameters
.
FOCUS_MODE_MACRO
))
camera
.
autoFocus
(
null
);
// We don't need to do anything after the focus finished, so we don't need a callback
}
public
static
Object
startRecording
(
int
cameraId
,
int
width
,
int
height
,
int
fps
,
int
rotation
,
final
long
nativePtr
)
{
public
static
Object
startRecording
(
int
cameraId
,
int
width
,
int
height
,
int
fps
,
int
rotation
,
final
long
nativePtr
)
{
Log
.
d
(
"mediastreamer"
,
"startRecording("
+
cameraId
+
", "
+
width
+
", "
+
height
+
", "
+
fps
+
", "
+
rotation
+
", "
+
nativePtr
+
")"
);
Log
.
d
(
"mediastreamer"
,
"startRecording("
+
cameraId
+
", "
+
width
+
", "
+
height
+
", "
+
fps
+
", "
+
rotation
+
", "
+
nativePtr
+
")"
);
Camera
camera
=
Camera
.
open
();
Camera
camera
=
Camera
.
open
();
...
@@ -86,8 +93,8 @@ public class AndroidVideoApi5JniWrapper {
...
@@ -86,8 +93,8 @@ public class AndroidVideoApi5JniWrapper {
// forward image data to JNI
// forward image data to JNI
putImage
(
nativePtr
,
data
);
putImage
(
nativePtr
,
data
);
}
}
});
});
camera
.
startPreview
();
camera
.
startPreview
();
Log
.
d
(
"mediastreamer"
,
"Returning camera object: "
+
camera
);
Log
.
d
(
"mediastreamer"
,
"Returning camera object: "
+
camera
);
return
camera
;
return
camera
;
...
...
src/msandroidvideo.cpp
View file @
81d090ad
...
@@ -97,6 +97,16 @@ static int video_capture_set_fps(MSFilter *f, void *arg){
...
@@ -97,6 +97,16 @@ static int video_capture_set_fps(MSFilter *f, void *arg){
return
0
;
return
0
;
}
}
static
int
video_capture_set_autofocus
(
MSFilter
*
f
,
void
*
data
){
JNIEnv
*
env
=
ms_get_jni_env
();
AndroidReaderContext
*
d
=
(
AndroidReaderContext
*
)
f
->
data
;
jclass
helperClass
=
getHelperClass
(
env
);
jmethodID
method
=
env
->
GetStaticMethodID
(
helperClass
,
"activateAutoFocus"
,
"(Ljava/lang/Object;)V"
);
env
->
CallStaticObjectMethod
(
helperClass
,
method
,
d
->
androidCamera
);
return
0
;
}
static
int
video_capture_get_fps
(
MSFilter
*
f
,
void
*
arg
){
static
int
video_capture_get_fps
(
MSFilter
*
f
,
void
*
arg
){
AndroidReaderContext
*
d
=
(
AndroidReaderContext
*
)
f
->
data
;
AndroidReaderContext
*
d
=
(
AndroidReaderContext
*
)
f
->
data
;
*
((
float
*
)
arg
)
=
d
->
fps
;
*
((
float
*
)
arg
)
=
d
->
fps
;
...
@@ -334,7 +344,8 @@ static MSFilterMethod video_capture_methods[]={
...
@@ -334,7 +344,8 @@ static MSFilterMethod video_capture_methods[]={
{
MS_FILTER_GET_PIX_FMT
,
&
video_capture_get_pix_fmt
},
{
MS_FILTER_GET_PIX_FMT
,
&
video_capture_get_pix_fmt
},
{
MS_VIDEO_DISPLAY_SET_NATIVE_WINDOW_ID
,
&
video_set_native_preview_window
},
//preview is managed by capture filter
{
MS_VIDEO_DISPLAY_SET_NATIVE_WINDOW_ID
,
&
video_set_native_preview_window
},
//preview is managed by capture filter
{
MS_VIDEO_DISPLAY_GET_NATIVE_WINDOW_ID
,
&
video_get_native_preview_window
},
{
MS_VIDEO_DISPLAY_GET_NATIVE_WINDOW_ID
,
&
video_get_native_preview_window
},
{
MS_VIDEO_CAPTURE_SET_DEVICE_ORIENTATION
,
&
video_set_device_rotation
},
{
MS_VIDEO_CAPTURE_SET_DEVICE_ORIENTATION
,
&
video_set_device_rotation
},
{
MS_VIDEO_CAPTURE_SET_AUTOFOCUS
,
&
video_capture_set_autofocus
},
{
0
,
0
}
{
0
,
0
}
};
};
...
@@ -418,6 +429,7 @@ static void video_capture_detect(MSWebCamManager *obj){
...
@@ -418,6 +429,7 @@ static void video_capture_detect(MSWebCamManager *obj){
#ifdef __cplusplus
#ifdef __cplusplus
extern
"C"
{
extern
"C"
{
#endif
#endif
JNIEXPORT
void
JNICALL
Java_org_linphone_mediastream_video_capture_AndroidVideoApi5JniWrapper_setAndroidSdkVersion
JNIEXPORT
void
JNICALL
Java_org_linphone_mediastream_video_capture_AndroidVideoApi5JniWrapper_setAndroidSdkVersion
(
JNIEnv
*
env
,
jclass
c
,
jint
version
)
{
(
JNIEnv
*
env
,
jclass
c
,
jint
version
)
{
android_sdk_version
=
version
;
android_sdk_version
=
version
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment