public NLSBSteganographerDecoder(FileInDecodingStream audioFileStream, Stream dataFileStreamOut, byte[] key) { AudioFileStream = audioFileStream; DataFileStreamOut = dataFileStreamOut; Rng = new KeyedRng(key); AudioFileStream.MetadataCallback = MetadataCallback; }
private void CleanupDecoder() { dataFileStream.Close(); AudioFileInStream.Close(); AudioFileInStream = null; dataFileStream = null; AudioFileName = null; DataFileName = null; DisplayAudioFileBox.Invoke((Action <object>)(unused => DisplayAudioFileBox.Text = ""), 0); DisplayDataFileBox.Invoke((Action <object>)(unused => DisplayDataFileBox.Text = ""), 0); Decoder = null; }
private void SetupAudioStreams(int dataFileSize) { AudioFileInStream = new FileInDecodingStream(); //AudioFileInStream.InfoOutFile = InfoFileWriter; AudioFileInStream.Initialize(AudioFileName); AudioFileInStream.ProcessSingle(); AudioFileInStream.ClearReadData(); SetupOutputStream(dataFileSize); AudioFileInStream.Reset(); AudioFileInStream.MetadataCallback = NLSBSteganographerEncoder.MetadataCallback; AudioFileInStream.Initialize(AudioFileName); AudioFileInStream.ProgressCallback = ProgressCallback; MainWorkerThread = new Thread(new ParameterizedThreadStart(x => { Encoder.ProcessFile(WriteCallback); CleanupEncoder(); })); }
/** * <summary>audioFileStream must be initialized prior to passing * dataFileStream must be open prior to passing</summary> */ public NLSBSteganographerEncoder(FileInDecodingStream audioFileStream, Stream dataFileStream, byte[] key, int dataFileSize) { if ((audioFileStream.GetTotalSamples() * audioFileStream.GetChannels()) < ((uint)dataFileSize * 8)) { throw new InsufficientAudioException(); } AudioFileStream = audioFileStream; AudioFileStream.MetadataCallback = MetadataCallback; DataFileStream = dataFileStream; for (int i = 0; i < dataFileSize * 8; i++) { BitPermutationIndices.Add(i); } Rng = new KeyedRng(key); }
private void SetupDecoder(out Stream dataFileStream) { AudioFileInStream = new FileInDecodingStream(); AudioFileInStream.InfoOutFile = InfoFileWriter; AudioFileInStream.SetMetadataRespond(MetadataType.VorbisComment); SaveFileDialog dlg = new SaveFileDialog(); dlg.Filter = "All Files (*.*)|*.*"; dlg.ShowDialog(); if (dlg.FileName == "") { dataFileStream = null; return; } dataFileStream = new StreamWriter(dlg.FileName).BaseStream; Decoder = new NLSBSteganographerDecoder( AudioFileInStream, dataFileStream, KeyHelper.GenerateKeyFromUserInput() ); AudioFileInStream.Initialize(AudioFileName); AudioFileInStream.ProgressCallback = ProgressCallback; MainWorkerThread = new Thread(new ParameterizedThreadStart(x => { Decoder.ProcessFile(); CleanupDecoder(); })); }