Commit graph

1441 commits

Author SHA1 Message Date
Amar Takhar c2267bedcc Plug a bunch of memory leaks from uau in the mplayer2 repo: http://repo.or.cz/w/mplayer.git?a=commit;h=312d9e4b104741b834aa5d71b02228d0cd988a4e
libass: Fix cache lookup problem causing memory bloat

The cache code did hash lookups by storing key values in struct fields
and then hashing and comparing the struct as a single memory block. In
at least one case such a struct contained uninitialized padding bytes
which prevented the complete memory area of the struct from matching
even though the fields did. As a result the code failed to find
existing objects in the cache and stored new versions of them, causing
gigabytes of memory use in some circumstances. Initializing the struct
memory to zero before writing the fields avoided such memory use in
tests but is not guaranteed to work if I interpret the C standard
correctly (the compiler is allowed to write garbage over padding bytes
when changing struct member values).

Change the code to use struct-specific hashing and comparison
functions that work field by field to guarantee correct behavior.
Create these by replacing the struct definition with a template that
lists the fields and can be used the generate each of struct
definition, hash function and compare function with some preprocessor
magic (otherwise every field would need to be listed separately in all
three).

Originally committed to SVN as r2895.
2009-05-04 06:48:21 +00:00
Fredrik Mellbin b55460ede5 FFMS2:
Fix an old bug that would drop the first or second video frame
Greatly improved audio decoding by adding a small internal cache

Originally committed to SVN as r2894.
2009-05-03 19:25:54 +00:00
Karl Blomster c84a79fb7f Implemented an automated cache cleaner that keeps the FFMS2 index cache at a manageable size. Cleaning is started when video is opened with the FFMS2 video provider and runs in its own thread. Removal is based on last access time, and the FFMS2 providers now explicitly touch the index files on reading to make sure access time is updated.
By default the cache is kept below 42MB and 20 files; to change the defaults change "FFmpegSource max cache size" and "FFmpegSource max cache files" in config.dat. Either or both may be set to 0, but the cleaner will not delete the last index file in the directory, regardless of cache settings and of the file's size.

Originally committed to SVN as r2893.
2009-05-03 18:05:30 +00:00
Karl Blomster 0a4190ca98 Fix compilation breakage introduced in r2891.
Originally committed to SVN as r2892.
2009-05-02 20:06:06 +00:00
Karl Blomster 04e4249219 Don't let the MKV parser crash on certain MKV's for which it cannot determine the filesize by itself. (Adaption of Myrsloik's similar fix for FFMS2.)
Originally committed to SVN as r2891.
2009-05-02 19:40:55 +00:00
Fredrik Mellbin 94cf1e4c22 FFMS2: Add a missing function the updated matroska parser expects
Originally committed to SVN as r2890.
2009-05-01 16:58:15 +00:00
Amar Takhar 35cea05304 Add an sh script to generate snap tarballs upon successful builds of UNIX platforms (excluding Darwin).
Originally committed to SVN as r2889.
2009-05-01 03:58:23 +00:00
Niels Martin Hansen 7e38ebfd82 Ensure some fields in VideoContext get initialised.
Originally committed to SVN as r2888.
2009-04-30 22:13:10 +00:00
Karl Blomster 341fc0c019 Re-update the license on Haali's matroska parser.
Originally committed to SVN as r2887.
2009-04-29 21:19:45 +00:00
Amar Takhar 68b382994b Update libass from MPlayer r29129: Don't automatically wrap lines when WrapStyle==2.
Originally committed to SVN as r2886.
2009-04-29 21:06:54 +00:00
Fredrik Mellbin 91735eb86d FFMS2: Update Haali's matroska parser
Originally committed to SVN as r2885.
2009-04-29 21:06:07 +00:00
Karl Blomster 33c31e3eee Update Haali's MatroskaParser.c/.h in the main source tree (there's a copy in the FFMS2 folder as well, which will be updated later). Should fix a crash with x264-generated MKV's.
Originally committed to SVN as r2884.
2009-04-29 21:00:08 +00:00
Niels Martin Hansen 866f9d21fc Let AudioProvider::GetAudioWithVolume() catch exceptions in AudioProvider::GetAudio() and return blank audio when that happens. Errors are not logged or otherwise handled. This fixes #800 for most cases, even if poorly.
Originally committed to SVN as r2883.
2009-04-29 19:30:02 +00:00
Niels Martin Hansen 92202a99bf Some more delayload vsprops files.
Originally committed to SVN as r2882.
2009-04-29 19:08:40 +00:00
Karl Blomster aacf2e4c19 remove duplicate variable
Originally committed to SVN as r2881.
2009-04-29 17:42:48 +00:00
Karl Blomster 1b2d26c231 Fix a few memory leaks in the FFMS2 providers. Patch by Myrsloik.
Originally committed to SVN as r2880.
2009-04-29 17:40:02 +00:00
Fredrik Mellbin 338188b184 FFMS2: Beta 7 release
Fix 3 gcc warnings

