Commit Graph

44 Commits

Author SHA1 Message Date
Karl Blomster 6ad406446b Changed how the lavc audio decoder handles non-decodable audio packets. Previously, if decoding failed at any point in the audio stream, it would throw an exception that didn't get caught anywhere and hence crashed the program. Now, it'll just silently skip the broken packet and go on to next one, meaning that if the audio stream is actually corrupted and not just some weird stream with null packets you'll either get desyncs from the missing samples, or if the entire stream is non-decodable you'll just silence.
tl;dr: Fixed loading of AAC files with the ffmpeg provider.

Originally committed to SVN as r2507.
2008-12-17 06:22:05 +00:00
Karl Blomster 82059cbfe2 add some support for sample formats other than 16-bit int to the lavc audio provider. untested and will probably break spectacularly.
Originally committed to SVN as r2320.
2008-09-05 12:55:45 +00:00
Karl Blomster bf931df635 fix retarded breakage in previous commit.
Originally committed to SVN as r2304.
2008-08-14 23:49:11 +00:00
Karl Blomster d1c62c1324 Fix crash on playing video without audio loaded when using the ffmpeg providers. Patch by Manta with minor modifications by me.
Originally committed to SVN as r2303.
2008-08-14 16:10:31 +00:00
Karl Blomster 5b38a17529 replace a bunch of magic numbers (2) with bytes_per_sample
Originally committed to SVN as r2297.
2008-08-04 08:17:35 +00:00
Karl Blomster 217c228738 misc small fixes in the ffmpeg audio provider, preparation for support of other sample formats than just 16-bit int
Originally committed to SVN as r2296.
2008-08-04 07:13:41 +00:00
Karl Blomster 0badb4059f Restructured audio providing a bit. If a provider cannot provide 16-bit mono audio with a sample rate higher than 32kHz, an intermediate converting provider will be inserted to fix it. Made the lavc audio provider rely on this for downmixing instead of doing it with libavcodec (used to fail on audio with >2 channels).
Originally committed to SVN as r2265.
2008-07-16 13:22:06 +00:00
Karl Blomster 893ff2f78a Major rewrite of the video providing system. Hilights:
- It is now the responsibility of each video provider to provide a list of keyframe positions and (if it can) timecodes.
- The ffmpeg video provider now indexes files before opening them and does no longer rely on stream->duration to determine the number of frames. Fixes opening of MKV files, but it does not (currently) open timecodes automatically and reported keyframe positions seem way off. Status of frame-accuracy with MKV files unknown but it may very well work.
- Modified the way the ffmpeg video provider seeks (inspired by code from Myrsloik's ffmpegsource). Should no longer lose the first frame and should also no longer be frame-inaccurate, at least not with AVI.
- DirectShow video provider may or may not be completely broken, not tested.

Originally committed to SVN as r2252.
2008-07-15 00:08:05 +00:00
Karl Blomster 51c9856160 clarified downmixing error in ffmpeg audio provider
Originally committed to SVN as r2239.
2008-07-05 11:29:42 +00:00
Karl Blomster e26b9fe0d5 overhaul of audio_provider_lavc.cpp. should fix the infamous skewing issue, tested and works on windows at least.
Originally committed to SVN as r2236.
2008-07-04 12:04:10 +00:00
Karl Blomster 075bc5ec75 revert r2216 (changes to the libav* includes)
Originally committed to SVN as r2228.
2008-07-04 00:20:14 +00:00
Karl Blomster 910ff2e34e the "impossible" audio error is now really impossible
Originally committed to SVN as r2226.
2008-07-03 23:27:06 +00:00
Karl Blomster d6ada6f0bd black magic for building with ffmpeg on windows
Originally committed to SVN as r2224.
2008-07-03 15:22:25 +00:00
Karl Blomster 40c709da72 change of #includes: <ffmpeg/*> to <libavstuff/*>
Originally committed to SVN as r2216.
2008-07-02 16:31:06 +00:00
pstatic d65b697e12 Add workaround for what looks like a ffmpeg bug
Originally committed to SVN as r2194.
2008-05-21 20:03:39 +00:00
Amar Takhar f0f0d541b6 Add a .c_str(); to _filename (line 83)
Originally committed to SVN as r2143.
2008-03-25 23:01:29 +00:00
Karl Blomster 7be56fbcd4 cast some lavc context variables to int (avoids warning treated as error when compiling WITH_FFMPEG on msvc)
Originally committed to SVN as r2137.
2008-03-24 11:30:35 +00:00
Karl Blomster 2c495b5d80 casting
Originally committed to SVN as r2119.
2008-03-23 12:36:16 +00:00
Karl Blomster b6d8b403d6 fix catastrophic failure in last commit
Originally committed to SVN as r2116.
2008-03-22 22:48:59 +00:00
Karl Blomster e61d333297 warn the user if audio skew is likely
Originally committed to SVN as r2115.
2008-03-22 22:45:46 +00:00
Karl Blomster 76469421e4 minor tweaks to the lavc audio provider.
Originally committed to SVN as r2114.
2008-03-22 22:18:43 +00:00
Karl Blomster 9a7bbc9b93 missing semicolon in last commit
Originally committed to SVN as r2095.
2008-03-21 20:35:59 +00:00
Karl Blomster ee04563ff6 attempt at fixing the lavc audio skew problems by making very very sure all data in each packet is decoded.
Originally committed to SVN as r2094.
2008-03-21 20:30:34 +00:00
Karl Blomster 6d8f862aed cleanup of the lavc audio provider; renamed some variables, added some comments and restructured a bit. as an added improvement it will now no longer resample unless strictly necessary.
Originally committed to SVN as r2093.
2008-03-21 19:52:14 +00:00
Karl Blomster 521632cd9b changed output buffer size to AVCODEC_MAX_AUDIO_FRAME_SIZE which is what it's actually malloc()'ed as. might actually work now.
Originally committed to SVN as r2052.
2008-03-14 05:14:30 +00:00
Karl Blomster 56370f0f4a hurf de durf, didn't consider the fact that some audio packets might not have any actual content. return value of avcodec_decode_audio2() is now checked against < 0 again.
Originally committed to SVN as r2051.
2008-03-14 04:38:30 +00:00
Karl Blomster 3cade86767 check the return value of avcodec_decode_audio2() against <= 0, not just < 0 (both indicate no audio decoded)
Originally committed to SVN as r2042.
2008-03-13 08:41:21 +00:00
Karl Blomster 47f6f2aed6 Replaced deprecated function avcodec_decode_audio() with nondeprecated version avcodec_decode_audio2() in audio_provider_lavc.cpp. Maybe possibly potentially hopefully fixes mp3 decoding problems?
Originally committed to SVN as r2041.
2008-03-13 08:30:40 +00:00
Amar Takhar 6246c3998d s/wxString/Aegisub::String/ in many places.
Originally committed to SVN as r1967.
2008-03-08 04:27:41 +00:00
Rodrigo Braz Monteiro 30d1aeb551 ops.
Originally committed to SVN as r1892.
2008-03-05 02:23:47 +00:00
Rodrigo Braz Monteiro b1b2c3d7fb Changed audio providers to register manually.
Originally committed to SVN as r1891.
2008-03-05 02:19:50 +00:00
Rodrigo Braz Monteiro c2aaa4eb8c Added shb's incomplete perl support code (doesn't build on VC++ yet)
Originally committed to SVN as r1741.
2008-01-16 18:29:29 +00:00
Rodrigo Braz Monteiro 75b4fb1437 Made almost all major components of Aegisub optional... this might be severely broken still.
Originally committed to SVN as r1660.
2007-12-31 06:46:22 +00:00
Niels Martin Hansen 89d076c760 Apparently long long isn't safe, trying with int64_t instead then...
Originally committed to SVN as r1547.
2007-08-31 14:11:35 +00:00
Niels Martin Hansen 8909ea48e2 Replace all (applicable) instances of __int64 with long long. (All except those in foreign header files.)
Originally committed to SVN as r1540.
2007-08-29 13:36:30 +00:00
Rodrigo Braz Monteiro b773706f6d Some fixes for ffmpeg linking (I have no idea how it worked before)
Originally committed to SVN as r1473.
2007-08-07 22:10:44 +00:00
Niels Martin Hansen c6722b0587 Fixed some building on Linux, at least on Ubuntu Feisty amd64. Also
updated configure.ac to check for wxSTC instead of wxScintilla.

