Commit graph

38 commits

Author SHA1 Message Date
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
Renamed from core/audio_provider_lavc.cpp (Browse further)