[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Traverso-commit] traverso/src/core AudioClip.cpp ReadSource.cpp ...
From: |
Remon Sijrier |
Subject: |
[Traverso-commit] traverso/src/core AudioClip.cpp ReadSource.cpp ... |
Date: |
Thu, 29 Nov 2007 13:17:30 +0000 |
CVSROOT: /sources/traverso
Module name: traverso
Changes by: Remon Sijrier <r_sijrier> 07/11/29 13:17:30
Modified files:
src/core : AudioClip.cpp ReadSource.cpp ReadSource.h
Log message:
* ReadSource: assign error values to m_error, fixes detection of file
name changed or removed problem.
* only create m_peak if the readsource was valid
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/AudioClip.cpp?cvsroot=traverso&r1=1.155&r2=1.156
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ReadSource.cpp?cvsroot=traverso&r1=1.82&r2=1.83
http://cvs.savannah.gnu.org/viewcvs/traverso/src/core/ReadSource.h?cvsroot=traverso&r1=1.43&r2=1.44
Patches:
Index: AudioClip.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/AudioClip.cpp,v
retrieving revision 1.155
retrieving revision 1.156
diff -u -b -r1.155 -r1.156
--- AudioClip.cpp 29 Nov 2007 11:04:07 -0000 1.155
+++ AudioClip.cpp 29 Nov 2007 13:17:30 -0000 1.156
@@ -713,8 +713,10 @@
if (m_peak) {
m_peak->close();
}
+ if (m_isReadSourceValid) {
m_peak = new Peak(rs);
}
+ }
emit stateChanged();
}
Index: ReadSource.cpp
===================================================================
RCS file: /sources/traverso/traverso/src/core/ReadSource.cpp,v
retrieving revision 1.82
retrieving revision 1.83
diff -u -b -r1.82 -r1.83
--- ReadSource.cpp 24 Nov 2007 15:56:15 -0000 1.82
+++ ReadSource.cpp 29 Nov 2007 13:17:30 -0000 1.83
@@ -214,6 +214,10 @@
return (m_error = INVALID_CHANNEL_COUNT);
}
+ if ( ! QFile::exists(m_fileName)) {
+ return (m_error = FILE_DOES_NOT_EXIST);
+ }
+
m_rbReady = 0;
m_needSync = 0;
m_syncInProgress = 0;
@@ -227,7 +231,7 @@
PERROR("ReadSource:: audio reader is not valid! (reader channel
count: %d, nframes: %d", m_audioReader->get_num_channels(),
m_audioReader->get_nframes());
delete m_audioReader;
m_audioReader = 0;
- return COULD_NOT_OPEN_FILE;
+ return (m_error = COULD_NOT_OPEN_FILE);
}
int converter_type = config().get_property("Conversion",
"RTResamplingConverterType", 2).toInt();
@@ -244,7 +248,7 @@
PERROR("ReadAudioSource: file contains %d channels; only 2
channels are supported", m_channelCount);
delete m_audioReader;
m_audioReader = 0;
- return INVALID_CHANNEL_COUNT;
+ return (m_error = INVALID_CHANNEL_COUNT);
}
// Never reached, it's allready checked in
AbstractAudioReader::is_valid() which was allready called!
@@ -252,7 +256,7 @@
PERROR("ReadAudioSource: not a valid channel count: %d",
m_channelCount);
delete m_audioReader;
m_audioReader = 0;
- return ZERO_CHANNELS;
+ return (m_error = ZERO_CHANNELS);
}
m_rate = m_audioReader->get_file_rate();
@@ -363,17 +367,27 @@
int ReadSource::rb_read(audio_sample_t** dst, TimeRef& start, nframes_t count)
{
+// static int runcount;
+// runcount++;
if ( ! m_rbReady ) {
// printf("ringbuffer not ready\n");
return 0;
}
+ TimeRef diff = m_rbRelativeFileReadPos - start;
+ if (diff.universal_frame() > 0 && diff.to_frame(m_outputRate) == 0) {
+ m_rbRelativeFileReadPos = start;
+// printf("diff == %d\n", diff.to_frame(m_outputRate));
+ }
+
if (start != m_rbRelativeFileReadPos) {
TimeRef availabletime(m_buffers.at(0)->read_space(),
m_outputRate);
+/* printf("rb_read:: m_rbRelativeFileReadPos, start: %lld,
%lld\n", m_rbRelativeFileReadPos.universal_frame(), start.universal_frame());
+ printf("rb_read:: availabletime %d\n",
availabletime.to_frame(m_outputRate));*/
- if ( (start > m_rbRelativeFileReadPos) &&
(m_rbRelativeFileReadPos + availabletime) > (start + TimeRef(count,
m_outputRate))) {
+ if ( (start > m_rbRelativeFileReadPos) &&
((m_rbRelativeFileReadPos + availabletime) > (start + TimeRef(count,
m_outputRate))) ) {
TimeRef advance = start - m_rbRelativeFileReadPos;
if (availabletime < advance) {
@@ -384,6 +398,8 @@
}
m_rbRelativeFileReadPos += advance;
+// printf("rb_read:: advance %d\n",
advance.to_frame(m_outputRate));
+// printf("rb_read:: m_rbRelativeFileReadPos after advance
%d\n", m_rbRelativeFileReadPos.to_frame(m_outputRate));
} else {
TimeRef synclocation = start +
m_clip->get_track_start_location() + m_clip->get_source_start_location();
start_resync(synclocation);
@@ -404,6 +420,8 @@
}
m_rbRelativeFileReadPos.add_frames(readcount, m_outputRate);
+/* if (runcount < 20)
+ printf("rb_read:: m_rbRelativeFileReadPos after add_frames
%lld\n", m_rbRelativeFileReadPos.universal_frame());*/
return readcount;
}
@@ -457,6 +475,7 @@
m_rbFileReadPos = fileposition;
m_rbRelativeFileReadPos = fileposition;
+// printf("rb_seek_to_file_position:: m_rbRelativeFileReadPos,
synclocation: %d, %d\n", m_rbRelativeFileReadPos.to_frame(m_outputRate),
fileposition.to_frame(m_outputRate));
}
Index: ReadSource.h
===================================================================
RCS file: /sources/traverso/traverso/src/core/ReadSource.h,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -b -r1.43 -r1.44
--- ReadSource.h 29 Nov 2007 11:09:08 -0000 1.43
+++ ReadSource.h 29 Nov 2007 13:17:30 -0000 1.44
@@ -47,7 +47,7 @@
COULD_NOT_OPEN_FILE = -1,
INVALID_CHANNEL_COUNT = -2,
ZERO_CHANNELS = -3,
- CHANNELCOUNT_FILECOUNT_MISMATCH = -4
+ FILE_DOES_NOT_EXIST = -4
};
ReadSource* deep_copy();
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Traverso-commit] traverso/src/core AudioClip.cpp ReadSource.cpp ...,
Remon Sijrier <=