Originally committed to SVN as r2879.
2009-04-29 16:39:15 +00:00
Karl Blomster 7f44500c89 Don't fail to read subtitles from MKV's that are named .mks or .mka, both of those are reported as supported formats in the "open subtitles" dialog box.
Originally committed to SVN as r2878.
2009-04-29 14:04:23 +00:00
Amar Takhar 6eb56f60cd s/32/??/ to include 64bit builds (what was I thinking?).. it's better than using '*' which could lead to a disaster.
Originally committed to SVN as r2877.
2009-04-29 08:07:22 +00:00
Amar Takhar 56fee329a2 Use 'SetFile' instead of '/usr/bin/SetFile' when creating the .dmg, 10.5 puts it in /usr/bin, on 10.4 it's in /Developer/Tools/.
Originally committed to SVN as r2876.
2009-04-29 07:55:40 +00:00
Amar Takhar e1effd407d * Favour '/usr/bin/perl' over 'perl' to ensure the base perl is always used. (it's required)
Originally committed to SVN as r2875.
2009-04-29 06:50:08 +00:00
Amar Takhar 667f950176 * Re-format the arch detection case.
* Fix an annoying buy, I hate the loops configure gets stuck in when you do "$blah" = "$blah" vs test "$blah..

Originally committed to SVN as r2874.
2009-04-29 00:49:38 +00:00
Amar Takhar 5b3a60c506 * Add support in configure.in to detect the arch.
* Add two new targets, osx-tinderbox-(bundle|dmg) to handle tinderbox building.

Originally committed to SVN as r2873.
2009-04-28 23:25:42 +00:00
Amar Takhar 023f61bdbd Change the buildslave dist name to dist.7z so the waterfall isn't cluttered. There's a link to the archive so it won't be an issue.
Originally committed to SVN as r2872.
2009-04-28 17:59:03 +00:00
Karl Blomster 8c44d698e4 Don't try to synch audio when there is no audio player/provider present. (Could cause a crash under certain rare conditions.) Thanks Avi for report and fix.
Originally committed to SVN as r2871.
2009-04-28 10:23:20 +00:00
Amar Takhar 606abde1a3 Add a batch file to generate a distfile that can be uploaded.
Originally committed to SVN as r2870.
2009-04-28 07:04:53 +00:00
Amar Takhar f18ed0748b Remove an extra line (more testing.)
Originally committed to SVN as r2869.
2009-04-28 05:25:37 +00:00
Amar Takhar ec87d3c63a Remove some EOF whitespace (more testing.)
Originally committed to SVN as r2868.
2009-04-28 05:24:28 +00:00
Amar Takhar 5eaa033697 Remove some EOF whitespace.
Originally committed to SVN as r2867.
2009-04-28 05:21:23 +00:00
Amar Takhar d226cdf33c Add some error-checking and exit 1's.
Originally committed to SVN as r2866.
2009-04-28 05:17:33 +00:00
Amar Takhar 5de0558228 Add exit codes to various commands to ensure the script fails and doesn't proceed to the next step(s).
Originally committed to SVN as r2865.
2009-04-28 05:11:32 +00:00
Amar Takhar c12d2d7636 Testing the tinderbox (a stub commit but still useful.)
Originally committed to SVN as r2864.
2009-04-28 05:08:18 +00:00
Amar Takhar 3648f61083 Testing the tinderbox.
Originally committed to SVN as r2863.
2009-04-27 20:58:42 +00:00
Karl Blomster 51df55edd7 Fix some more minor editbox regressions introduced in r2859. Patch by Harukalover, updates #794
Originally committed to SVN as r2861.
2009-04-26 04:31:19 +00:00
Karl Blomster eed65e8945 Fix a minor graphical glitch in the time edit boxes introduced in r2859. Patch by Harukalover. updates #794
Originally committed to SVN as r2860.
2009-04-26 01:23:01 +00:00
Karl Blomster 31aed4c1a7 Fix a number of odd quirks regarding how grid selection is moved after committing multiple lines, and how audio selection moves after committing. See #794 for full details. Patch by Harukalover.
closes #64, #420, #794

Originally committed to SVN as r2859.
2009-04-26 01:02:23 +00:00
Karl Blomster 76cec3ec29 Fix a bug that would cause a crash under certain conditions when trying to change the properties of a recently deleted line. Patch by Plorkyeran, closes #815
Originally committed to SVN as r2858.
2009-04-26 00:25:33 +00:00
Karl Blomster 32eb3a8a62 Fix a bug that would cause the program to crash if CSRI was selected as subtitle renderer but no CSRI renderer was actually installed. Patch by Plorkyeran, closes: 462
Originally committed to SVN as r2857.
2009-04-26 00:11:29 +00:00
Karl Blomster 4dafa0ff10 Use less magic numbers
Originally committed to SVN as r2856.
2009-04-25 23:08:45 +00:00
Karl Blomster 4efd1b5567 Update ffms2.lib
Originally committed to SVN as r2855.
2009-04-25 23:04:06 +00:00
Amar Takhar 72c5828bc0 Sigh, add @set before the recently added environment variables (r2847)
Originally committed to SVN as r2854.
2009-04-25 23:00:29 +00:00
Fredrik Mellbin 140dc44882 FFMS2: Another much needed set of fixes to the Haali part
Originally committed to SVN as r2853.
2009-04-25 22:09:49 +00:00
Fredrik Mellbin a41e48a159 Fix the video provider after the FFMS2 changes part2
Originally committed to SVN as r2852.
2009-04-25 10:31:39 +00:00
Fredrik Mellbin f64b10978b Fix the video provider after the FFMS2 changes
Originally committed to SVN as r2851.
2009-04-25 09:26:03 +00:00
Fredrik Mellbin 8f7930e876 FFMS2: Even less enum forward declarations
Originally committed to SVN as r2850.
2009-04-25 09:09:14 +00:00
Fredrik Mellbin 6f6d1bdf3a FFMS2: Less enum forward declaration?
Originally committed to SVN as r2849.
2009-04-25 08:55:14 +00:00
Amar Takhar f8652576c8 Add CommonProgramFiles CommonProgramFiles(x86) ProgramFiles ProgramFiles(x86) to the build environment.
Originally committed to SVN as r2847.
2009-04-25 02:04:33 +00:00
Amar Takhar 57024a2e7c vc++ needs TMP/TEMP to be set in the env in order to work correctly.
Originally committed to SVN as r2846.
2009-04-24 23:23:48 +00:00
Fredrik Mellbin 6fae2955fd FFMS2:
Remove the dependency of pixfmt.h in ffms.h
Added the alternative FFMS_GetPixFmt() for getting the different pixel format values

Originally committed to SVN as r2845.
2009-04-24 19:56:19 +00:00
Karl Blomster aaad6b4ad6 Update ffms2.lib again
Originally committed to SVN as r2844.
2009-04-24 18:41:34 +00:00
Fredrik Mellbin 83586d2b18 FFMS2:
Several bugfixes which should fix crashes in recent versions
Added a simple regression test application
Removed a few useless functions from the API
Add TheFluff's FFmpegSource 1.21 syntax compatibility script

Originally committed to SVN as r2843.
2009-04-24 17:42:21 +00:00
Amar Takhar 45d6e37ee8 Whoops, remove trunk\ from the solution path.
Originally committed to SVN as r2842.
2009-04-24 04:16:01 +00:00
Amar Takhar c2e02322cf Add a bath file to compile aegisub, these will exist _per_ buildslave. It's probably better to keep it here anyway as build environments will not be changable without a historical record being kept. (it's also easier!)
Originally committed to SVN as r2841.
2009-04-24 04:00:04 +00:00
Amar Takhar fb36f6d4af Add a solution and windows config for Windows tinderbox building. Submitted by jfs, thanks!
Originally committed to SVN as r2840.
2009-04-23 20:26:07 +00:00
Karl Blomster 4c68bb5412 Updated German translation (by Sebastian Billau).
Originally committed to SVN as r2839.
2009-04-23 10:32:00 +00:00
Karl Blomster 53bc5a034d Avisynth video provider will now use ffmpegsource2 instead of ffmpegsource when so required.
Originally committed to SVN as r2838.
2009-04-23 02:09:05 +00:00
Fredrik Mellbin e42ae2d19d FFMS2: Various fixes to haali stuff
Originally committed to SVN as r2837.
2009-04-22 18:38:28 +00:00
Amar Takhar ff7ee2e776 Add a cross-compile condition to AC_RUN_IFELSE in AC_AGI_COMPILE to make cross-compiling work.
Originally committed to SVN as r2836.
2009-04-21 22:32:07 +00:00
Amar Takhar e2d0317df3 Bunk commit to trigger the build cluster.
Originally committed to SVN as r2835.
2009-04-21 18:48:59 +00:00
Amar Takhar af68c58f56 Add a command to autogen --skip-configure to allow the autogen/configure steps
to be split for the build tinderbox.

