1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-12 15:46:25 +01:00
Commit Graph

57 Commits

Author SHA1 Message Date
Paul Licameli
2626f6cd5b Exception safety in: subclasses of ImportFileHandle 2017-03-21 14:11:27 -04:00
Paul Licameli
53b9869268 Remove naked malloc (or similar) and free in: FFmpeg 2017-03-17 17:52:51 -04:00
Paul Licameli
aebaaf46a0 require unsigned arguments for Array(s)Of::reinit 2017-03-17 17:52:43 -04:00
Paul Licameli
aa0d55ac83 Use enum class ProgressResult, don't interconvert with int or bool 2017-03-17 17:52:24 -04:00
Paul Licameli
81285ee0c1 More const and override 2017-03-17 17:52:20 -04:00
Paul Licameli
a3d20c846a Don't invert 24 or 32 bit PCM files when reimported via FFmpeg libs 2017-03-01 21:50:45 +00:00
Paul Licameli
78be459fa1 Convert sampleCount <-> floating or -> long long explicitly ...
... A non-narrowing conversion out to long long is a necessity, but the
conversions to float and double are simply conveniences.

Conversion from floating is explicit, to avoid unintended consequences with
arithmetic operators, when later sampleCount ceases to be an alias for an
integral type.

Some conversions are not made explicit, where I expect to change the type of
the variable later to have mere size_t width.
2016-09-15 21:02:31 -04:00
Paul Licameli
d783762737 Remove unnecessary std::move in return statements...
... and comment where it is necessary.
2016-09-15 07:39:46 -04:00
Paul Licameli
0b31690ace Return wide type from ImportFileHandle::GetFileUncompressedBytes()...
... and use override.  But this function isn't (yet?) used anywhere.
2016-09-06 12:39:57 -04:00
Paul Licameli
79c79f9cd3 Remove many mentions of sampleCount with auto and decltype...
... This makes much code agnostic about how other things (functions and
arguments) are typed.

Many of these neeed to become size_t instead of sampleCount.
2016-08-24 14:50:45 -04:00
Paul Licameli
1281f1b14b Common function limits buffer size to sampleCount known to be small 2016-08-23 12:46:10 -04:00
Paul Licameli
4011eba627 Fix bug in disabled experimental code...
a * had got replaced with , and no compiler error!
2016-08-21 08:51:42 -04:00
Paul Licameli
28f0b11376 Use arrays of smart pointers to import plugins 2016-08-11 11:51:33 -04:00
Paul Licameli
7d89e5ff68 Pass containers by ref to import plugin factories, use STL idiom 2016-08-11 11:51:33 -04:00
Paul Licameli
924df495ff Make headers in import directory self-contained 2016-08-11 11:51:33 -04:00
Paul Licameli
473e955da3 Remove some naked new amd delete in: ondemand 2016-08-08 07:53:28 -04:00
Paul Licameli
fd2e36e0c8 Remove some naked new amd delete in: FFmpeg 2016-08-08 07:51:24 -04:00
Paul Licameli
24df87bb4c Fix resource leaks in the usage of the FFMPEG library with RAII objects...
... This includes failure paths in the initialization if import.  Those
resources would have been reclaimed before program exit, but not as soon as
they should have been.

... This also includes certain leaks that would happen every time a file is
successfully imported or exported.  We never used avformat_free_context or
av_dict_free as we should have!

... There were also AVPacket objects repeatedly reinitialized without proper
cleanups in between.  That might have leaked memory too.
2016-04-13 20:31:54 -04:00
Paul Licameli
59af732763 Mac build fixes; and implement deleters for our imitation unique_ptr 2016-04-10 14:15:51 -04:00
Paul Licameli
9c18d3853d ImportFileHandle::GetStreamInfo returns reference. Don't dereference NULLs. 2016-04-09 16:18:29 -04:00
Paul Licameli
7c0073dd77 Unreported bug: memory and file handle leak when importing custom mpeg...
I could see this on windows:

Import a file such as .aiff format, while "Files of type:"
reads "FFmpeg-compatible files".
Leave Audacity running.
Attempt to delete the file in Windows Exploerer.
Get a message from Windows that the file is in use by Audacity and cannot be
deleted.
2016-04-09 00:21:38 -04:00
Paul Licameli
e6e7b73043 ImportFileHandles 2016-04-06 14:56:04 -04:00
Paul Licameli
c2457c2067 mac build 2016-04-02 01:22:52 -04:00
Paul Licameli
cbd561be7d Make EXPERIMENTAL_OD_FFMPEG compilable, and change some memory management 2016-04-02 00:02:52 -04:00
Paul Licameli
824ff647f8 Import functions return containers of smart pointers to new tracks 2016-03-26 15:41:27 -04:00
Paul Licameli
5ef4dd46a5 TrackFactory functions return std::unique_ptr, although some callers...
... release() them for now.
2016-03-26 11:50:12 -04:00
Paul Licameli
7824e94030 Harmlessly qualify classes as final (or explicitly comment not)...
... Should have no effect on generated code, except perhaps some slight faster
virtual function calls.  Mostly useful as documentation of design intent.

