mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-24 13:56:33 +02:00
Support for shine 3.0.0
This commit is contained in:
parent
d49252721a
commit
38536e5927
2
configure
vendored
2
configure
vendored
@ -4169,7 +4169,7 @@ enabled libpulse && require_pkg_config libpulse-simple pulse/simple.h p
|
|||||||
enabled libquvi && require_pkg_config libquvi quvi/quvi.h quvi_init
|
enabled libquvi && require_pkg_config libquvi quvi/quvi.h quvi_init
|
||||||
enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
|
enabled librtmp && require_pkg_config librtmp librtmp/rtmp.h RTMP_Socket
|
||||||
enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init
|
enabled libschroedinger && require_pkg_config schroedinger-1.0 schroedinger/schro.h schro_init
|
||||||
enabled libshine && require_pkg_config shine shine/layer3.h shine_encode_frame
|
enabled libshine && require_pkg_config shine shine/layer3.h shine_encode_buffer
|
||||||
enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr
|
enabled libsoxr && require libsoxr soxr.h soxr_create -lsoxr
|
||||||
enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex
|
enabled libspeex && require libspeex speex/speex.h speex_decoder_init -lspeex
|
||||||
enabled libstagefright_h264 && require_cpp libstagefright_h264 "binder/ProcessState.h media/stagefright/MetaData.h
|
enabled libstagefright_h264 && require_cpp libstagefright_h264 "binder/ProcessState.h media/stagefright/MetaData.h
|
||||||
|
@ -50,17 +50,17 @@ static av_cold int libshine_encode_init(AVCodecContext *avctx)
|
|||||||
shine_set_config_mpeg_defaults(&s->config.mpeg);
|
shine_set_config_mpeg_defaults(&s->config.mpeg);
|
||||||
if (avctx->bit_rate)
|
if (avctx->bit_rate)
|
||||||
s->config.mpeg.bitr = avctx->bit_rate / 1000;
|
s->config.mpeg.bitr = avctx->bit_rate / 1000;
|
||||||
if (shine_find_bitrate_index(s->config.mpeg.bitr) < 0) {
|
|
||||||
av_log(avctx, AV_LOG_ERROR, "invalid bitrate\n");
|
|
||||||
return AVERROR(EINVAL);
|
|
||||||
}
|
|
||||||
s->config.mpeg.mode = avctx->channels == 2 ? STEREO : MONO;
|
s->config.mpeg.mode = avctx->channels == 2 ? STEREO : MONO;
|
||||||
s->config.wave.samplerate = avctx->sample_rate;
|
s->config.wave.samplerate = avctx->sample_rate;
|
||||||
s->config.wave.channels = avctx->channels == 2 ? PCM_STEREO : PCM_MONO;
|
s->config.wave.channels = avctx->channels == 2 ? PCM_STEREO : PCM_MONO;
|
||||||
|
if (shine_check_config(s->config.wave.samplerate, s->config.mpeg.bitr) < 0) {
|
||||||
|
av_log(avctx, AV_LOG_ERROR, "invalid configuration\n");
|
||||||
|
return AVERROR(EINVAL);
|
||||||
|
}
|
||||||
s->shine = shine_initialise(&s->config);
|
s->shine = shine_initialise(&s->config);
|
||||||
if (!s->shine)
|
if (!s->shine)
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
avctx->frame_size = samp_per_frame;
|
avctx->frame_size = shine_samples_per_pass(s->shine);
|
||||||
ff_af_queue_init(avctx, &s->afq);
|
ff_af_queue_init(avctx, &s->afq);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -75,7 +75,7 @@ static int libshine_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
|
|||||||
int ret, len;
|
int ret, len;
|
||||||
|
|
||||||
if (frame)
|
if (frame)
|
||||||
data = shine_encode_frame(s->shine, frame->data[0], &written);
|
data = shine_encode_buffer(s->shine, (int16_t **)frame->data, &written);
|
||||||
else
|
else
|
||||||
data = shine_flush(s->shine, &written);
|
data = shine_flush(s->shine, &written);
|
||||||
if (written < 0)
|
if (written < 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user