# GStreamer design documents

This section gathers the various GStreamer design documents. These documents are the technical documents that have been produce while developing or refactoring parts of the GStreamer design to explain the problems and the design solutions we came up to solve them.

Subpages:

Conventions for thread a safe API

Adaptive Demuxers for DASH, HLS and Smooth Streaming

Pad (de)activation

Audiosink design

GstBuffer

Buffering

Bufferpool

Caps

Clocks

Context

Controller

Documentation conventions

Decodebin design

DMA buffers

Dynamic pipelines

Sink elements

Source elements

Transform elements

Encoding and Muxing

Events

Frame stepping

GstBin

GstBus

GstElement

Ghostpads

GstObject

GstPipeline

Element Klass definition

Interlaced Video

Forcing keyframes

Latency

Live sources

Machine Learning Based Analytics

Raw Audio Media Types

Raw Text Media Types

Raw Video Media Types

GstMemory

Messages

GstMeta

Metadata

GstMiniObject

What to do when a plugin is missing

Negotiation

OpenGL

Orc Integration

Overview

playbin

Gapless and instant URI switching in playback elements

Preroll

Probes

Progress Reporting

push-pull

Quality-of-Service

Query

Object relation types

RTP

Scheduling

Seeking

Segments

Seqnums (Sequence numbers)

Sparse Streams

Ownership of dynamic objects

States

Stereoscopic & Multiview Video Handling

Stream selection

Stream Status

Streams

Subtitle Overlays and Hardware-Accelerated Playback

Synchronisation

Tagreading

Implementing GstToc support in GStreamer elements

Tracing

Trickmodes

TODO - Future Development

The results of the search are