Oğuzhan Ekşi

Oğuzhan Ekşi

@oguzhaneksi

Repositories

Recent Updates

Stream Probefeature

Fault Deck QA Harness for Deliberate Streaming Failure Testing

Stream Probe now ships a fault-deck QA harness for Android. A new FaultMode enum lets you deliberately misconfigure ExoPlayer to trigger specific streaming failure states, with EventLogger support, mitmproxy capture scripts, and a full case study to guide diagnosis practice.

Stream Probefeature

Segment Track-Type Badges and iOS XCFramework Build Automation

Stream Probe now classifies each HLS segment as Video, Audio, or Text using a new SegmentTrackType enum wired through the shared KMP layer. The overlay on both Android and iOS shows a color-coded badge and file extension per segment row. iOS local dev is faster too, with the Kotlin XCFramework rebuilding automatically before each run.

Stream Probefeature

Segment Track-Type Badges and File Extensions in the Overlay

Stream Probe introduces segment track-type classification and file extension display in the overlay timeline. Each segment is now labeled Video, Audio, or Text with its file extension, so interleaved chunks in HLS streams are immediately identifiable without guesswork.

Stream Probefeature

Color-coded segment type badges and file extensions in the debug overlay

The Stream Probe debug overlay now shows color-coded badges for Video, Audio, and Text segments alongside the file extension from each segment URI. A new `SegmentTrackType` field is attached to every `SegmentMetric`, populated automatically on both Android and iOS. Also includes a fix for iOS segment URI accuracy and a formatter refactor.

Stream Probefeature

iOS Per-Segment Network Metrics: TTFB, CDN Info, and Cache Status

iOS 18's AVMetrics API finally exposes per-segment network data. This update wires it into Stream Probe via a new Swift adapter and Kotlin mapper, so the Segments tab now shows TTFB, CDN info, and cache status on iOS just like Android.

Stream Probefeature

Per-Segment Network Timing and CDN Metrics on iOS 18

iOS 18's AVMetrics API is now wired into Stream Probe's diagnostics pipeline. Per-segment network timing and CDN info are extracted in Swift, mapped to the shared SegmentMetric model in Kotlin, and delivered through the same diagnostics sink used on Android. The iOS and Android SDKs now capture identical segment-level data.

Stream Probefeature

HLS Live Stream Support with DVR Controls (iOS)

The Stream Probe iOS player now supports live HLS streams with full DVR controls. A LIVE badge tracks playback state, and users can pause, rewind, and scrub within the live window. No API changes needed for existing VOD integrations.

Stream Probefeature

iOS 18 AVMetrics: Per-Segment Playback Tracking

Stream Probe now tracks per-segment video playback metrics on iOS 18 using Apple's AVMetrics API. A new Swift adapter captures raw AVMetrics objects and a Kotlin mapper converts them into the shared SegmentMetric model. AVPlayerProbe ingests everything automatically on iOS 18+.

Stream Probefeature

Kotlin Multiplatform Migration: iOS Support via Swift Package Manager

Stream Probe's SDK is now Kotlin Multiplatform. iOS developers can integrate streaming diagnostics through Swift Package Manager using native XCFrameworks. Android integration is completely unchanged.

Stream Probefeature

iOS Demo App Rebuilt in SwiftUI with Custom Player Engine and UI Tests

The Stream Probe iOS demo app is now fully SwiftUI. UIKit is gone. The update brings a protocol-driven player engine backed by AVFoundation, a persisted settings store, a built-in HLS stream catalog, and XCUITest flows that cover the core user paths.

Stream Probefeature

Phase 4: Native Swift/UIKit Overlay, SKIE Interop, and iOS Demo App

Phase 4 of the Stream Probe iOS SDK ships a native UIKit overlay window and panel renderer, wired up through SKIE for clean Kotlin-to-Swift interoperability. A new public presenter API gives Swift apps straightforward show/hide control over the overlay. An iOS demo app in the repo shows the full setup in a working Xcode project.

Stream Probefeature

iOS SDK Phase 4: Native UIKit Overlay, SKIE Integration, and Demo App

Phase 4 of the Stream Probe iOS SDK ships SKIE integration for clean Swift interoperability, a native UIKit overlay window and panel renderer, and public show/hide presenter APIs. A complete iOS demo app is included, along with a fix for AutoLayout constraint conflicts that caused jerky panel collapse animations.

Stream Probefeature

iOS Support via Kotlin Multiplatform: Shared OverlayPresenter and AVPlayerProbe

Stream Probe now builds for iOS alongside Android using Kotlin Multiplatform. The overlay and session logic lives in a shared OverlayPresenter, and a new headless AVPlayerProbe built on AVFoundation handles iOS playback tracking. This lays the groundwork for unified cross-platform video debugging.

Stream Probefeature

Stream Probe 0.5.0: Per-Segment TTFB Tracking

Stream Probe 0.5.0 adds TTFB (Time To First Byte) tracking for HLS and DASH segments. A new TimingDataSourceFactory wrapper records open() duration per segment and surfaces the results in the debug overlay. Enable it with a single StreamProbe.wrapDataSourceFactory() call.

Stream Probefeature

Stream Probe 0.5.0: TTFB Measurement in the Segments Overlay

Stream Probe 0.5.0 adds TTFB tracking for media segments by wrapping the host DataSource.Factory with a new TimingDataSourceFactory. A thread-safe NetworkTimingRegistry handles cross-thread metric delivery, and the Segments overlay now shows first-byte latency alongside size and throughput.

Stream Probefeature

Stream Probe 0.5.0: TTFB and Network Timing Metrics

Stream Probe 0.5.0 adds TTFB tracking to the Segments overlay. A new TimingDataSourceFactory measures how long each segment's open() call takes, and a thread-safe NetworkTimingRegistry pipes that data through to PlayerInterceptor so you can see network timing right next to your segment data.