diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:34:42 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-15 03:34:42 +0000 |
commit | da4c7e7ed675c3bf405668739c3012d140856109 (patch) | |
tree | cdd868dba063fecba609a1d819de271f0d51b23e /dom/media/webcodecs/VideoDecoder.cpp | |
parent | Adding upstream version 125.0.3. (diff) | |
download | firefox-da4c7e7ed675c3bf405668739c3012d140856109.tar.xz firefox-da4c7e7ed675c3bf405668739c3012d140856109.zip |
Adding upstream version 126.0.upstream/126.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'dom/media/webcodecs/VideoDecoder.cpp')
-rw-r--r-- | dom/media/webcodecs/VideoDecoder.cpp | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/dom/media/webcodecs/VideoDecoder.cpp b/dom/media/webcodecs/VideoDecoder.cpp index 18855e5cea..dfc1dff093 100644 --- a/dom/media/webcodecs/VideoDecoder.cpp +++ b/dom/media/webcodecs/VideoDecoder.cpp @@ -96,7 +96,7 @@ VideoColorSpaceInit VideoColorSpaceInternal::ToColorSpaceInit() const { VideoDecoderConfigInternal::VideoDecoderConfigInternal( const nsAString& aCodec, Maybe<uint32_t>&& aCodedHeight, Maybe<uint32_t>&& aCodedWidth, Maybe<VideoColorSpaceInternal>&& aColorSpace, - Maybe<RefPtr<MediaByteBuffer>>&& aDescription, + already_AddRefed<MediaByteBuffer> aDescription, Maybe<uint32_t>&& aDisplayAspectHeight, Maybe<uint32_t>&& aDisplayAspectWidth, const HardwareAcceleration& aHardwareAcceleration, @@ -105,7 +105,7 @@ VideoDecoderConfigInternal::VideoDecoderConfigInternal( mCodedHeight(std::move(aCodedHeight)), mCodedWidth(std::move(aCodedWidth)), mColorSpace(std::move(aColorSpace)), - mDescription(std::move(aDescription)), + mDescription(aDescription), mDisplayAspectHeight(std::move(aDisplayAspectHeight)), mDisplayAspectWidth(std::move(aDisplayAspectWidth)), mHardwareAcceleration(aHardwareAcceleration), @@ -120,7 +120,7 @@ UniquePtr<VideoDecoderConfigInternal> VideoDecoderConfigInternal::Create( return nullptr; } - Maybe<RefPtr<MediaByteBuffer>> description; + RefPtr<MediaByteBuffer> description; if (aConfig.mDescription.WasPassed()) { auto rv = GetExtraDataFromArrayBuffer(aConfig.mDescription.Value()); if (rv.isErr()) { // Invalid description data. @@ -130,7 +130,7 @@ UniquePtr<VideoDecoderConfigInternal> VideoDecoderConfigInternal::Create( static_cast<uint32_t>(rv.unwrapErr())); return nullptr; } - description.emplace(rv.unwrap()); + description = rv.unwrap(); } Maybe<VideoColorSpaceInternal> colorSpace; @@ -141,16 +141,16 @@ UniquePtr<VideoDecoderConfigInternal> VideoDecoderConfigInternal::Create( return UniquePtr<VideoDecoderConfigInternal>(new VideoDecoderConfigInternal( aConfig.mCodec, OptionalToMaybe(aConfig.mCodedHeight), OptionalToMaybe(aConfig.mCodedWidth), std::move(colorSpace), - std::move(description), OptionalToMaybe(aConfig.mDisplayAspectHeight), + description.forget(), OptionalToMaybe(aConfig.mDisplayAspectHeight), OptionalToMaybe(aConfig.mDisplayAspectWidth), aConfig.mHardwareAcceleration, OptionalToMaybe(aConfig.mOptimizeForLatency))); } -nsString VideoDecoderConfigInternal::ToString() const { - nsString rv; +nsCString VideoDecoderConfigInternal::ToString() const { + nsCString rv; - rv.Append(mCodec); + rv.Append(NS_ConvertUTF16toUTF8(mCodec)); if (mCodedWidth.isSome()) { rv.AppendPrintf("coded: %dx%d", mCodedWidth.value(), mCodedHeight.value()); } @@ -161,8 +161,8 @@ nsString VideoDecoderConfigInternal::ToString() const { if (mColorSpace.isSome()) { rv.AppendPrintf("colorspace %s", "todo"); } - if (mDescription.isSome() && mDescription.value()) { - rv.AppendPrintf("extradata: %zu bytes", mDescription.value()->Length()); + if (mDescription) { + rv.AppendPrintf("extradata: %zu bytes", mDescription->Length()); } rv.AppendPrintf("hw accel: %s", GetEnumString(mHardwareAcceleration).get()); if (mOptimizeForLatency.isSome()) { @@ -579,8 +579,7 @@ bool VideoDecoderTraits::IsSupported( /* static */ Result<UniquePtr<TrackInfo>, nsresult> VideoDecoderTraits::CreateTrackInfo( const VideoDecoderConfigInternal& aConfig) { - LOG("Create a VideoInfo from %s config", - NS_ConvertUTF16toUTF8(aConfig.ToString()).get()); + LOG("Create a VideoInfo from %s config", aConfig.ToString().get()); nsTArray<UniquePtr<TrackInfo>> tracks = GetTracksInfo(aConfig); if (tracks.Length() != 1 || tracks[0]->GetType() != TrackInfo::kVideoTrack) { @@ -668,15 +667,14 @@ Result<UniquePtr<TrackInfo>, nsresult> VideoDecoderTraits::CreateTrackInfo( } } - if (aConfig.mDescription.isSome()) { - RefPtr<MediaByteBuffer> buf; - buf = aConfig.mDescription.value(); - if (buf) { - LOG("The given config has %zu bytes of description data", buf->Length()); + if (aConfig.mDescription) { + if (!aConfig.mDescription->IsEmpty()) { + LOG("The given config has %zu bytes of description data", + aConfig.mDescription->Length()); if (vi->mExtraData) { LOGW("The default extra data is overwritten"); } - vi->mExtraData = buf; + vi->mExtraData = aConfig.mDescription; } // TODO: Make this utility and replace the similar one in MP4Demuxer.cpp. |