1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-09 00:21:16 +02:00

56 Commits

Author SHA1 Message Date
Paul Licameli
8935fa106f Replace deprecated std::mem_fun and mem_fun_ref with mem_fn...
... which is easier to type and works whether you pass object pointers or
references to its operator ().
2018-07-28 10:59:08 -04:00
Paul Licameli
a9e7a7e5d5 movable_ptr(_with_deleter) -> std::unique_ptr 2018-05-10 00:56:37 -04:00
Paul Licameli
b8a8712ba0 make_movable -> std::make_unique 2018-05-10 00:56:36 -04:00
Paul Licameli
4d978bcefb Use wxPrintf not printf 2017-12-16 11:54:32 -05:00
Paul Licameli
1126925438 Remove naked malloc (or similar) and free in: various 2017-03-17 17:52:54 -04:00
Paul Licameli
e7c0862546 Fix compilation of EXPERIMENTAL_OD_FFMPEG 2017-03-17 17:52:17 -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
ad04187a41 Change sampleCount arguments, variables, return values to size_t...
... whenever they really describe the size of a buffer that fits in memory, or
of a block file (which is never now more than a megabyte and so could be fit in
memory all at once), or a part thereof.
2016-09-15 21:03:17 -04:00
Paul Licameli
078ff056e2 Make many conversions sampleCount->size_t are explicit and checked...
... with run-time assertions.

I examined each place and reasoned that the narrowing was safe, and commented
why so.

Again, there are places where the sampleCount variable will later be changed
to have a different type, and they are not changed here.
2016-09-15 21:02:32 -04: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
26b5e77050 Define sampleCount as a class, not a type alias...
... Define lots of operators for disambiguation, but they will go away after
all conversions from sampleCount to built-in numerical types are forced
to be explicit.
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
67cec5ad83 Make many counts of tracks and channels unsigned...
... And in some places where a library uses signed types, assert that
the reported number is not negative.

What led me to this, is that there are many places where a size_t value for
an allocation is the product of a number of channels and some other number.
2016-09-07 10:11:41 -04:00
Paul Licameli
44d5d53a2f Comment another possibly problematic narrowing of sampleCount...
... Maybe it's safe, but if so the proof was not so evident from easy
inspection.
2016-08-29 20:07:43 -04:00
Paul Licameli
6043638e31 Another std::min, more auto & decltype, remove more casts 2016-08-29 20:07:43 -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
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
8392a57d34 Fix crash bug on on-demand ffmpeg decoding (an experimental) 2016-08-06 09:56:20 -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
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
c9d50dc20b ODTask cloners return smart pointers 2016-04-06 16:06:36 -04:00
Paul Licameli
539eb0edf6 Fix "memory leak" of decoder objects... though it wasn't really reachable...
... except with some EXPERIMENTAL flags turned on
2016-04-02 00:40:19 -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
990080ae7d Replace virtual with override wherever possible; eliminate needless virtual...
... for functions in final classes.

override is like const -- it's not necessary, but it helps the compiler to
catch mistakes.

There may be some overriding functions not explicitly declared virtual and I did
not identify such cases, in which I might also add override.
2016-02-26 12:35:38 -05: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
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
321d5259a2 More uses of SampleBuffer, eliminating explicit DeleteSamples calls 2016-02-01 10:16:00 -05:00
Daniel Winzen
92d522132e Variable cleanup 2015-04-23 18:30:38 +02:00
benjamin.drung@gmail.com
149fcafc1c Replace tabs by spaces. 2014-06-05 22:04:22 +00:00
benjamin.drung@gmail.com
277932dccb Remove trailing spaces. 2014-06-03 20:30:19 +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
0a1999130d Drop compatibility for libav/FFmpeg < 0.7. 2014-05-25 21:08:58 +00:00
RichardAsh1981@gmail.com
fc0cb41356 fix the build of on-demand ffmpeg, disable the preference if FFmpeg support is not compiled in. Patch by Michael Chinen. This feature is currently off in experimental.h. 2013-05-25 15:36:04 +00:00
richardash1981
393129d9b9 fix the line endings on this file, and set svn:eol-style to native so they stay fixed 2013-01-01 15:54:53 +00:00
v.audacity
24af4febea Bug 539 (P2) - Audacity does not build if configured --without-ffmpeg
Revert to quick fix of r 11867. Steve reports Debian build error with r11868. Left that code in, because this should override it.
2012-07-25 06:20:17 +00:00
v.audacity
d90e6c5285 Bug 539 (P2) - Audacity does not build if configured --without-ffmpeg
more pinpointed fix that should close this
2012-07-25 02:00:48 +00:00
v.audacity
15f9695d18 Fix a compiler warning. 2012-07-16 23:46:20 +00:00
v.audacity
87610cea39 Benjamin Drung's disable-dynamic-lame.patch for http://bugzilla.audacityteam.org/show_bug.cgi?id=233 2012-06-25 01:41:57 +00:00
mchinen
b8f19b58d9 OD FFmpeg: disable seeking (caused issues on windows) 2012-06-17 13:33:13 +00:00
mchinen
a09fe983ed remove debug printfs 2012-06-01 06:11:54 +00:00
mchinen
c4f1a52413 OD FFmpeg: fix a bug with demand seeking by using a safer seek test 2012-06-01 06:11:49 +00:00
mchinen
1fb7a1dcee OD FFmpeg: do not attempt to correct stream lag unless a seek was demanded by user 2012-06-01 06:11:45 +00:00
mchinen
2aedaaa68d lazy evaluate for OD ffmpeg seek test 2012-06-01 06:11:41 +00:00
mchinen
77917b3268 change flushing case for OD ffmpeg 2012-06-01 06:11:36 +00:00
mchinen
e5520d0b7d fix case where DecodeFrame() was not returning errors 2012-06-01 06:11:31 +00:00
mchinen
f837c1fefd fix indentation 2012-06-01 06:11:26 +00:00
mchinen
80a2b68bcf Fix warnings for OD ffmpeg 2012-06-01 06:11:21 +00:00