MCPcopy Create free account
hub / github.com/NativeScript/SimDeck / create_native_encoder

Method create_native_encoder

packages/server/src/transport/webrtc.rs:1467–1491  ·  view source on GitHub ↗
(self: &Arc<Self>)

Source from the content-addressed store, hash-verified

1465
1466impl AndroidWebRtcSourceInner {
1467 fn create_native_encoder(self: &Arc<Self>) -> Result<(), AppError> {
1468 let weak = Arc::downgrade(self);
1469 let user_data = Weak::into_raw(weak) as *mut c_void;
1470 let mut error = ptr::null_mut();
1471 let handle = unsafe {
1472 ffi::xcw_native_h264_encoder_create(
1473 Some(android_h264_encoder_frame_callback),
1474 user_data,
1475 &mut error,
1476 )
1477 };
1478 if handle.is_null() {
1479 unsafe {
1480 let _ = Weak::from_raw(user_data as *const AndroidWebRtcSourceInner);
1481 }
1482 return Err(unsafe {
1483 take_native_error(error, "Unable to create Android native H.264 encoder.")
1484 });
1485 }
1486 self.callback_user_data
1487 .store(user_data as usize, Ordering::Release);
1488 self.encoder_handle
1489 .store(handle as usize, Ordering::Release);
1490 Ok(())
1491 }
1492
1493 fn h264_quality(&self) -> android::AndroidH264StreamQuality {
1494 *self.quality.lock().unwrap()

Callers 1

startMethod · 0.80

Calls 2

take_native_errorFunction · 0.85

Tested by

no test coverage detected