Development - CESNET/UltraGrid GitHub Wiki

Documentation

Packet formats

Internals

Current development topics

API changes

October 9th 2014 - deprecation of video_frame::dispose and video_frame::dispose_udata

video_frame::dispose and video_frame::dispose_udata should no longer be used. Its use replaced by wrapping video_frame with shared_pointer (always with custom Deleter). Currently, only video_capture modules and capture filters may use this API. After frame leaves compress_thread(), it should be passed only as shared_ptr <video_frame>

Note: Both video_frame::dispose and passing shared_ptr <video_frame> is still rather seldom used. Both are currently used only in sending workflow, not receiving. For the later one, this API change has no implication because neither is used. If rewritten, shared_ptrs should be used.

August 12th 2014 - rewrite of audio_frame2

C structure audio_frame2 (replacing older audio_frame) is entirely rewritten to C++. There is a default constructor, a move constructor, and a constructor from struct audio_frame. If using default constructor or if there is need to reinitialize the class to different params, there is a init method. Class audio_frame2 is movable but not copyable.

Further changes

  • some function still use C API, therefore pointers are passed and const pointer is returned. Therefore, currently, owner of the returned pointer is called function state and is guaranteed that pointer is valid until next function call. Target state is to pass parameter as a const lvalue reference. Return value should be audio_frame2 (potentially using RVO), caller may then create shared_ptr if needed.
  • there is a legacy audio_channel structure which will be removed in future

Other