9
areaDetector and GStreamer Similarities and Differences Tom Cobb

AreaDetector and GStreamer Similarities and Differences Tom Cobb

Embed Size (px)

Citation preview

Page 1: AreaDetector and GStreamer Similarities and Differences Tom Cobb

areaDetector and GStreamer

Similarities and Differences

Tom Cobb

Page 2: AreaDetector and GStreamer Similarities and Differences Tom Cobb

What is GStreamer

• Streaming media framework – audio and video• Many plugins available for data formats / data

manipulation• Higher level than just input / filters / output– Networking, audio/video mixed streams, auto data handling– Various options utilizing hardware accelerators

• Has been extended for use in some scientific communities

• Written in C with Python (and other language) bindings

Page 3: AreaDetector and GStreamer Similarities and Differences Tom Cobb

What is areaDetector

• I hope I don’t need to say anything here...

Page 4: AreaDetector and GStreamer Similarities and Differences Tom Cobb

What does GStreamer do that areaDetector does?

• Chains plugins for data processing• Options to run any plugin in its own thread• Image transformations and conversion (rotate, scale

and offset, ROI, debayer, overlay, color convert)• File and network I/O in various datatypes• Some stats functions• Rewirable chain on the fly• GigE cameras• Windows, Linux, MAC OS X

Page 5: AreaDetector and GStreamer Similarities and Differences Tom Cobb

What does GStreamer do that areaDetector doesn’t?

• Some data formats (YUV is about the only one that is immediately useful)

• Some file formats (MJPEG, H264 multicast streaming)• Autoplugging chain based on data formats• A lot of plugins that we could make use of (opencv

functions, • Synchronization of different clock sources• V4L cameras• Could make use of audio processing for ADC data

Page 6: AreaDetector and GStreamer Similarities and Differences Tom Cobb

What does areaDetector do that GStreamer doesn’t?

• Some data formats (Int32, Float32, Float64)• Some file formats (HDF5, netCDF)• Some stats functions• Most of our detectors• EPICS integration• vxWorks

Page 7: AreaDetector and GStreamer Similarities and Differences Tom Cobb

Who else is using GStreamer?

• LIGO: gravitational-wave data analysis tools for 1D data (see tutorial)

• Military: various 2D sources, mainly Camera Link and CoaXPress framegrabbers from Active Silicaon, NI, DALSA, Matrox, EDT (see presentation)

• Software Radio: FFTs and other 1D data functions• Lots of A/V people...

Page 8: AreaDetector and GStreamer Similarities and Differences Tom Cobb

What neat ideas does it have?

• GObject based, so written in C but get Python wrapper for free

• Message passing on bus• Video format (Caps) negotiation• Bins for groups of plugins with a bit of logic• Multiple clock sources (e.g. for stream

synchronisation)• Connections can be run in push or pull mode (e.g.

For limited rate outputs, or attribute readers)

Page 9: AreaDetector and GStreamer Similarities and Differences Tom Cobb

Demo

• EPICS V4 monitor on NTNDArray producing data to a pipeline of GStreamer plugins