PixMover REST API
Connectivity
Operational Models
The PixMover RESTful API promotes the use of operational models to help organize integration efforts. The integrator should review the desired operations provided for each model and implement the set of application API calls associated with that model. Each operational model is described below.
- Monitoring (View-Only) ModelThis model is targeted at those applications that wish to only be able to view the status of jobs without the capability of starting jobs or performing administrative tasks. This model is useful for allowing monitoring personnel to view the status of the system. It could also allow an Artist to see when frames will be made available for starting work. Administrative functions are controlled via PixMoverUI and is usually set up first and subsequently the interfacing monitoring devices.
- Wrangler ModelThis model is targeted at those applications that wish to control full operation of file movement within the system, including monitoring the status of jobs but does not include administrative capabilities. Administrative functions are controlled via PixMoverUI and is usually set up first and subsequently the interfacing devices to perform file operations. This is the de facto model used by most systems integrating with PixMover over the RESTful Interface.
- Administrative ModelThis model is targeted at those applications that wish to control all aspects of PixMover (no PixMoverUI assist) including user administration, file movement, as well as job status monitoring. This is the most complex yet most complete model for integration with PixMover.
Functional Breakdown
- Login API FlowsThe Login API flows capture the collection of API requests/responses that are contained within each Login/Logout action.
- Folders/Files APIsThe Folders/Files APIs manage calls associated with folders and files as it pertains to file systems.
- Job APIsThe Jobs APIs manage calls associated with management and status of jobs.
- Worker APIs (Administrative Model Only)The Worker APIs manage calls associated with the distributed workers who perform the actual execution (encode/decode) of the jobs.
- Bandwidth Throttling APIs (Administrative Model Only)The Bandwidth Throttling APIs manage calls associated with the metering and throttling of bandwidth that is consumed by the workers on managed file system paths, typically mount points. This mechanism can be used to ensure that the worker bandwidth loads do not saturate network infrastructure.
- Admin Control APIs (Administrative Model Only)The Admin Control APIs manage calls associated with administration privilege level of users such as adding/suspending/restoring/deleting users from the system and managing the settings associated with those users.
- User Settings APIsThe User Settings APIs manage calls associated with user settings such as passwords, role, access, and email settings.
- Systems Settings APIs (Administrative Model Only)The System Settings APIs manage calls associated with global settings for the system such as PixMover Email account and Cloud Storage Management (S3) settings.
Pixspan Data Image Compression Library
Overview
- DPX
- Cineon
- OpenEXR
- TIFF
- PPM
- SGI
- ARRIRaw
- Panasonic Varicam Raw
- Canon c500 Raw
The operation of the library is to take as input a buffer containing the contents of a full-resolution image file, and then outputting the compressed version of that image to another buffer, assuming that the file format is supported. The library also performs the reverse transformation, taking a Pixspan Data compressed version of that image from an input buffer, and decompressing to an output buffer. For file formats that are not supported, the library leaves the input buffer undisturbed, and outputs an appropriate status code to indicate that no compression/decompression was performed. The calling software is responsible for freeing both the input buffer and the output buffer, if an output buffer was created.
The performance of the software is approximately 10 MBytes/second for a single thread on an Intel E5-2670 or equivalent processor. So, a 12 MByte DPX file will take 1.2 seconds to compress or decompress with one thread. The library can be multi-threaded so that the performance can scale to the platform where it resides (e.g. a 16 core Intel E5-2670 can process approximately 320 MBytes/second based on the size of original images).
Files in the Library Package
- The dynamic library implementing Pixspan Data compression/decompression for Mac (.dylib)
- The dynamic library implementing Pixspan Data compression/decompression for Linuxi (.so file)
- pixspan_memory.h – The API for the library
- pixspan_in_memory_test – a test application built with the library (note that this includes a license key that will time out)
- in_memory_test.c – a C program that demonstrates how to use the library.
- A Pixspan Data License File will be required, sent separately
The Library API
The main function in the library is: pixspan_process(). This takes the parameters of:
- Mode – Compress, Decompress, or Auto
- License String – A Pixspan Data supplied License String
- Input Buffer Pointer – A pointer to the Image Frame
- Input Buffer Size – The size of the Image Frame
- Process Information – Pointer to a Structure that holds information about the Processed Frame, including a pointer to the Compressed/Decompressed Output Buffer and its size.
- PIXSPAN_STATUS_SUCCESS – compress or decompress successful
- PIXSPAN_STATUS_NOT_SUPPORTED – image type not supported
- PIXSPAN_STATUS_SUPPORTED_FAILED – type supported, but compress/decompress unsuccessful
- PIXSPAN_STATUS_ALREADY_COMPRESSED – content was already compressed for a compress operation
- PIXSPAN_STATUS_ALREADY_DECOMPRESSED – content was uncompressed for a decompress operation
- PIXSPAN_STATUS_INPUT_BUFFER_ERROR – unknown error with the input buffer
- PIXSPAN_STATUS_OUTPUT_BUFFER_OPEN_ERROR – unknown error with the output buffer
- PIXSPAN_STATUS_LICENSE_EXPIRED – Pixspan Data license key expired or invalid