Overview¶
The GroundSDK Tools are currently composed mainly of PDrAW.
PDrAW (pronounced like the name “Pedro”) is a video player for medias created by Parrot drones such as Anafi or Anafi Ai. The player supports both streamed (RTP/RTSP) and recorded (MP4) videos.
PDrAW is the main video pipeline implementation of GroundSDK. We are using it in our FreeFlight6 and FreeFlight7 applications, both on iOS and Android. It is also usable on desktop platforms.
Supported platforms¶
Linux PC
macOS
Android (5.0 minimum) (note: for sample code, see GroundSDK Android)
iOS (8.0 minimum) (note: for sample code, see GroundSDK iOS)
Features¶
Demuxing:
Record demuxer
Playback of local replays
MP4 file format (ISO/IEC 14496-12, ISO Base Media File Format / ISO/IEC 14496-14, MP4 File Format)
Multi-track support on the video with user selection
Stream demuxer
Playback control
Play/pause
Seeking (except for live streams)
Playback speed control (except for live streams)
Negative speeds for playing backward (except for live streams)
Frame-by-frame forward and backward on local replays (MP4 records)
Support of Parrot session and frame metadata (see libvideo-metadata)
Decoding:
H.264 video decoding (ITU-T H.264 / ISO/IEC 14496-10), baseline, main and high profiles
H.265 video decoding (ITU-T H.265 / ISO/IEC 23008-2), main and main 10 profiles
Frame output API for application-side processing on the video (either H.264/H.265 frames before decoding or YUV frames after decoding)
Rendering:
OpenGL ES 2.0 video rendering
Imaging features
Overexposure zebras
RGB and luminance histograms computation
User rendering callback functions
Custom texture loading with provided video metadata
Video overlay with provided video metadata
HMD distortion correction
Support for Parrot Cockpitglasses 1 & 2
Device settings for screen pixel density and mechanical margins
User settings for video scale, placement and IPD
Here is a graph of PDrAW’s video pipeline:

PDrAW architecture¶
PDrAW comes as both a library (libpdraw), a wrapper library (libpdraw-backend), and a standalone executable (pdraw).
libpdraw is the low level interface to the video pipeline, and requires the calling application to provide a running pomp_loop (see libpomp). This is the library used by GroundSDK Android and GroundSDK iOS.
libpdraw-backend is a wrapper library around libpdraw, which handles the loop creation internally. It is much easier to integrate in a third-party software, and thus is the preferred interface to use for your application.
The pdraw executable demonstrates most of the library features. It can be seen as both a complete player for Anafi and Anafi Ai videos (live & replay), and a sample code for libpdraw-backend usage in a SDL2 environment.
Both libraries provide C & C++ headers.
Other tools¶
The GroundSDK tools also pack some other very useful tools:
The vmeta-extract executable can read MP4 files produced by Anafi or Anafi Ai drones, and extract the video metadata into a JSON file.
The libpdraw-vsink library provides an easy way to get decoded (YUV) frames, with associated metadata, from an Anafi or Anafi Ai stream or record. A sample code is provided in
<SDK>/packages/pdraw/libpdraw-vsink/tests/