aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
diff options
context:
space:
mode:
authorLuke Pulverenti <luke.pulverenti@gmail.com>2015-08-27 11:58:07 -0400
committerLuke Pulverenti <luke.pulverenti@gmail.com>2015-08-27 11:58:07 -0400
commit4ca526979ddb665ce905cd5943738a2c5657ab31 (patch)
tree9df3e2a5fc1dc11531b7798b988028ccf4dbd65f /MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
parent0e1b983ffc7bc07dec40551e6cfdfa9212a9a0df (diff)
3.0.5713.4
Diffstat (limited to 'MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs')
-rw-r--r--MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs26
1 files changed, 12 insertions, 14 deletions
diff --git a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
index 1005decb1..d30b105a5 100644
--- a/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
+++ b/MediaBrowser.MediaEncoding/Encoder/MediaEncoder.cs
@@ -248,8 +248,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
{
try
{
- //stream.KeyFrames = await GetKeyFrames(inputPath, stream.Index, cancellationToken)
- // .ConfigureAwait(false);
+ //stream.KeyFrames = await GetKeyFrames(inputPath, stream.Index, cancellationToken).ConfigureAwait(false);
}
catch (OperationCanceledException)
{
@@ -283,7 +282,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
private async Task<List<int>> GetKeyFrames(string inputPath, int videoStreamIndex, CancellationToken cancellationToken)
{
- const string args = "-i {0} -select_streams v:{1} -show_frames -show_entries frame=pkt_dts,key_frame -print_format compact";
+ const string args = "-i {0} -select_streams v:{1} -show_packets -print_format compact -show_entries packet=flags -show_entries packet=pts_time";
var process = new Process
{
@@ -318,7 +317,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
{
process.BeginErrorReadLine();
- await StartReadingOutput(process.StandardOutput.BaseStream, lines, 120000, cancellationToken).ConfigureAwait(false);
+ await StartReadingOutput(process.StandardOutput.BaseStream, lines, cancellationToken).ConfigureAwait(false);
}
catch (OperationCanceledException)
{
@@ -336,7 +335,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
}
}
- private async Task StartReadingOutput(Stream source, List<int> lines, int timeoutMs, CancellationToken cancellationToken)
+ private async Task StartReadingOutput(Stream source, List<int> lines, CancellationToken cancellationToken)
{
try
{
@@ -354,14 +353,15 @@ namespace MediaBrowser.MediaEncoding.Encoder
.Where(i => i.Length == 2)
.ToDictionary(i => i[0], i => i[1]);
- string pktDts;
- int frameMs;
- if (values.TryGetValue("pkt_dts", out pktDts) && int.TryParse(pktDts, NumberStyles.Any, CultureInfo.InvariantCulture, out frameMs))
+ string flags;
+ if (values.TryGetValue("flags", out flags) && string.Equals(flags, "k", StringComparison.OrdinalIgnoreCase))
{
- string keyFrame;
- if (values.TryGetValue("key_frame", out keyFrame) && string.Equals(keyFrame, "1", StringComparison.OrdinalIgnoreCase))
+ string pts_time;
+ double frameSeconds;
+ if (values.TryGetValue("pts_time", out pts_time) && double.TryParse(pts_time, NumberStyles.Any, CultureInfo.InvariantCulture, out frameSeconds))
{
- lines.Add(frameMs);
+ var ms = frameSeconds * 1000;
+ lines.Add(Convert.ToInt32(ms));
}
}
}
@@ -376,7 +376,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
_logger.ErrorException("Error reading ffprobe output", ex);
}
}
-
/// <summary>
/// The us culture
/// </summary>
@@ -802,7 +801,7 @@ namespace MediaBrowser.MediaEncoding.Encoder
public ProcessWrapper(Process process, MediaEncoder mediaEncoder, ILogger logger)
{
Process = process;
- this._mediaEncoder = mediaEncoder;
+ _mediaEncoder = mediaEncoder;
_logger = logger;
Process.Exited += Process_Exited;
}
@@ -819,7 +818,6 @@ namespace MediaBrowser.MediaEncoding.Encoder
}
catch (Exception ex)
{
- _logger.ErrorException("Error determing process exit code", ex);
}
lock (_mediaEncoder._runningProcesses)