Originally committed to SVN as r2834.
2009-04-20 02:45:35 +00:00
Amar Takhar 544c325dde Fix typo.
Originally committed to SVN as r2833.
2009-04-20 02:43:32 +00:00
Niels Martin Hansen 2ba96af5b2 Remove outdated and unused Windows installer scripts.
Originally committed to SVN as r2832.
2009-04-19 20:48:08 +00:00
Niels Martin Hansen e2a75490c9 Remove the annoyance known as Tip of the Day. Right now it's completely inaccessible, but might return in a different incarnation when we get out of strings freeze.
Originally committed to SVN as r2831.
2009-04-18 15:29:13 +00:00
Niels Martin Hansen 6ec31a3a08 Simplify code to pick mapping size in PCMWAV provider, just use sizeof(void*) to determine address space size.
Originally committed to SVN as r2830.
2009-04-18 15:16:15 +00:00
Niels Martin Hansen f5bc001e90 Move more project settings into property sheet files.
Originally committed to SVN as r2829.
2009-04-18 13:40:52 +00:00
Niels Martin Hansen a749c23e8b Rename auto3 DLL to something less ugly.
Originally committed to SVN as r2828.
2009-04-18 13:31:08 +00:00
Karl Blomster f6016573c8 revert revision 2825 since apparently it broke all of jfs' changes
Originally committed to SVN as r2827.
2009-04-18 13:02:13 +00:00
Karl Blomster 65e69a51cf "Fix" an issue that would cause the FFMS2 audio provider to crash when fed with a unicode filename/path. The solution involves getting the "short path", no idea if it works on Unix. Fixes bugtracker issues #810 and #808.
Originally committed to SVN as r2826.
2009-04-18 10:54:20 +00:00
Karl Blomster caa26103f5 add portaudio_x86.dll to the list of delay-loaded dll's in the vs2008 project file
Originally committed to SVN as r2825.
2009-04-18 09:37:54 +00:00
Karl Blomster f20737b8b2 Fix an issue where the grid font face option's font browser button wouldn't actually update the setting. Patch by Harukalover, resolves bugtracker issues #706 and (partially) #821.
Originally committed to SVN as r2824.
2009-04-18 09:12:26 +00:00
Niels Martin Hansen fe393f82af No longer support anything for Windows-builds but Visual Studio 2008/VC9.
Remove all outdated, unmaintained project files and some unused dirs, and other stuff related to outdated build methods.

