public void RetrieveFrame(Frame frame) { Interlocked.Increment(ref _activeRetrieveThreads); try { string message = String.Format("Retrieving Frame (active threads: {0})", Thread.VolatileRead(ref _activeRetrieveThreads)); Trace.WriteLine(message); IStreamingSopDataSource dataSource = (IStreamingSopDataSource)frame.ParentImageSop.DataSource; IStreamingSopFrameData frameData = dataSource.GetFrameData(frame.FrameNumber); frameData.RetrievePixelData(); } catch (OutOfMemoryException) { Platform.Log(LogLevel.Error, "Out of memory trying to retrieve pixel data."); } catch (Exception e) { Platform.Log(LogLevel.Error, e, "Error retrieving frame pixel data."); } finally { Interlocked.Decrement(ref _activeRetrieveThreads); } }
public bool CanDecompressFrame(Frame frame) { if (!(frame.ParentImageSop.DataSource is StreamingSopDataSource)) { return(false); } StreamingSopDataSource dataSource = (StreamingSopDataSource)frame.ParentImageSop.DataSource; IStreamingSopFrameData frameData = dataSource.GetFrameData(frame.FrameNumber); return(frameData.PixelDataRetrieved); }
public bool CanRetrieveFrame(Frame frame) { var streamingFrame = frame.ParentImageSop.DataSource as StreamingSopDataSource; if (streamingFrame == null) { return(false); } IStreamingSopFrameData frameData = streamingFrame.GetFrameData(frame.FrameNumber); return(!frameData.PixelDataRetrieved); }
private void RetrieveFrame(IFrameReference frameReference) { try { Frame frame = frameReference.Frame; IStreamingSopFrameData frameData = (IStreamingSopFrameData)frame.ParentImageSop.DataSource.GetFrameData(frame.FrameNumber); frameData.RetrievePixelData(); _framesToDecompress.Add(frameReference); _synchronizationContext.Post(OnRetrievedFrame, frameData.LastRetrievePerformanceInfo); } catch (Exception e) { frameReference.Dispose(); Platform.Log(LogLevel.Error, e); } }
public void RetrieveFrame(Frame frame) { Interlocked.Increment(ref _activeRetrieveThreads); try { IStreamingSopDataSource dataSource = (IStreamingSopDataSource)frame.ParentImageSop.DataSource; IStreamingSopFrameData frameData = dataSource.GetFrameData(frame.FrameNumber); frameData.RetrievePixelData(); } catch (OutOfMemoryException) { Platform.Log(LogLevel.Error, "Out of memory trying to retrieve pixel data."); } catch (Exception e) { Platform.Log(LogLevel.Error, e, "Error retrieving frame pixel data."); } finally { Interlocked.Decrement(ref _activeRetrieveThreads); } }