in src/main/java/com/amazonaws/kinesisvideo/parser/utilities/ProducerStreamUtil.java [103:143]
private static StreamInfo getCameraStreamInfo(
final String streamName,
final MediaSourceConfiguration mediaSourceConfiguration) throws KinesisVideoException {
final CameraMediaSourceConfiguration configuration =
(CameraMediaSourceConfiguration) mediaSourceConfiguration;
// Need to fix-up the content type as the Console playback only accepts video/h264 and will fail
// if the mime type is video/avc which is the default in Android.
String contentType = configuration.getEncoderMimeType();
if (contentType.equals("video/avc")) {
contentType = "video/h264";
}
return new StreamInfo(VERSION_ZERO,
streamName,
StreamInfo.StreamingType.STREAMING_TYPE_REALTIME,
contentType,
NO_KMS_KEY_ID,
configuration.getRetentionPeriodInHours() * HUNDREDS_OF_NANOS_IN_AN_HOUR,
NOT_ADAPTIVE,
MAX_LATENCY_ZERO,
DEFAULT_GOP_DURATION * HUNDREDS_OF_NANOS_IN_A_MILLISECOND,
KEYFRAME_FRAGMENTATION,
USE_FRAME_TIMECODES,
configuration.getIsAbsoluteTimecode(),
REQUEST_FRAGMENT_ACKS,
RECOVER_ON_FAILURE,
StreamInfo.codecIdFromContentType(configuration.getEncoderMimeType()),
StreamInfo.createTrackName(configuration.getEncoderMimeType()),
configuration.getBitRate(),
configuration.getFrameRate(),
DEFAULT_BUFFER_DURATION_IN_SECONDS * HUNDREDS_OF_NANOS_IN_A_SECOND,
DEFAULT_REPLAY_DURATION_IN_SECONDS * HUNDREDS_OF_NANOS_IN_A_SECOND,
DEFAULT_STALENESS_DURATION_IN_SECONDS * HUNDREDS_OF_NANOS_IN_A_SECOND,
configuration.getTimeScale() / NANOS_IN_A_TIME_UNIT,
RECALCULATE_METRICS,
configuration.getCodecPrivateData(),
getTags(),
configuration.getNalAdaptationFlags());
}