fune/dom/media/platforms/ffmpeg/FFmpegUtils.h
Cristian Tuns bbbd3c280f Backed out 5 changesets (bug 1889978) for causing mda failures in mochitest_compat.toml CLOSED TREE
Backed out changeset ce0c34e548fa (bug 1889978)
Backed out changeset 96e08e04fa4d (bug 1889978)
Backed out changeset 2aeb87615ee0 (bug 1889978)
Backed out changeset 2272c3a73ad3 (bug 1889978)
Backed out changeset dc81d0c812b8 (bug 1889978)
2024-04-29 15:02:55 -04:00

56 lines
1.5 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* 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 DOM_MEDIA_PLATFORMS_FFMPEG_FFMPEGUTILS_H_
#define DOM_MEDIA_PLATFORMS_FFMPEG_FFMPEGUTILS_H_
#include <cstddef>
#include "nsStringFwd.h"
#include "FFmpegLibWrapper.h"
// This must be the last header included
#include "FFmpegLibs.h"
namespace mozilla {
#if LIBAVCODEC_VERSION_MAJOR >= 57
using FFmpegBitRate = int64_t;
constexpr size_t FFmpegErrorMaxStringSize = AV_ERROR_MAX_STRING_SIZE;
#else
using FFmpegBitRate = int;
constexpr size_t FFmpegErrorMaxStringSize = 64;
#endif
nsCString MakeErrorString(const FFmpegLibWrapper* aLib, int aErrNum);
template <typename T, typename F>
void IterateZeroTerminated(const T& aList, F&& aLambda) {
for (size_t i = 0; aList[i] != 0; i++) {
aLambda(aList[i]);
}
}
inline bool IsVideoCodec(AVCodecID aCodecID) {
switch (aCodecID) {
case AV_CODEC_ID_H264:
#if LIBAVCODEC_VERSION_MAJOR >= 54
case AV_CODEC_ID_VP8:
#endif
#if LIBAVCODEC_VERSION_MAJOR >= 55
case AV_CODEC_ID_VP9:
#endif
#if LIBAVCODEC_VERSION_MAJOR >= 59
case AV_CODEC_ID_AV1:
#endif
return true;
default:
return false;
}
}
} // namespace mozilla
#endif // DOM_MEDIA_PLATFORMS_FFMPEG_FFMPEGUTILS_H_