Originally committed to SVN as r2821.
2009-04-17 22:08:37 +00:00
Niels Martin Hansen 30057004f1 Some changes to property sheets went unsaved before previous commit, oops.
(This made linking in various things impossible.)

Originally committed to SVN as r2820.
2009-04-17 21:58:17 +00:00
Niels Martin Hansen 77791217a0 Refactor Visual Studio 2008 build and make libauto3 and Lua 5.0 build on VC9.
* The most important project properties (especially paths) are now stored in VSProps files in generalised ways.
* Projects share VSProps files so they place output files in same locations and thus agree on where to find them.
* Avoid inconsistencies between build configurations/platforms as has happened often before.
* Now distributable binaries (aegisub.exe and aegisub-auto3.dll) will be placed in $(SolutionDir)/bin/, static libraries under $(SolutionDir)/lib/ and object files etc. under $(SolutionDir)/build/. Note that those locations are controlled by where the solution file is placed in the file system.
* libauto3 is no longer pulled in by a #pragma in auto4_auto3.c, but must instead be pulled in by making the aegisub project depend on the auto3 project, which must in turn depend on the lua50 project.
* Final binary filenames are now somewhat different. You get aegisub32.exe, aegisub64d.exe, aegisub-auto3lib32d.dll and more.
* There's still more that can be factored out, things like optimisation flags and defines.

