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

Method handle_encoded_frame

packages/server/src/transport/webrtc.rs:1547–1572  ·  view source on GitHub ↗
(&self, frame: &ffi::xcw_native_frame)

Source from the content-addressed store, hash-verified

1545 }
1546
1547 fn handle_encoded_frame(&self, frame: &ffi::xcw_native_frame) {
1548 let Some(data) = (unsafe { copy_native_shared_bytes(frame.data) }) else {
1549 return;
1550 };
1551 let description = unsafe { copy_native_shared_bytes(frame.description) };
1552 let codec = unsafe { native_c_string(frame.codec) };
1553 let frame_sequence = self.frame_sequence.fetch_add(1, Ordering::Relaxed) + 1;
1554 let packet = Arc::new(FramePacket {
1555 frame_sequence,
1556 timestamp_us: frame.timestamp_us,
1557 is_keyframe: frame.is_keyframe,
1558 width: frame.width,
1559 height: frame.height,
1560 codec,
1561 description,
1562 data,
1563 });
1564 self.metrics.frames_encoded.fetch_add(1, Ordering::Relaxed);
1565 if packet.is_keyframe {
1566 self.metrics
1567 .keyframes_encoded
1568 .fetch_add(1, Ordering::Relaxed);
1569 *self.latest_keyframe.write().unwrap() = Some(packet.clone());
1570 }
1571 let _ = self.sender.send(packet);
1572 }
1573}
1574
1575unsafe extern "C" fn android_h264_encoder_frame_callback(

Callers 1

Calls 4

copy_native_shared_bytesFunction · 0.85
native_c_stringFunction · 0.85
cloneMethod · 0.65
sendMethod · 0.65

Tested by

no test coverage detected