2014-05-14 23:19:35 +00:00
|
|
|
// Copyright 2014 Google Inc. All rights reserved.
|
|
|
|
//
|
|
|
|
// Use of this source code is governed by a BSD-style
|
|
|
|
// license that can be found in the LICENSE file or at
|
|
|
|
// https://developers.google.com/open-source/licenses/bsd
|
|
|
|
//
|
|
|
|
// Muxer utility functions.
|
|
|
|
|
|
|
|
#ifndef MEDIA_BASE_MUXER_UTIL_H_
|
|
|
|
#define MEDIA_BASE_MUXER_UTIL_H_
|
|
|
|
|
2014-09-30 23:52:58 +00:00
|
|
|
#include <stdint.h>
|
2014-05-14 23:19:35 +00:00
|
|
|
|
2014-09-30 23:52:58 +00:00
|
|
|
#include <string>
|
2014-05-14 23:19:35 +00:00
|
|
|
|
2016-04-27 22:04:50 +00:00
|
|
|
#include "packager/media/base/key_source.h"
|
|
|
|
|
2016-05-20 21:19:33 +00:00
|
|
|
namespace shaka {
|
2014-05-14 23:19:35 +00:00
|
|
|
namespace media {
|
|
|
|
|
2016-04-27 22:04:50 +00:00
|
|
|
class StreamInfo;
|
|
|
|
|
2014-05-14 23:19:35 +00:00
|
|
|
/// Validates the segment template against segment URL construction rule
|
|
|
|
/// specified in ISO/IEC 23009-1:2012 5.3.9.4.4.
|
|
|
|
/// @param segment_template is the template to be validated.
|
|
|
|
/// @return true if the segment template complies with
|
|
|
|
// ISO/IEC 23009-1:2012 5.3.9.4.4, false otherwise.
|
|
|
|
bool ValidateSegmentTemplate(const std::string& segment_template);
|
|
|
|
|
|
|
|
/// Build the segment name from provided input.
|
|
|
|
/// @param segment_template is the segment template pattern, which should
|
|
|
|
/// comply with ISO/IEC 23009-1:2012 5.3.9.4.4.
|
|
|
|
/// @param segment_start_time specifies the segment start time.
|
|
|
|
/// @param segment_index specifies the segment index.
|
2014-06-27 23:07:36 +00:00
|
|
|
/// @param bandwidth represents the bit rate, in bits/sec, of the stream.
|
2014-05-14 23:19:35 +00:00
|
|
|
/// @return The segment name with identifier substituted.
|
|
|
|
std::string GetSegmentName(const std::string& segment_template,
|
2014-09-30 21:52:21 +00:00
|
|
|
uint64_t segment_start_time,
|
|
|
|
uint32_t segment_index,
|
|
|
|
uint32_t bandwidth);
|
2014-05-14 23:19:35 +00:00
|
|
|
|
2016-04-27 22:04:50 +00:00
|
|
|
/// Determine the track type for encryption from input.
|
|
|
|
/// @param stream_info is the info of the stream.
|
|
|
|
/// @param max_sd_pixels is the maximum number of pixels to be considered SD.
|
2016-11-11 23:17:17 +00:00
|
|
|
/// @param max_hd_pixels is the maximum number of pixels to be considered HD.
|
|
|
|
/// @param max_uhd1_pixels is the maximum number of pixels to be considered UHD1.
|
|
|
|
/// Anything above is UHD2.
|
2016-04-27 22:04:50 +00:00
|
|
|
/// @return track type for encryption.
|
|
|
|
KeySource::TrackType GetTrackTypeForEncryption(const StreamInfo& stream_info,
|
2016-11-11 23:17:17 +00:00
|
|
|
uint32_t max_sd_pixels,
|
|
|
|
uint32_t max_hd_pixels,
|
|
|
|
uint32_t max_uhd1_pixels);
|
2016-04-27 22:04:50 +00:00
|
|
|
|
2014-05-14 23:19:35 +00:00
|
|
|
} // namespace media
|
2016-05-20 21:19:33 +00:00
|
|
|
} // namespace shaka
|
2014-05-14 23:19:35 +00:00
|
|
|
|
|
|
|
#endif // MEDIA_BASE_MUXER_UTIL_H_
|