Closed garethsb closed 2 years ago
Missing format-specific parameters etc.:
video/raw
(when used as per ST 2110-20/-21)
PM
, SSN
(currently written with hard-coded values and not read)RANGE
MAXUDP
PAR
TROFF
(also for video/SMPTE2022-6
when used as per ST 2022-8)CMAX
video/SMPTE2022-6
a=framerate:
video/jxsv
packetmode
transmode
profile
level
sublevel
depth
~ (same as video/raw
per ST 2110-20)width
~height
~exactframerate
~interlace
~segmented
~sampling
~colorimetry
~TCS
~RANGE
(as per video/raw
, ST 2110-20)b=AS:
application-specific bandwidth information line video/H264
profile-level-id
sprop-parameter-sets
sprop-level-parameter-sets
packetization-mode
sprop-interleaving-depth
sprop-deint-buf-req
sprop-init-buf-time
sprop-max-don-diff
video/H265
profile-space
profile-id
tier-flag
level-id
profile-compatibility-indicator
sprop-sub-layer-id
tx-mode
sprop-vps
sprop-sps
sprop-pps
sprop-sei
sprop-max-don-diff
sprop-depack-buf-nalus
sprop-depack-buf-bytes
sprop-segmentation-id
sprop-spatial-segmentation-idc
video/VP9
profile-id
video/AV1
profile
level-idx
tier
audio/L
a=maxptime:
attributeaudio/AM824
(per ST 2110-31, since there's no IANA registration...)
channel-order
~ (same as ST 2110-30)Other media types mentioned in #200: video/vc2
, and audio/aac
, /mp2
, /mp3
, /m4a
, /opus
. Relative priority unknown!
Of the missing format-specific parameters etc. mentioned in https://github.com/sony/nmos-cpp/issues/213#issuecomment-979016210, for the currently supported media types (video/raw
, video/jxsv
, video/SMPTE2022-6
, audio/L
), I think they've all been implemented in #280 apart from a=framerate:
roundtrip through video_SMPTE2022_6_parameters
...
Therefore, let's close this issue and wait for BCP-006-xx for video/H264
, etc.
NMOS supports compressed video streams; at the most basic via the
media_type
attribute in the Flow and themedia_types
capability in the Receiver.Since IS-04 v1.3, we can register new Flow attributes, and with BCP-004-01 Receiver Capabilities and the Capabilities register, new Receiver capabilities. For example, for JPEG XS (see #177), it was agreed that bit rate is an important characteristic to add (as well as being able to indicate color (sub-)sampling for coded video Flows via the same
components
attribute used for raw video Flows).The nmos-cpp sdp module is generic and extensible.
However, the nmos-cpp _nmos/sdp_utils.h_ module and the
nmos::sdp_parameters
structure it defines are not.I propose we extend the
nmos::sdp_parameters
and related functions to provide SDP read/write for additional media types. If it cannot be done maintaining backward compatibility we can do something alongside instead.There may be no point making something fully generic if it wouldn't provide any abstraction over the lower level
sdp
namespace functions.Top priorities are to support
video/jxsv
,video/H264
,video/H265
,video/VP9
,video/AV1
andaudio/AM824
(which doesn't appear to have an IANA registration...).I feel the
nmos::sdp_parameters
structure should expose all the required and optional format-specific parameters of these media types as first-class values. There are currently a few missing even forvideo/raw
(when used as per ST 2110-20) such asCMAX
(noted in the code).