blob: 3d41b8c1a36e96820f6ed6f4aebc0d23c9db9272 [file] [log] [blame]
// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef MEDIA_MUXERS_MP4_TYPE_CONVERSION_H_
#define MEDIA_MUXERS_MP4_TYPE_CONVERSION_H_
#include <string_view>
#include "base/time/time.h"
#include "media/base/media_export.h"
namespace media {
// Jan. 1, 1904, in UTC time, the epoch used in MP4.
// base::Time time1904;
// base::Time::FromUTCString("1904-01-01 00:00:00 UTC", &time1904);
// 9561628800000 = time1904.ToDeltaSinceWindowsEpoch().InSecondsF();
inline constexpr base::Time kMP4Epoch =
base::Time::FromDeltaSinceWindowsEpoch(base::Seconds(9561628800));
// "und" on ISO 639-2/T.
inline constexpr uint16_t kUndefinedLanguageCode = 0x55C4;
uint16_t MEDIA_EXPORT
ConvertIso639LanguageCodeToU16(const std::string_view input_language);
// Convert given default Time unit, e.g. 1000 milliseconds per 1 second, to
// a given timescale, timescale value per second.
uint64_t MEDIA_EXPORT ConvertToTimescale(base::TimeDelta time_diff,
uint32_t timescale);
} // namespace media
#endif // MEDIA_MUXERS_MP4_TYPE_CONVERSION_H_