5.2.9. Release notes for v0.3
v0.3.4
Per request,
startRemoteVideo()
returns the stream ID for the remote feed being started.Adding a lot of additional documentation (in-file and generated docs)
Fixed naming bug preventing GStreamer window video output.
v0.3.3
Refactored authentication example, with unified two authentication flows
Added Refresh token support; after authenticating, apps can call Authentication.refreshToken() to get the latest refresh token. This can be stored and used to re-authenticate the device without user interaction. e.g. it can be passed to the SDK as the PXSDK_REFRESH_TOKEN environment variable.
v0.3.2
Use
stopLocalVideo()
to stop a feed you previously started. The function takes the stream ID returned by the start function.Similarly use
stopRemoteVideo()
to stop receiving a remote video stream.The application can now be notified of feeds starting using the
onFeedStarted()
callback.Similarly, when feeds are stopped, the application can receive a notification using the
onFeedStopped()
callback. This callback is called when feeds are intentionally stopped, or stopped in error.Previously, incorrectly configured streams would quietly fail and appear to just not respond. In this release, stream errors and warnings are logged, and the
onFeedStopped()
callback to allow the application to respond to error conditions.
Minor breaking API changes
Feed return values
The SDK previously returned MediaServerStreamId
objects to identify streams. Now the SDK uses opaque string IDs that can be easily
compared and used as key values.
This simplification has altered the signature of some of the SDK public
functions, typically a parameter change from ...(const MediaServerStreamId& id)
to
...(string_view id)
.
Before you might call id.idString() to get the stream ID as a string, now you can use the id directly or id.to_string() to create a full std::string object.
v0.3.1
Attention
Critical point fix for an intermittent crash but when using feeds.
v0.3.0
Feed manager improvements
Breaking change
This release has an (albeit minor) breaking changing for the
FeedManager
interface.
The sample code has been updated to reflect this new model for the creation
of local video, remote video and audio feeds.
This release updates the FeedManager
APIs to be
more flexible and consistent. We now have abstract types that for the “components”
of a feed (e.g. input component, encoding component, output component, …).
This revision allows the application to set finer-grain options and properties feeds. See the updated sample’s local feed creation for an illustration of setting the media type and frame rate.
FeedManager
now supports the application setting encoders for use with audio & video feeds. Forthcoming are more encoders to use as alternative to VP8 and Opus encoders.The demo app has been updated to demonstrate device authentication flow. This is an alternative to the less secure secret and password authentication flow, and is necessary for authentication on Production infrastructure. Instead of passing a client ID, secret, username and password, only a client ID is passed; the SDK will then request a device code from the server, and provide a URL for the user to visit and authenticate the device. Note that the client ID required is different from that used for the secret and password flow.
H264 support
Due to the API improvements mentioned above, the FeedManager now supports the application setting encoders for use with outgoing audio & video feeds. At this stage, there is just one audio encoder but two for video (VP8 and H264).
To choose H264 encoding in the sample, either use the command line option –video-codec or environment variable PXSDK_VIDEO_CODEC with the value h264.
Important
Proximie sessions today are assumed to be VP8. H264 SDK clients are compatible with other (non-SDK) Proximie clients (e.g. the Proximie Live App) with the following notes/limitations:
The first participant to enter the session must be an SDK client with H264 enabled. This initialises the “room” to accept VP8 and H264 feeds.
Subsequent clients will then be able to send or receive VP8 and H264.
You should still create the session in Live App, but do not enter it from the Live App until the SDK client has joined.
Other changes
Added logging for GStreamer pipelines; when the pipelines are created, log the parse description (logging severity DEBUG).