Originally committed to SVN as r2819.
2009-04-17 21:53:48 +00:00
Niels Martin Hansen c55df071cf The lines.n value produced by Auto3 implementation was 1 too small causing the last line in a file to be eaten by karaskel.
Originally committed to SVN as r2818.
2009-04-17 21:34:43 +00:00
Niels Martin Hansen 5a76711a19 Make callables.c error properly if it's attempted compiled separately.
Originally committed to SVN as r2817.
2009-04-17 20:55:48 +00:00
Niels Martin Hansen 8a5933385d Make libauto3 better liked by MSVC 2008.
Originally committed to SVN as r2816.
2009-04-17 20:51:58 +00:00
Karl Blomster cc26be476e add portaudio2 player to the vs2005 project as well while I'm at it
Originally committed to SVN as r2814.
2009-04-17 19:45:33 +00:00
Karl Blomster 8a6206e5d0 add portaudio2 audio player to config/config_windows0.h and the vs2008 project file
Originally committed to SVN as r2813.
2009-04-17 19:44:07 +00:00
Karl Blomster c3afb85af4 change buffer length/wanted latency in the dsound2 audio player to 80/4 (down from 100/5); should make it a bit more responsive
Originally committed to SVN as r2812.
2009-04-17 19:40:29 +00:00
Karl Blomster 0d6454087e update ffms2.lib
Originally committed to SVN as r2811.
2009-04-17 19:38:12 +00:00
Niels Martin Hansen 7a19b273b1 Fix crash in PCM audio provider when using files larger than the mapping size (256 MB on 32 bit). The length of mappings closer than mapping-size to the end of the file, when the file was larger, would not be adjusted to not cross the end of file.
Originally committed to SVN as r2810.
2009-04-17 16:34:06 +00:00
Amar Takhar 49e3895180 Re-order the functions so they're in line with every other player: Constructor,
Destructor, Open, Close, Play, Stop..  I rue the fact that I didn't do this at
the start.

Originally committed to SVN as r2809.
2009-04-17 13:58:44 +00:00
Karl Blomster d77c119d63 Fix a bug in FFMS2 that caused it to write timecodes with scientific notation.
Originally committed to SVN as r2808.
2009-04-17 03:25:10 +00:00
Amar Takhar 6c256fd181 * Remove a short-lived hack (hours?) and replace it with a
PaStreamFinishedCallback which is called anytime a PaCallback is exited with
  anything other than 0. (normal operation)  paStreamFinishedCallback handles
  stopping the audio stream when we've run to the end of the current selection
  or the stream is stopped.
* Add framesPerBuffer to paCallback debug output in preperation for dynamic
  buffers.
* Set paPrimeOutputBuffersUsingStreamCallback in Pa_OpenStream to prime the
  output buffer using the callback rather than initing with empty space which
  is the default.
* Indent paCallback decleration another level.

Originally committed to SVN as r2807.
2009-04-17 02:14:42 +00:00
Amar Takhar 50ce42d2e9 * Fold entire callback into a single if-else block.
* Remove 'end' variable and just return 0 if we have more to play.

