Changeset 1192:29ad880561b5 in mediastreamer2
- Timestamp:
- Nov 1, 2010 11:31:16 AM (3 years ago)
- Branch:
- default
- Children:
- 1193:58278fd087fd, 1194:cf51505c817f
- File:
-
- 1 edited
-
src/android-display.c (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/android-display.c
r1190 r1192 32 32 JavaVM *jvm; 33 33 JNIEnv *jenv; 34 jobject android_video_window; 34 35 jobject jbitmap; 36 jmethodID get_bitmap_id; 37 jmethodID update_id; 35 38 AndroidBitmapInfo bmpinfo; 36 39 struct ms_SwsContext *sws; … … 40 43 static void android_display_init(MSFilter *f){ 41 44 AndroidDisplay *ad=(AndroidDisplay*)ms_new0(AndroidDisplay,1); 45 JNIEnv *jenv=NULL; 46 jclass wc; 47 42 48 ad->jvm=ms_andsnd_jvm; 49 50 if ((*(ad->jvm))->AttachCurrentThread(ad->jvm,&jenv,NULL)!=0){ 51 ms_error("Could not get JNIEnv"); 52 return ; 53 } 54 wc=(*jenv)->FindClass(jenv,"org/linphone/core/AndroidVideoWindowImpl"); 55 if (wc==0){ 56 ms_fatal("Could not find org.linphone.core.AndroidVideoWindowImpl class !"); 57 } 58 ad->get_bitmap_id=(*jenv)->GetMethodID(jenv,wc,"getBitmap", "()Landroid/graphics/Bitmap;"); 59 ad->update_id=(*jenv)->GetMethodID(jenv,wc,"update","()V"); 60 43 61 MS_VIDEO_SIZE_ASSIGN(ad->vsize,CIF); 44 62 f->data=ad; … … 106 124 ms_error("AndroidBitmap_lockPixels() failed !"); 107 125 } 126 ms_message("Ask draw of bitmap"); 127 (*ad->jenv)->CallVoidMethod(ad->jenv,ad->android_video_window,ad->update_id); 108 128 } 109 129 } … … 116 136 } 117 137 118 static int android_display_set_ bitmap(MSFilter *f, void *arg){138 static int android_display_set_window(MSFilter *f, void *arg){ 119 139 AndroidDisplay *ad=(AndroidDisplay*)f->data; 120 140 unsigned long id=*(unsigned long*)arg; 121 141 int err; 122 142 JNIEnv *jenv=NULL; 143 jobject window=(jobject)id; 123 144 124 145 if ((*(ad->jvm))->AttachCurrentThread(ad->jvm,&jenv,NULL)!=0){ … … 126 147 return -1; 127 148 } 149 128 150 ms_filter_lock(f); 129 ad->jbitmap=(jobject)id; 151 ad->jbitmap=(*jenv)->CallObjectMethod(jenv,window,ad->get_bitmap_id); 152 ad->android_video_window=window; 130 153 err=AndroidBitmap_getInfo(jenv,ad->jbitmap,&ad->bmpinfo); 131 154 if (err!=0){ … … 141 164 142 165 static MSFilterMethod methods[]={ 143 { MS_VIDEO_DISPLAY_SET_NATIVE_WINDOW_ID , android_display_set_ bitmap},166 { MS_VIDEO_DISPLAY_SET_NATIVE_WINDOW_ID , android_display_set_window }, 144 167 { 0, NULL} 145 168 };
Note: See TracChangeset
for help on using the changeset viewer.
