org.iso.mpeg.mpegj.resource
Interface DynamicCapability
- All Known Implementing Classes:
- CapabilityManager
- public interface DynamicCapability
[Adaptive Audio-Visual Session Format ISO/IEC JTC1/SC29/WG11 - MPEG97/2566]
On some platforms and scenarios, it may be impossible for the terminal to guarantee
the constant availability of all of its resources. For example:
- A wireless multimedia unit may encounter widely varying communication capacities, including intermittent connections.
- A general-purpose computer may experience varying load factors as other processes run on the system.
- Audio-visual sessions with content generated at multiple sources may cause resource contention on the terminal.
In order for the audio-visual session to respond gracefully to these situations, AAVS
provides mechanisms for an AVSession object to catch dynamic changes to terminal
information and modify its behavior. Upon initialization, an AVSession object may
subscribe with the Terminal object to receive notification of changes to dynamic terminal
information that is important to that particular audio-visual session. If such
information does change during an audio-visual session, the Terminal will notify the
AVSession of the change through standardized interfaces. Then the AVSession may respond
in the manner prescribed by the content creator.
For example, consider an AAVS scene representing an MPEG-4 video sequence of a newscaster
and a background news clip coded as separate video objects. The content creator might
desire to freeze the news clip whenever the actual display frame rate is too slow, rather
than sacrificing the quality of the newscaster in the foreground. The content creator
can specify this behavior programmatically within the media by subscribing to
notifications of frame-rate changes from the terminal. Then, when frame rate drops
significantly due, for example, to limited CPU capacity, the media object can dynamically
adapt and not continually decode the news clip and further degrade the presentation
performance.
getFreeTerminalMemory
public long getFreeTerminalMemory()
- Terminal free memory (RAM)
- Returns:
- the amount of free memory (bytes) installed on the terminal.
getTotalTerminalMemory
public long getTotalTerminalMemory()
- Terminal total memory (RAM)
- Returns:
- the total amount of memory (bytes) installed on the terminal.
getTotalApplicationMemory
public long getTotalApplicationMemory()
- Total application memory (RAM)
- Returns:
- the total amount of memory (bytes).
getFreeApplicationMemory
public long getFreeApplicationMemory()
- Free application memory (RAM)
- Returns:
- the amount of available (at application level e.g. JavaVM)
free memory (bytes).
getTerminalLoad
public long getTerminalLoad()
- Terminal CPU Load
- Returns:
- the load (percentage) of the terminal CPUs
getNetworkLoad
public long getNetworkLoad()
- Terminal Network Load
- Returns:
- the network load (percentage).