// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef MEDIA_MUXERS_WEBM_MUXER_H_ #define MEDIA_MUXERS_WEBM_MUXER_H_ #include <cstdint> #include <memory> #include <string> #include "base/containers/circular_deque.h" #include "media/muxers/muxer.h" #include "third_party/libwebm/source/mkvmuxer.hpp" namespace media { class AudioParameters; // Adapter class to manage a WebM container [1], a simplified version of a // Matroska container [2], composed of an EBML header, and a single Segment // including at least a Track Section and a number of SimpleBlocks each // containing a single encoded video or audio frame. WebM container has no // Trailer. // Clients will push encoded VPx or AV1 video frames and Opus or PCM audio // frames one by one via OnEncoded{Video|Audio}(). libwebm will eventually ping // the WriteDataCB passed on constructor with the wrapped encoded data. // WebmMuxer is designed for use on a single thread. // [1] http://www.webmproject.org/docs/container/ // [2] http://www.matroska.org/technical/specs/index.html class MEDIA_EXPORT WebmMuxer : public Muxer { … }; } // namespace media #endif // MEDIA_MUXERS_WEBM_MUXER_H_