Quellcodebibliothek Statistik Leitseite products/sources/formale Sprachen/C/Firefox/dom/media/encoder/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 2 kB image not shown  

Quelle  TrackMetadataBase.h   Sprache: C

 
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-*/
/* 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 TrackMetadataBase_h_
#define TrackMetadataBase_h_

#include "nsTArray.h"
#include "nsCOMPtr.h"
namespace mozilla {

// A class represent meta data for various codec format. Only support one track
// information.
class TrackMetadataBase {
 public:
  NS_INLINE_DECL_THREADSAFE_REFCOUNTING(TrackMetadataBase)
  enum MetadataKind {
    METADATA_OPUS,  // Represent the Opus metadata
    METADATA_VP8,
    METADATA_VORBIS,
    METADATA_AVC,
    METADATA_AAC,
    METADATA_AMR,
    METADATA_EVRC,
    METADATA_UNKNOWN  // Metadata Kind not set
  };
  // Return the specific metadata kind
  virtual MetadataKind GetKind() const = 0;

 protected:
  // Protected destructor, to discourage deletion outside of Release():
  virtual ~TrackMetadataBase() = default;
};

// The base class for audio metadata.
class AudioTrackMetadata : public TrackMetadataBase {
 public:
  // The duration of each sample set generated by encoder. (counted by samples)
  // If the duration is variant, this value should return 0.
  virtual uint32_t GetAudioFrameDuration() = 0;

  // The size of each sample set generated by encoder. (counted by byte)
  // If the size is variant, this value should return 0.
  virtual uint32_t GetAudioFrameSize() = 0;

  // AudioSampleRate is the number of audio sample per second.
  virtual uint32_t GetAudioSampleRate() = 0;

  virtual uint32_t GetAudioChannels() = 0;
};

// The base class for video metadata.
class VideoTrackMetadata : public TrackMetadataBase {
 public:
  // VideoHeight and VideoWidth are the frame size of the elementary stream.
  virtual uint32_t GetVideoHeight() = 0;
  virtual uint32_t GetVideoWidth() = 0;

  // VideoDisplayHeight and VideoDisplayWidth are the display frame size.
  virtual uint32_t GetVideoDisplayHeight() = 0;
  virtual uint32_t GetVideoDisplayWidth() = 0;

  // VideoClockRate is the number of samples per second in video frame's
  // timestamp.
  // For example, if VideoClockRate is 90k Hz and VideoFrameRate is
  // 30 fps, each frame's sample duration will be 3000 Hz.
  virtual uint32_t GetVideoClockRate() = 0;

  // VideoFrameRate is numner of frames per second.
  virtual uint32_t GetVideoFrameRate() = 0;
};

}  // namespace mozilla

#endif

Messung V0.5
C=71 H=100 G=86

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.