September 3
Media agent for iOS v4.4.0
New features
- Added support for Swift Package Manager.
NRMediaTailorTracker: Added a new AWS MediaTailor server-side ad-insertion (SSAI) tracker for AVPlayer (iOS 12+ and tvOS 12+), offering feature parity withNRIMATracker.
Bug Fixes
ios-publish: Modified retry logic to survive partial pipeline failures.
August 31
Media agent for Android v4.5.0
Features
- sample-app: show a LIVE badge instead of a countdown for live streams
- sample-app: support direct manifest URL playback and mock-server testing
Bug Fixes
- exoplayer: report contentIsLive and omit contentDuration for live streams
- mediatailor: append newly-reported ads when a tracking-built avail grows (fd2b5fd), closes #2 #3
- mediatailor: centralise trailing-segment sessionId extraction
- mediatailor: classify how the tracking endpoint was resolved
- mediatailor: correct DASH cue offset and give HLS breaks a stable id
- mediatailor: derive tracking URL from implicit-session DASH playlist path
- mediatailor: derive tracking URL from implicit-session HLS playlist path
- mediatailor: describe pending implicit-session tracking URL as deferral
- mediatailor: emit AD_ERROR when tracking fetch fails silently
- mediatailor: expose creativeId-first primary key for per-ad metrics
- mediatailor: harden schedule merge against zombie breaks and pod drift
- mediatailor: keep manifest pod boundaries when tracking ad count disagrees
- mediatailor: let EXT-X-DATERANGE override an earlier trackingUrl guess
- mediatailor: make playhead poll interval configurable at construction
- mediatailor: match growing-avail ads by start time when adId is absent
- mediatailor: match manifest breaks by id, gate MISSING_AVAIL_START once
- mediatailor: paginate NextToken within one poll instead of across polls
- mediatailor: parse tracking-event beacons with ad-start-relative timing
- mediatailor: pod endTimeMs must not exceed its enclosing break
- mediatailor: prune viewed avails from the live schedule
- mediatailor: read HLS tracking URL from EXT-X-DATERANGE when advertised
- mediatailor: rename segmentPrefix to canonical adSegmentPrefix
- mediatailor: require unanimous representation agreement for DASH ad periods
- mediatailor: revert tracking requests from POST back to GET
- mediatailor: round-trip NextToken across tracking polls
- mediatailor: stabilise avail identity across live window rotations
- mediatailor: surface avails missing startTimeInSeconds as an error
- mediatailor: surface pods appended after the playhead left their window
- mediatailor: treat empty avails as no-fill instead of firing AD_START
August 4
Media agent for Android v4.4.0
New features
- Added JP region support. (e97c6ca)
Bug fixes
- Aligned
totalPauseTimewith the iOS clock model and stopped emittingtotalTimeSwitchedDown. (924c7b9) - Classified startup and playback errors by content-started state, for iOS parity. (a6b3288)
- Corrected
CONTENT_DROPPED_FRAMESevent fields and fixed the underlying ANR root cause. (a5afc73) - Deduplicated consecutive identical download-rate samples. (e9b6d1f)
- Emitted a fresh
totalPlaytimevalue inQOE_AGGREGATE. (af065d6) - Excluded only ad time from
startupTime, for iOS parity. (9321ac8) - Recorded the final QoE event into the crash-safe buffer at
CONTENT_END. (e1d3ae1) - Removed an unused classpath. (f729768)
- Removed an unused dependency. (0bdd95b)
- Removed an unused plugin. (fa11838)
- Replaced the global
harvestCycleNumbergate with a per-tracker gate. (9e19faf) - Updated a variable name. (72de035)
- Updated the allowlist for
QOE_AGGREGATEcontext attributes, for iOS parity. (dd1d3ef) - Updated the bitrate timer to use the
isPlayingtransition. (011ade3)
August 4
Media agent for iOS v4.3.0
Published to CocoaPods
NewRelicVideoAgent4.3.0NRAVPlayerTracker4.3.0NRIMATracker4.3.0
New features
Bug fixes
July 13
June 5
Media agent for iOS v4.1.4
Published to CocoaPods
NewRelicVideoAgent4.1.4NRAVPlayerTracker4.1.4NRIMATracker4.1.4
Bug fixes
- Exposed
sendSeekStart/sendSeekEndonNRVAVideo; auto-detected seek inAVPlayerTracker(34493b4) - Fixed
NRTrackerPairleakingNSNullsentinel to callers (82ef94f) - Implemented partial container sanitization, nil guard, and dead code removal (6aac79f)
- Read
totalPreRollAdTimefromCONTENT_STARTattributes (d565378) - Sanitized attribute values at
setAttributestorage boundary (7d07298)
May 21
May 21
Media agent for iOS v4.1.3
Published to CocoaPods
NewRelicVideoAgent4.1.3NRAVPlayerTracker4.1.3NRIMATracker4.1.3
May 20
Media agent for iOS v4.1.2
Published to CocoaPods
NewRelicVideoAgent4.1.2NRAVPlayerTracker4.1.2NRIMATracker4.1.2
April 22
Media agent for Android v4.1.1
New features
- Added obfuscation rules (f756c78)
- Added
qoeHarvestCycle(aa4940c) (0218d31) - Added
timeSinceRequested,timeSinceStartedto QoE event payload (1f627cf) - Added
QoeProvider(ed48dee)
Update
- Changed QoE architecture (7913826)
- Updated bitrate name (928d3af)
- Updated function name (42a842e)
- Updated name to
contentSegmentDownloadBitrateandcontentNetworkDownloadBitrate(e1a3dc9) - Updated calculation of startup time and average bitrate (371da00)
- Updated
harvestCycletoAtomicInteger(0d550d2) - Updated condition for sending QoE events (f307de9)
Bug fixes
- Added fallback for ad bitrate (3077faa)
- Added final QoE event at content end (f151a21)
- Implemented thread-safe QoE generation and real-time
totalPlaytimecalculation (e53e6f7) - Implemented thread-safe QoE generation using attribute caching (43d21cd)
- Implemented thread-safe QoE with real-time metrics and immediate final QoE (a506f66)