mirror of https://github.com/odrling/Aegisub
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.
This commit is contained in:
parent
c28b96b502
commit
82059cbfe2
|
@ -56,14 +56,9 @@
|
||||||
/* - done in posix/defines.h
|
/* - done in posix/defines.h
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "audio_provider_lavc.h"
|
||||||
extern "C" {
|
|
||||||
#include <ffmpeg/avcodec.h>
|
|
||||||
#include <ffmpeg/avformat.h>
|
|
||||||
}
|
|
||||||
#include "mkv_wrap.h"
|
#include "mkv_wrap.h"
|
||||||
#include "lavc_file.h"
|
#include "lavc_file.h"
|
||||||
#include "audio_provider_lavc.h"
|
|
||||||
#include "lavc_file.h"
|
#include "lavc_file.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
#include "options.h"
|
#include "options.h"
|
||||||
|
@ -123,11 +118,13 @@ LAVCAudioProvider::LAVCAudioProvider(Aegisub::String _filename)
|
||||||
/* we rely on the intermediate audio provider to do downmixing for us later if necessary */
|
/* we rely on the intermediate audio provider to do downmixing for us later if necessary */
|
||||||
channels = codecContext->channels;
|
channels = codecContext->channels;
|
||||||
|
|
||||||
/* FIXME: we need support for more audio types than just 16-bit int */
|
/* TODO: test if anything but S16 actually works! */
|
||||||
switch (codecContext->sample_fmt) {
|
switch (codecContext->sample_fmt) {
|
||||||
|
case SAMPLE_FMT_U8: bytes_per_sample = 1; break;
|
||||||
case SAMPLE_FMT_S16: bytes_per_sample = 2; break;
|
case SAMPLE_FMT_S16: bytes_per_sample = 2; break;
|
||||||
|
case SAMPLE_FMT_S32: bytes_per_sample = 4; break; /* downmixing provider doesn't support this, will definitely not work */
|
||||||
default:
|
default:
|
||||||
throw _T("ffmpeg audio provider: Only 16-bit audio is supported");
|
throw _T("ffmpeg audio provider: Unknown or unsupported sample format");
|
||||||
}
|
}
|
||||||
|
|
||||||
/* initiate resampling if necessary */
|
/* initiate resampling if necessary */
|
||||||
|
|
Loading…
Reference in New Issue