Originally committed to SVN as r2806.
2009-04-16 20:55:14 +00:00
Amar Takhar eb65009f66 * Remove variable 'avail'.
* Fold lenAvailable logic into a ternary operator.
* Use GetAduioWithVolume instead of applying volume ourselves.
* Remove code used to zero rest of the buffer. (not required)

Originally committed to SVN as r2805.
2009-04-16 20:49:37 +00:00
Amar Takhar c6364bf43d * Set Pa_OpenStream to use paClipOff as we don't need any clipping
* Update comment (realPlayPos has been removed).
* Return from paCallback with paAbort if there is no more audio to play.
  Also set endPos to be less than the current playPos to stop the audio
  event timer.
* Add CPU usage statistics to debug printf in paCallback.

Originally committed to SVN as r2804.
2009-04-16 19:55:52 +00:00
Amar Takhar 3e864d10c9 Make debug printf's a perm fixture wrapped with PORTAUDIO2_DEBUG.
Originally committed to SVN as r2803.
2009-04-16 14:22:46 +00:00
Niels Martin Hansen 7271a74b54 Forgot to put license on VideoSink.h as well.
Originally committed to SVN as r2802.
2009-04-16 13:01:05 +00:00
Niels Martin Hansen 4da7a70608 Clarify license for VideoSink.cpp.
<jfs> hmm Haali, the VideoSink.cpp you have contributed to aegisub doesn't have a license attached... I see you put MatroskaParser.c into 3-clause BSD like the rest of aegisub though, what about VideoSink ?
<Haali> jfs: BSD license is ok for that file

Originally committed to SVN as r2801.
2009-04-16 12:15:57 +00:00
Amar Takhar 50214a2a6a Move the comment for the PortAudio library to setup.cpp.
Requested by: TheFluff

Originally committed to SVN as r2800.
2009-04-15 20:16:54 +00:00
Amar Takhar 50b7f33117 Don't initalise favorite to 0 (it's a a wxString).
Originally committed to SVN as r2799.
2009-04-15 20:11:53 +00:00
Amar Takhar 918945e03b Don't set the current position via the PortAudio callback, instead set
GetCurrentPosition() to return the correct value using Pa_GetStreamTime().  Not
only does it not work on every platform, there is no point in setting it during
the callback as GetCurrentPosition() isn't called very often (in comparison)
when updating the play bar.  Eventually this should be changed to update the
playbar via a callback to get a position that's a lot more accurate.

Originally committed to SVN as r2798.
2009-04-15 17:50:16 +00:00
Amar Takhar b63c2ea27c Add hidden option 'Audio PortAudio Device' to set the default portaudio output device.
Originally committed to SVN as r2797.
2009-04-15 11:26:43 +00:00
Amar Takhar aa85b2eb01 * Fix paCallback decleration
* Switch from PaOpenDefaultStream to Pa_OpenStream.
* Add Debug output
* Add GetOutputDevices which returns a list of available devices (unused)

Originally committed to SVN as r2796.
2009-04-15 10:26:22 +00:00
Niels Martin Hansen 558be555e2 Make the default ALSA device default.
(It should be "default", not "default:0" as the old default was.)

Originally committed to SVN as r2795.
2009-04-13 17:08:13 +00:00
Amar Takhar 2d6ba0cb22 Move FOUND_AUDIO_PLAYER above the rest of the audio players to preserve
link ordering.  Also add libaudio_player.a to the final link.

Originally committed to SVN as r2794.
2009-04-12 10:52:40 +00:00
Amar Takhar dc34db7f62 Early morning code-o, setting AM_CONDITIONAL _after_ the Makefiles are
generated isn't going to work very well.

Originally committed to SVN as r2793.
2009-04-12 10:48:20 +00:00
Amar Takhar 733814793e * Update comment
* Include audio_player_portaudio2.h instead of audio_player_portaudio.h.

Originally committed to SVN as r2792.
2009-04-12 10:30:38 +00:00
Amar Takhar 8dab71e974 Split audio_player.cpp into it's own convenience to avoid sending audio library
CFLAGS to every source file.

Originally committed to SVN as r2791.
2009-04-12 10:30:07 +00:00