Age | Commit message (Collapse) | Author |
|
It may happen that WaveView requests a range that is larger than
the data on disk.
If start > _length, cnt becomes negative and the function will throw
or segfault.
|
|
|
|
Generated by tools/f2s. Some hand-editing will be required in a few places to fix up comments related to timecode
and video in order to keep the legible
|
|
|
|
read_peaks_with_fpp() already holds _lock, build_peaks_from_scratch()
takes the _lock again.
Depending on glib[mm] and the threading lib it may either result in a
deadlock, or with EDEADLK in undefined behavior when a
non-recursive lock is released twice.
|
|
|
|
|
|
When embedding external files. the same file is queued twice for peak-file
generation. Since there are two peak_thread_work threas in SourceFactory,
this can lead to inconsistent/missing peaks.
TODO: fix the actual cause, duplicate call to setup_peakfile():
#0 ARDOUR::SourceFactory::setup_peakfile (s=..., async=true) at ../libs/ardour/source_factory.cc:116
#1 0x00007ffff6c2552f in ARDOUR::SourceFactory::createExternal (type=..., s=..., path="/tmp/CB_bass_Track08.wav", chn=0, flags=(unknown: 0), announce=true, defer_peaks=true)
at ../libs/ardour/source_factory.cc:254
#2 0x0000000000886f50 in Editor::embed_sndfiles (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, multifile=false, check_sample_rate=@0x7fffffffc2df: true,
disposition=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack, pos=@0x7fffffffc458: -1, target_regions=1, target_tracks=-1, track=..., instrument=...)
at ../gtk2_ardour/editor_audio_import.cc:630
#3 0x0000000000885c7c in Editor::do_embed (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, import_as=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack,
pos=@0x7fffffffc458: -1, instrument=...) at ../gtk2_ardour/editor_audio_import.cc:414
#4 0x0000000000e93aeb in SoundFileOmega::do_something (this=0x490f530, action=-5) at ../gtk2_ardour/sfdb_ui.cc:1983
#0 ARDOUR::SourceFactory::setup_peakfile (s=..., async=true) at ../libs/ardour/source_factory.cc:116
#1 0x0000000000888954 in Editor::add_sources (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, sources=std::vector of length 1, capacity 1 = {...},
pos=@0x7fffffffc458: 0, disposition=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack, target_regions=1, target_tracks=-1, track=..., instrument=...)
at ../gtk2_ardour/editor_audio_import.cc:883
#2 0x0000000000887131 in Editor::embed_sndfiles (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, multifile=false, check_sample_rate=@0x7fffffffc2df: true,
disposition=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack, pos=@0x7fffffffc458: 0, target_regions=1, target_tracks=-1, track=..., instrument=...)
at ../gtk2_ardour/editor_audio_import.cc:653
#3 0x0000000000885c7c in Editor::do_embed (this=0x3810340, paths=std::vector of length 1, capacity 1 = {...}, import_as=Editing::ImportDistinctFiles, mode=Editing::ImportAsTrack,
pos=@0x7fffffffc458: 0, instrument=...) at ../gtk2_ardour/editor_audio_import.cc:414
#4 0x0000000000e93aeb in SoundFileOmega::do_something (this=0x490f530, action=-5) at ../gtk2_ardour/sfdb_ui.cc:1983
|
|
|
|
|
|
|
|
Paul Davis was responsible for introducing almost all of this.
|
|
|
|
|
|
|
|
- copy old peak-files to new (do not require re-calc)
- keep old peak-files (for now, backwards compat)
- fix cleanup-sources to remove *new* peak-file
- include channel-number in hash (like it was done before)
see also 624f76b
TODO: add Session > Cleanup > remove/re-create peaks
|
|
Ardour-2.0 put peak-files in a "broken" location for several months.
Since then Ardour renamed those files. No more. When loading ancient
sessions peak-files are now re-created (in the background).
|
|
|
|
|
|
|
|
|
|
This is only really for Windows as g_open and ::open are the same thing on
other platforms
|
|
This was initially part of f89a976f that got reverted
|
|
non-English locale) make sure that we pass locale-specific paths"
This reverts commit f89a976f1a0477fba30bd7117310e6d04b370d68.
|
|
locale) make sure that we pass locale-specific paths
|
|
The size check (and possible rebuild) causes a crash with MSVC. It would be nice to know
more about why.
|
|
Remove AudioDiskstream and AudioSource _working_buffers_size members, since they are no longer used
|
|
|
|
necessary.
|
|
sure to reset expected_peaks and scale to match the corrected values
|
|
|
|
O_NOATIME removed due to what appears to be a bug in fuse where open fails.
O_NONBLOCK was basically unjustifiable.
|
|
|
|
|
|
Summary:
* use mmap() for the whole peakfile instead of lots of small seek/reads
* cache the computed peaks
* where possible, open files with O_NOATIME.
|
|
Attempt to make mistakes much less likely in the future by statically requiring
caller to pass scoped locks where necessary.
|
|
|
|
(yesterday's fix was needed in a 2nd place)
|
|
|
|
This was a very clever attempt to fix a non-problem. If the platform doesn't have enough file descriptors available
then the platform is broken and we're not going to hack around trying to fix it.
|
|
|
|
|
|
Conflicts (hopefully resolved):
gtk2_ardour/marker.cc
gtk2_ardour/midi_region_view.h
gtk2_ardour/region_gain_line.h
gtk2_ardour/utils.cc
gtk2_ardour/video_image_frame.cc
gtk2_ardour/wscript
libs/backends/jack/wscript
|
|
- bleeding clang (trunk 186535 v3.4) fails here
|
|
This reverts commit 7ef79d3f4b02e3d2e71d6888fbedd9b3f9c325c7.
|
|
|
|
|
|
|
|
|
|
- bleeding clang (trunk 186535 v3.4) fails here
|