products
/
Sources
/
formale Sprachen
/
C
/
Linux
/
drivers
/
clocksource
/ (
Linux Kernel
Version 6.17.9
©
) Datei vom 24.10.2025 mit Größe 2 kB
Bilddatei
OggWriter.h
products/Sources/formale Sprachen/C/Firefox/dom/media/ogg/OggWriter.h
/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this file, * You can obtain one at http://mozilla.org/MPL/2.0/. */ #ifndef OggWriter_h_ #define OggWriter_h_ #include
#include "ContainerWriter.h" #include "OpusTrackEncoder.h" namespace mozilla { /** * WriteEncodedTrack inserts raw packets into Ogg stream (ogg_stream_state), and * GetContainerData outputs an ogg_page when enough packets have been written * to the Ogg stream. * For more details, please reference: * http://www.xiph.org/ogg/doc/libogg/encoding.html */ class OggWriter : public ContainerWriter { public: OggWriter(); ~OggWriter(); // Write frames into the ogg container. aFlags should be set to END_OF_STREAM // for the final set of frames. nsresult WriteEncodedTrack(const nsTArray
>& aData, uint32_t aFlags = 0) override; nsresult GetContainerData(nsTArray
>* aOutputBufs, uint32_t aFlags = 0) override; // Check metadata type integrity and reject unacceptable track encoder. nsresult SetMetadata( const nsTArray
>& aMetadata) override; private: nsresult Init(); nsresult WriteEncodedData(const nsTArray
& aBuffer, int aDuration, uint32_t aFlags = 0); void ProduceOggPage(nsTArray
>* aOutputBufs); // Store the Medatata from track encoder RefPtr
mMetadata; ogg_stream_state mOggStreamState; ogg_page mOggPage; ogg_packet mPacket; }; } // namespace mozilla #endif
2026-08-25