Thiago Sousa Santos

Thiago Sousa Santos

About Thiago Sousa Santos

Thiago got in touch with Open Source while working on a Computer Science degree in Brazil. From the early days, he wrote multimedia applications using OpenCV and eventually got interested in developing with GStreamer itself. He was one of the founding members of the OSG Multimedia team. His day-to-day work included maintaining GStreamer and making sure internal projects are developed closer to upstream, allowing the latest features to be used as well as working on improvements to benefit the community. Thiago is interested in all things multimedia, software and system design, and algorithm optimization.

  • Projects

    GStreamer
  • Role

    Senior Multimedia Engineer

Posts by Thiago Sousa Santos

  • Among the tests run daily on the GStreamer continuous integration server, there is a suite for detecting regressions and dangerous conditions called gst-validate. It’s a somewhat recent addition in the history of the project; in short, it activates a number of monitors in running pipelines to detect and report possible issues. These checks can be enabled for any pipeline, and wrap over all elements. gst-validate is run for a number of scenarios and formats that simulate real-world use cases, and it will catch issues for any element in the pipelines under these scenarios. Thibault Saunier, the lead maintainer of gst-validate, has written a very good summary of how it works. Another important part of gst-validate is the media verification tooling, called media-check. This tool compares playback data from a pipeline using the latest git master of GStreamer with a reference file from a previous version, any differences are reported and […]

    Read More
  • Media pipelines are important to virtually any modern device that displays video or audio. It’s important these pipelines are optimized in order to provide responsive video and audio playback on devices that might have tightly constrained hardware resources like smartphones, smartwatches, and IoT devices. During theĀ GStreamer summer hackfest in Montpellier, France one of our areas of focus was on improving how GStreamer performs caps negotiation. Brief review of caps negotiation Before data can flow on a GStreamer pipeline, elements must agree on the data format they will use. The process of selecting those formats is called Caps Negotiation and it uses three different types of interactions: caps queries, accept-caps queries and caps events. The Caps Query is used to ask elements what formats they can receive or produce, and it is recursive in thatĀ one element also queries others to avoid exposing formats that wouldn’t be accepted further ahead in the […]

    Read More