Hosted Code Media Container Unpacking
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The existing plug-in/platform model for media playback requires platform updates to support new media container formats and is limited by proprietary protocols, restricting content provider flexibility and requiring hard-coded unpacking logic.
Innovation Solution
Decoupling media content container downloading and unpacking from media stream processing by allowing untrusted application code to perform these operations, enabling support for proprietary container formats and flexible protocols through an API-based interface.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If the platform hard codes unpacking logic for media container formats, then the platform can reliably parse and extract media streams from known container formats, but the platform cannot support new container formats without requiring platform updates
Solution Approach 1:
The patent extracts the container unpacking functionality from the platform core and places it in hosted application code. The platform no longer contains hard-coded unpacking logic for specific container formats; instead, it provides a generic interface that allows external application code to perform the unpacking. This resolves the contradiction by removing the need for platform updates while maintaining reliable media stream extraction.
Solution Approach 2:
The patent introduces an intermediary interface layer between the platform and the container unpacking process. This interface allows the platform to communicate unpacking requirements to hosted application code without the platform needing to know the specific container format details. The intermediary enables flexible support for new formats while keeping the platform architecture simple and stable.
2Adaptability or versatility
If the platform limits protocols and transport mechanisms to those it knows, then the platform maintains security and control, but content providers cannot use proprietary or alternative protocols for content delivery
Solution Approach 1:
The patent extracts protocol handling capabilities from the platform core and places them in hosted application code. The platform provides a generic interface for content delivery while allowing external code to implement support for various protocols including proprietary ones. This enables protocol flexibility without compromising platform security, as the platform maintains control over the interface while the flexibility is provided by external code.
Solution Approach 2:
The patent enables hosted application code to self-configure and implement support for different protocols and transport mechanisms. The application code can independently handle protocol-specific logic while using the platform's generic interface for media playback. This allows content providers to use their preferred protocols while the platform maintains its security model through the standardized interface.
3Ease of operation
If the platform provides a plug-in model with security limitations, then untrusted hosted code can be executed with restricted actions, but the hosted code cannot perform certain operations required for flexible content delivery
Solution Approach 1:
The patent uses an intermediary interface that mediates between the security requirements of the platform and the functionality needs of hosted code. The interface allows hosted code to perform content delivery operations while the platform maintains security control through the standardized communication protocol. This resolves the contradiction by enabling necessary functionality without directly compromising security restrictions.
Data Source
AI summary
Described is a technology by which code, such as an untrusted web application hosted in a browser, provides content through an interface for playback by an application environment, such as an application environment running in a browser plug-in. Content may be in the form of elementary video, audio and/or script streams. The content is in a container that is unpackaged by the application code, whereby the content may be packaged in any format that the application understands, and/or or come from any source from which the application can download the container. An application environment component such as a platform-level media element receives information from an application that informs the application environment that the application is to provide media stream data for playback. The application environment requests media stream data (e.g., samples) from the application, receives them as processed by the application, and provides the requested media stream data for playback.


