aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Api
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Api')
-rw-r--r--MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs6
-rw-r--r--MediaBrowser.Api/Playback/StreamRequest.cs23
-rw-r--r--MediaBrowser.Api/Playback/StreamState.cs92
3 files changed, 18 insertions, 103 deletions
diff --git a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
index b3099e17e..a488576da 100644
--- a/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
+++ b/MediaBrowser.Api/Playback/Hls/DynamicHlsService.cs
@@ -936,10 +936,10 @@ namespace MediaBrowser.Api.Playback.Hls
var timeDeltaParam = string.Empty;
- if (isEncoding && startNumber > 0)
+ if (isEncoding && state.TargetFramerate > 0)
{
- var startTime = state.SegmentLength * startNumber;
- timeDeltaParam = string.Format("-segment_time_delta -{0}", startTime);
+ float startTime = 1 / (state.TargetFramerate.Value * 2);
+ timeDeltaParam = string.Format("-segment_time_delta {0}", Math.Round(startTime, 3));
}
var segmentFormat = GetSegmentFileExtension(state.Request).TrimStart('.');
diff --git a/MediaBrowser.Api/Playback/StreamRequest.cs b/MediaBrowser.Api/Playback/StreamRequest.cs
index da1f00c3e..7626cc378 100644
--- a/MediaBrowser.Api/Playback/StreamRequest.cs
+++ b/MediaBrowser.Api/Playback/StreamRequest.cs
@@ -9,29 +9,6 @@ namespace MediaBrowser.Api.Playback
/// </summary>
public class StreamRequest : BaseEncodingJobOptions
{
- /// <summary>
- /// Gets or sets the id.
- /// </summary>
- /// <value>The id.</value>
- [ApiMember(Name = "Id", Description = "Item Id", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
- public Guid Id { get; set; }
-
- [ApiMember(Name = "MediaSourceId", Description = "The media version id, if playing an alternate version", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
- public string MediaSourceId { get; set; }
-
- [ApiMember(Name = "DeviceId", Description = "The device id of the client requesting. Used to stop encoding processes when needed.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
- public string DeviceId { get; set; }
-
- [ApiMember(Name = "Container", Description = "Container", IsRequired = true, DataType = "string", ParameterType = "path", Verb = "GET")]
- public string Container { get; set; }
-
- /// <summary>
- /// Gets or sets the audio codec.
- /// </summary>
- /// <value>The audio codec.</value>
- [ApiMember(Name = "AudioCodec", Description = "Optional. Specify a audio codec to encode to, e.g. mp3. If omitted the server will auto-select using the url's extension. Options: aac, mp3, vorbis, wma.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
- public string AudioCodec { get; set; }
-
[ApiMember(Name = "DeviceProfileId", Description = "Optional. The dlna device profile id to utilize.", IsRequired = false, DataType = "string", ParameterType = "query", Verb = "GET")]
public string DeviceProfileId { get; set; }
diff --git a/MediaBrowser.Api/Playback/StreamState.cs b/MediaBrowser.Api/Playback/StreamState.cs
index 400ad47cc..96dc4ab4c 100644
--- a/MediaBrowser.Api/Playback/StreamState.cs
+++ b/MediaBrowser.Api/Playback/StreamState.cs
@@ -92,76 +92,60 @@ namespace MediaBrowser.Api.Playback
}
}
- public int HlsListSize => 0;
-
public string UserAgent { get; set; }
public StreamState(IMediaSourceManager mediaSourceManager, ILogger logger, TranscodingJobType transcodingType)
- : base(logger, mediaSourceManager, transcodingType)
+ : base(transcodingType)
{
_mediaSourceManager = mediaSourceManager;
_logger = logger;
}
- public string MimeType { get; set; }
-
public bool EstimateContentLength { get; set; }
public TranscodeSeekInfo TranscodeSeekInfo { get; set; }
- public long? EncodingDurationTicks { get; set; }
-
- public string GetMimeType(string outputPath, bool enableStreamDefault = true)
- {
- if (!string.IsNullOrEmpty(MimeType))
- {
- return MimeType;
- }
-
- return MimeTypes.GetMimeType(outputPath, enableStreamDefault);
- }
-
public bool EnableDlnaHeaders { get; set; }
- public void Dispose()
+ public override void Dispose()
{
DisposeTranscodingThrottler();
- DisposeLiveStream();
DisposeLogStream();
+ DisposeLiveStream();
TranscodingJob = null;
}
- private void DisposeLogStream()
+ private void DisposeTranscodingThrottler()
{
- if (LogFileStream != null)
+ if (TranscodingThrottler != null)
{
try
{
- LogFileStream.Dispose();
+ TranscodingThrottler.Dispose();
}
catch (Exception ex)
{
- _logger.LogError(ex, "Error disposing log stream");
+ _logger.LogError(ex, "Error disposing TranscodingThrottler");
}
- LogFileStream = null;
+ TranscodingThrottler = null;
}
}
- private void DisposeTranscodingThrottler()
+ private void DisposeLogStream()
{
- if (TranscodingThrottler != null)
+ if (LogFileStream != null)
{
try
{
- TranscodingThrottler.Dispose();
+ LogFileStream.Dispose();
}
catch (Exception ex)
{
- _logger.LogError(ex, "Error disposing TranscodingThrottler");
+ _logger.LogError(ex, "Error disposing log stream");
}
- TranscodingThrottler = null;
+ LogFileStream = null;
}
}
@@ -180,58 +164,12 @@ namespace MediaBrowser.Api.Playback
}
}
- public string OutputFilePath { get; set; }
-
- public string ActualOutputVideoCodec
- {
- get
- {
- var codec = OutputVideoCodec;
-
- if (string.Equals(codec, "copy", StringComparison.OrdinalIgnoreCase))
- {
- var stream = VideoStream;
-
- if (stream != null)
- {
- return stream.Codec;
- }
-
- return null;
- }
-
- return codec;
- }
- }
-
- public string ActualOutputAudioCodec
- {
- get
- {
- var codec = OutputAudioCodec;
-
- if (string.Equals(codec, "copy", StringComparison.OrdinalIgnoreCase))
- {
- var stream = AudioStream;
-
- if (stream != null)
- {
- return stream.Codec;
- }
-
- return null;
- }
-
- return codec;
- }
- }
-
public DeviceProfile DeviceProfile { get; set; }
public TranscodingJob TranscodingJob;
- public override void ReportTranscodingProgress(TimeSpan? transcodingPosition, float framerate, double? percentComplete, long bytesTranscoded, int? bitRate)
+ public void ReportTranscodingProgress(TimeSpan? transcodingPosition, float? framerate, double? percentComplete, long? bytesTranscoded, int? bitRate)
{
- ApiEntryPoint.Instance.ReportTranscodingProgress(TranscodingJob, this, transcodingPosition, 0, percentComplete, 0, bitRate);
+ ApiEntryPoint.Instance.ReportTranscodingProgress(TranscodingJob, this, transcodingPosition, framerate, percentComplete, bytesTranscoded, bitRate);
}
}
}