Files
sousa-gecko/dom/media/ADTSDecoder.cpp
T
Alastor Wu 54692bdeb1 Bug 2034990 - Part 2: Migrate query-only PDMFactory call sites to PDMFactorySupport. r=media-playback-reviewers,padenot
Migrate read-only IsTypeSupported / IsSupported call sites to the new
process-wide singleton:

- container/codec predicates: ADTSDecoder, MP3Decoder, MP4Decoder,
  WebMDecoder, MatroskaDecoder.
- MediaCapabilities audio precheck and WebRTC MediaDataCodec capability
  check.
- MediaFormatReader::OnDemuxerInitDone and MediaBufferDecoder mime-type
  precheck.

Differential Revision: https://phabricator.services.mozilla.com/D299303
2026-05-20 20:23:28 +00:00

45 lines
1.3 KiB
C++

/* 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/. */
#include "ADTSDecoder.h"
#include "MediaContainerType.h"
#include "PDMFactorySupport.h"
namespace mozilla {
/* static */
bool ADTSDecoder::IsEnabled() {
return !PDMFactorySupport::IsTypeSupported("audio/mp4a-latm"_ns).isEmpty();
}
/* static */
bool ADTSDecoder::IsSupportedType(const MediaContainerType& aContainerType) {
if (aContainerType.Type() == MEDIAMIMETYPE("audio/aac") ||
aContainerType.Type() == MEDIAMIMETYPE("audio/aacp") ||
aContainerType.Type() == MEDIAMIMETYPE("audio/x-aac")) {
return IsEnabled() && (aContainerType.ExtendedType().Codecs().IsEmpty() ||
aContainerType.ExtendedType().Codecs() == "aac");
}
return false;
}
/* static */
nsTArray<UniquePtr<TrackInfo>> ADTSDecoder::GetTracksInfo(
const MediaContainerType& aType) {
nsTArray<UniquePtr<TrackInfo>> tracks;
if (!IsSupportedType(aType)) {
return tracks;
}
tracks.AppendElement(
CreateTrackInfoWithMIMETypeAndContainerTypeExtraParameters(
"audio/mp4a-latm"_ns, aType));
return tracks;
}
} // namespace mozilla