Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
ISO/IEC 29341-18-10 specifies version 2 of the RenderingControl service, building upon the foundations established in Part 17-13 (RenderingControl v1). Version 2 introduces significant architectural enhancements that address limitations identified through years of real-world UPnP AV deployment experience. The most fundamental improvement is the redesigned channel model, which replaces the fixed channel architecture of v1 with a dynamic, queryable channel system that can adapt to the device’s actual output configuration at runtime.
In v1, rendering channels were predefined and limited to a fixed set (Master, LF, RF, etc.). V2 introduces a channel discovery mechanism through the GetChannelCharacteristics action, which returns the complete set of available channels, their types (audio, video, or audiovisual), their current state, and the supported parameter ranges for each channel. This allows a control point to discover that a particular MediaRenderer supports, for example, a Center channel (CS), Left Surround (LS), Right Surround (RS), and a Subwoofer (SW) in addition to the basic stereo pair — enabling true multi-channel surround sound control that was cumbersome to implement in v1.
RenderingControl v2 significantly expands the palette of rendering controls beyond what v1 offered. New audio controls include: ChannelVolume (per-channel volume with configurable range and curve), ChannelMute (independent mute per channel), Equalizer (multi-band parametric EQ with configurable frequency, gain, and Q factor), DynamicRangeCompression (compressor/limiter settings for reduced dynamic range), AudioDelay (lip-sync delay adjustment), and ChannelPhase (phase inversion per channel for acoustic correction).
New video controls include: Gamma (gamma correction curve selection or custom value), ColorTemperature (preset color temperature values or custom Kelvin value), NoiseReduction (multi-level noise reduction for different noise types — temporal, spatial, mosquito), AspectRatio (direct aspect ratio control with modes like Auto, 4:3, 16:9, Zoom, Stretch), and PictureMode (manufacturer-specific picture mode selection beyond the basic presets). These controls are exposed through the generic Get/Set state variable mechanism but with standardized names and semantics to ensure cross-vendor interoperability.
| Control Category | v1 Support | v2 Enhancement | Engineering Impact |
|---|---|---|---|
| Channel Model | Fixed predefined channels | Dynamic, queryable channel model | Control points must adapt UI to device capabilities |
| Volume Control | Single Volume per channel | ChannelVolume with configurable range, curve, and ramping | Supports multi-zone volume with independent curves |
| Equalizer | Bass/Treble only | Multi-band parametric EQ | Requires DSP support; adds computational overhead |
| Dynamic Range | Not available | DynamicRangeCompression with ratio, threshold, attack/release | Essential for late-night listening; needs real-time audio processing |
| Preset Management | ListPresets, SelectPreset | Added PresetName list, user-preset save/delete, preset XML exchange | User-preset persistence requires non-volatile storage |
| Lip Sync | AVSyncOffset (single value) | AudioDelay per channel, automatic lip-sync detection hints | Enables per-speaker distance compensation in home theater |
| Picture Controls | Brightness, Contrast, Sharpness, Color, Hue | Added Gamma, ColorTemperature, NoiseReduction, AspectRatio | Expanded parameter space requires careful calibration |
| Event Notification | LastChange (single XML document) | LastChange per channel group, rate-controlled delivery | Reduces network traffic; improves UI responsiveness |
Preset management receives a major overhaul in v2. While v1 presets were read-only, manufacturer-defined collections, v2 introduces user-preset capabilities. The CreatePreset action allows a control point to save the current rendering configuration as a named preset for later recall. DeletePreset removes user-created presets, and GetPreset retrieves the complete parameter set associated with a preset as an XML document. This XML document can be exported and imported across devices, enabling use cases like professional calibrators applying the same calibrated preset across multiple displays in a studio or retail environment.
The event notification system is enhanced with per-channel-group eventing. Instead of a single LastChange event variable that covers all channels, v2 introduces a ChannelGroupLastChange variable per logical channel group. This reduces event traffic — when a control point is only interested in audio parameter changes, it subscribes to the audio channel group’s LastChange variable and ignores video-related events. The rate-controlled delivery mechanism allows devices to specify a maximum event notification frequency, preventing event storms during rapid parameter adjustments (such as volume slider dragging) while ensuring that the final parameter value is always delivered.
Another significant enhancement is the introduction of rendering context management. A rendering context is a logical grouping of channels and parameters that share a common rendering purpose. For example, a “Main Zone” context might include the Master audio channel and the primary video output, while a “Zone 2” context includes only the stereo audio output for a secondary room. The GetCurrentContexts action returns the available contexts, and the SelectContext action switches the active context. This allows the control point to manage complex multi-zone, multi-source rendering configurations through a single RenderingControl instance.