Tried to mark every one of our classes that inherits from another, or is a
base for others, or has abstract virtual functions, and a few others besides.
2016-02-24 20:58:30 -05:00
Paul Licameli
d21c0aa478 Sweep unnecessary wxString copies: import 2016-02-22 22:13:50 -05:00
Paul Licameli
dbaa811577 Stack-allocate where possible! ...
... Removed many unnecessary naked news and deletes.
2016-02-17 18:15:57 -05:00
Paul Licameli
7c4c45a0d5 "new"->"NEW" in comments, easier to find remaining naked operator new 2016-02-14 18:52:41 -05:00
Paul Licameli
56e7653343 "delete"->"DELETE" in comments, easier to find remaining naked operator delete 2016-02-14 18:50:45 -05:00
Paul Licameli
9c483e2e86 Add (redundant) #include "Experimental.h" in all .cpp files using the symbols 2015-08-31 17:56:10 -04:00
Daniel Winzen
92d522132e Variable cleanup 2015-04-23 18:30:38 +02:00
james.k.crook@gmail.com
8a9987a0d9 From: martin@steghoefer.eu [PATCHES 02-15 of 15] Fix runtime problem with wxWidgets 3.0:
Correct string formatting for:
2/15  %d + enum => %d + int
3/15  %lld + int64_t => %lld + long long
4/15  %d + int64_t => %lld + long long
5/15  %d + double => %f + double
6/15  %d + int32_t => %d + int
7/15  %d + intptr_t => %p + void*
8/15  gint, guint
9/15  %d + long => %ld + long
10/15 %n + int => %d + int
11/15 %x + int => %x + unsigned int
12/15 %f + int => %d + int
13/15 %S + wxChar* => %s + wxChar*
14/15 %d + size_t => %d + int
15/15 %d + size_t => %lld + long long

"The functions wxString::Format, wxString::Printf (and others indirectly) have become stricter about parameter types that don't match (format specifier vs. function parameters). So the bugs (that were already present in audacity before) become visible in wx3.0 as error message dialogs. I've checked all occurrences of Printf, wxPrintf, PrintfV, Format, FormatV, wxLogDebug and wxLogError systematically and made the type match."

Note (9/15): In TrackPanel.cpp, ExportMP2.cpp and CompareAudioCommand.cpp this patch supersedes related change done in r13466 because the new solution requires fewer casts and therefore simplifies the code.

Note: Many .po files are affected, and we need to be very careful about this.  Incorrect "%d" and similar in translation files may lead to crashes in those languages (only).  This is something we should actually have been more careful about in the past.  We need to write a script to check that the "%d" and similar format specifiers match between English and translation.
2014-11-08 16:42:34 +00:00
benjamin.drung@gmail.com
4d4580a042 FFmpeg: Replace long deprecated functions by current ones. 2014-05-31 14:01:57 +00:00
benjamin.drung@gmail.com
33b9e9336f FFmpeg: Replace deprecated av_close_input_file by avformat_close_input. 2014-05-29 15:50:47 +00:00
benjamin.drung@gmail.com
b556d83c54 Fix indentation (to multiple of three) and remove trailing spaces. 2014-05-27 22:06:58 +00:00
benjamin.drung@gmail.com
0a1999130d Drop compatibility for libav/FFmpeg < 0.7. 2014-05-25 21:08:58 +00:00
benjamin.drung@gmail.com
463da8e816 Add support for libav 9. 2014-05-23 20:43:08 +00:00
benjamin.drung@gmail.com
5ae8679e3c fix random fixed buffer size and add quick and simple planar import support
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Benjamin Drung <bdrung@debian.org>
2014-05-23 20:27:54 +00:00
benjamin.drung@gmail.com
f8be1f9668 Make audacity build with ffmpeg HEAD
This still depends on internal API
And is missing planar Audio support, so not all formats work
also the fixed size audio buffer has to be removed

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Benjamin Drung <bdrung@debian.org>
2014-05-23 20:25:50 +00:00
RichardAsh1981@gmail.com
991969cab8 Apply parts of a warning supression patch by Campbell Barton 2013-09-12 16:52:30 +00:00
james.k.crook@gmail.com
dba81b3f1c Cleanup: Fixed lots of trivial MSVC warnings. 2013-08-25 21:51:26 +00:00
v.audacity
a30cc8930e Gale Andrews fix for bug 338 2012-10-11 00:52:10 +00:00
v.audacity
ebb4f530bb Apparently, wxConfigBase::Write() does not update values for next access on all platforms unless Flush() method is called. Added many calls to wxConfigBase::Flush() to make sure the Rad() calls get the right values. 2012-08-02 06:03:19 +00:00
mchinen
80a2b68bcf Fix warnings for OD ffmpeg 2012-06-01 06:11:21 +00:00
mchinen
3dd37349fc add on demand preference to library pane 2012-06-01 06:11:15 +00:00
mchinen
816b58bc08 integrate OD FFmpeg to work with multiple formats, including wav
also move streamContext to ffmpeg.h to allow for refactoring of import code
2012-06-01 06:11:07 +00:00
mchinen
682759d965 Bug 467 (P3) fix - Audacity fails to build with latest FFmpeg/libav. Main patch by Leland Lucius with modification from Benjamin Drung. 2012-01-21 08:01:32 +00:00
lllucius
f50be91900 Bug #176 - Support newer versions of FFmpeg.
Also includes Benjamin's ffmpeg-configure-v2.patch.
2011-04-02 02:10:50 +00:00