rmenc: do not use AVCodecContext.frame_size
It will not be set if the stream codec context is not the encoding context. Use av_get_audio_frame_duration() instead, it should work for all audio codecs supported by the muxer.
This commit is contained in:
parent
458e53f51f
commit
1f008f34d5
@ -185,9 +185,10 @@ static int rv10_write_header(AVFormatContext *ctx,
|
||||
|
||||
if (stream->enc->codec_type == AVMEDIA_TYPE_AUDIO) {
|
||||
int coded_frame_size, fscode, sample_rate;
|
||||
int frame_size = av_get_audio_frame_duration(stream->enc, 0);
|
||||
sample_rate = stream->enc->sample_rate;
|
||||
coded_frame_size = (stream->enc->bit_rate *
|
||||
stream->enc->frame_size) / (8 * sample_rate);
|
||||
frame_size) / (8 * sample_rate);
|
||||
/* audio codec info */
|
||||
avio_write(s, ".ra", 3);
|
||||
avio_w8(s, 0xfd);
|
||||
@ -315,6 +316,7 @@ static int rm_write_header(AVFormatContext *s)
|
||||
|
||||
for(n=0;n<s->nb_streams;n++) {
|
||||
AVStream *st = s->streams[n];
|
||||
int frame_size;
|
||||
|
||||
s->streams[n]->id = n;
|
||||
codec = s->streams[n]->codec;
|
||||
@ -327,7 +329,8 @@ static int rm_write_header(AVFormatContext *s)
|
||||
switch(codec->codec_type) {
|
||||
case AVMEDIA_TYPE_AUDIO:
|
||||
rm->audio_stream = stream;
|
||||
stream->frame_rate = (float)codec->sample_rate / (float)codec->frame_size;
|
||||
frame_size = av_get_audio_frame_duration(codec, 0);
|
||||
stream->frame_rate = (float)codec->sample_rate / (float)frame_size;
|
||||
/* XXX: dummy values */
|
||||
stream->packet_max_size = 1024;
|
||||
stream->nb_packets = 0;
|
||||
|
Loading…
Reference in New Issue
Block a user