diff --git a/dev/demux.html b/dev/demux.html
index f26f80a..b493880 100644
--- a/dev/demux.html
+++ b/dev/demux.html
@@ -15,14 +15,21 @@
formats: Mediabunny.ALL_FORMATS,
source
});
+
+ const canvas = document.createElement('canvas');
+ canvas.width = 1920;
+ canvas.height = 1080;
+ canvas.style.background = 'ghostwhite';
+ const ctx = canvas.getContext('2d');
+ document.body.append(canvas);
const videoTrack = await input.getPrimaryVideoTrack();
+ const sink = new Mediabunny.VideoSampleSink(videoTrack);
- const sink = new Mediabunny.EncodedPacketSink(videoTrack);
- for await (const packet of sink.packets()) {
- if (packet.timestamp >= 2) break;
- console.log(packet);
- }
+ const sample = await sink.getSample(3);
+ console.log(sample);
+
+ sample.draw(ctx, 1500, 500, 50, 50, 0, 0);
/*
let timestamps = [];
diff --git a/docs/guide/packets-and-samples.md b/docs/guide/packets-and-samples.md
index 2371bb4..63c5f80 100644
--- a/docs/guide/packets-and-samples.md
+++ b/docs/guide/packets-and-samples.md
@@ -309,17 +309,29 @@ The `VideoFrame` returned by this method **must** be closed separately from the
---
-It's also common to draw video samples to a `