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).