private void DisposeAudioDecoder(bool disposing) { if (_disposed) { return; } if (disposing) { _initialized = false; if (_mediaCodec != null) { _mediaCodec.Stop(); _mediaCodec.Release(); _mediaCodec.Dispose(); } if (_audioTrack != null) { _audioTrack.Stop(); _audioTrack.Release(); } } _initialized = false; _disposed = true; _encoderThread.Interrupt(); _decoderThread.Interrupt(); }
protected override void Dispose(bool disposing) { if (Control != null && videoView != null) { //videoView.Prepared -= OnVideoViewPrepared; } if (Element != null) { Element.UpdateStatus -= OnUpdateStatus; } rtspCancel.Cancel(); Thread.Sleep(100); try { codec.Stop(); } catch { } try { codec.Dispose(); } catch { } rtspCancel = null; codec = null; base.Dispose(disposing); }
public void Close() { Console.WriteLine("called Close at PlatformVideoDecoderAndroid Class."); try { if (callbackThread != null) { myCallback.isClosed = true; callbackThread.Looper.Quit(); callbackThread.Looper.Dispose(); callbackThread.Interrupt(); callbackThread.Dispose(); callbackThread = null; } if (handler != null) { handler.Dispose(); handler = null; } if (mDecoder != null) { mDecoder.Stop(); mDecoder.Release(); mDecoder.Dispose(); eosReceived = true; } } catch (Exception e) { Console.WriteLine(e.ToString()); } }
public void stop() { if (!running) { return; } running = false; lock (pendingFrames) { pendingFrames.Clear(); availableBuffers.Clear(); } if (audioDecoder != null) { try { audioDecoder.Stop(); audioDecoder.Release(); } catch (Exception) { } audioDecoder.Dispose(); audioDecoder = null; } }
public static void ReturnDecoder(string mime, MediaCodec decoder) { lock (_decoders) { if (!_decoders.TryGetValue(mime, out List <Entry> codecs)) { codecs = new List <Entry>(); _decoders.Add(mime, codecs); } if (codecs.Count > _maxDecodersInPool) { decoder.Dispose(); } else { codecs.Add(new Entry(decoder)); if (_allocationManager == null || _allocationManager.IsCompleted) { _allocationManager = Task.Factory.StartNew( RemoveUnusedCodecs, CancellationToken.None, TaskCreationOptions.LongRunning, TaskScheduler.Default); } } } }
public void stop() { if (!running) { return; } running = false; if (audioEncoder != null) { try { audioEncoder.Stop(); audioEncoder.Release(); } catch (Exception) { } audioEncoder.Dispose(); audioEncoder = null; } lock (availableBuffers) { availableBuffers.Clear(); } }
public void Dispose() { if (_videoCodec != null) { _videoCodec.Stop(); _videoCodec.Release(); _videoCodec.Dispose(); } _videoFrameQueue.Clear(); }
public void Dispose() { if (_audioCodec != null) { _audioCodec.Stop(); _audioCodec.Release(); _audioCodec.Dispose(); } _audioFrameQueue.Clear(); }
private void cleanUp() { running = false; if (audioRecorder != null) { try { audioRecorder.Stop(); audioRecorder.Release(); }catch (Exception) { } audioRecorder.Dispose(); audioRecorder = null; } if (audioEncoder != null) { try { audioEncoder.Stop(); audioEncoder.Release(); } catch (Exception) { } audioEncoder.Dispose(); audioEncoder = null; } buffer = null; bufferSize = 0; lock (outputBuffers) { outputBuffers.Clear(); } lock (availableBuffers) { availableBuffers.Clear(); } }
private void DisposeVideoDecoder(bool disposing) { if (_disposed) { return; } if (disposing) { if (_mediaCodec != null) { _mediaCodec.Stop(); _mediaCodec.Release(); _mediaCodec.Dispose(); } } Initialized = false; _disposed = true; }