mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
Support audio sample formats than S16 when encoding a small last frame.
Originally committed as revision 18505 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
7c8689ef54
commit
22c4c3e059
3
ffmpeg.c
3
ffmpeg.c
@ -1465,8 +1465,9 @@ static int output_packet(AVInputStream *ist, int ist_index,
|
|||||||
ret = 0;
|
ret = 0;
|
||||||
/* encode any samples remaining in fifo */
|
/* encode any samples remaining in fifo */
|
||||||
if(fifo_bytes > 0 && enc->codec->capabilities & CODEC_CAP_SMALL_LAST_FRAME) {
|
if(fifo_bytes > 0 && enc->codec->capabilities & CODEC_CAP_SMALL_LAST_FRAME) {
|
||||||
|
int osize = av_get_bits_per_sample_format(enc->sample_fmt) >> 3;
|
||||||
int fs_tmp = enc->frame_size;
|
int fs_tmp = enc->frame_size;
|
||||||
enc->frame_size = fifo_bytes / (2 * enc->channels);
|
enc->frame_size = fifo_bytes / (osize * enc->channels);
|
||||||
av_fifo_generic_read(ost->fifo, samples, fifo_bytes, NULL);
|
av_fifo_generic_read(ost->fifo, samples, fifo_bytes, NULL);
|
||||||
ret = avcodec_encode_audio(enc, bit_buffer, bit_buffer_size, samples);
|
ret = avcodec_encode_audio(enc, bit_buffer, bit_buffer_size, samples);
|
||||||
pkt.duration = av_rescale((int64_t)enc->frame_size*ost->st->time_base.den,
|
pkt.duration = av_rescale((int64_t)enc->frame_size*ost->st->time_base.den,
|
||||||
|
Loading…
Reference in New Issue
Block a user