Originally committed to SVN as r1106.
2007-04-22 00:23:21 +00:00
Rodrigo Braz Monteiro 97d996f995 Fixed all warnings while building on Linux, except for the ones on MatroskaParser.c and the ones about image conversion. Poke equinox for the later.
Originally committed to SVN as r1008.
2007-04-04 20:42:44 +00:00
Rodrigo Braz Monteiro 0568af7ce0 added ClampSignedInteger32() to utils and used that to remove branching from YV12->RGB32 conversion, hopefully making it faster. Also, fixed a warning in lavc audio provider.
Originally committed to SVN as r988.
2007-04-03 21:05:33 +00:00
David Lamparter 7c38076d4f fix INT64_C breakage with ffmpeg
Originally committed to SVN as r967.
2007-03-31 21:28:43 +00:00
Rodrigo Braz Monteiro 0dd4f96757 Fix for lavc audio provider to prevent it from crashing if it cannot load the file (was causing video playback to crash if no audio was loaded)
Originally committed to SVN as r963.
2007-03-29 21:05:22 +00:00
Rodrigo Braz Monteiro 6d84bde8da Several fixes to build on Linux
Originally committed to SVN as r887.
2007-01-24 02:11:26 +00:00
Rodrigo Braz Monteiro 02bf068052 Basic (and somewhat broken) detached video dialog implemented.
Originally committed to SVN as r881.
2007-01-23 04:42:08 +00:00
Rodrigo Braz Monteiro 06cff2e2f2 Renamed /core/ to /aegisub/ to avoid issues with unix systems being unable to delete core dumps.
Originally committed to SVN as r652.
2006-12-28 23:43:23 +00:00