|
|
@@ -274,7 +274,7 @@ static void do_audio_out(AVFormatContext *s, |
|
|
|
&ost->fifo.rptr) == 0) { |
|
|
|
ret = avcodec_encode_audio(enc, audio_out, sizeof(audio_out), |
|
|
|
(short *)audio_buf); |
|
|
|
s->format->write_packet(s, ost->index, audio_out, ret); |
|
|
|
s->format->write_packet(s, ost->index, audio_out, ret, 0); |
|
|
|
} |
|
|
|
} else { |
|
|
|
/* output a pcm frame */ |
|
|
@@ -291,7 +291,7 @@ static void do_audio_out(AVFormatContext *s, |
|
|
|
} |
|
|
|
ret = avcodec_encode_audio(enc, audio_out, size_out, |
|
|
|
(short *)buftmp); |
|
|
|
s->format->write_packet(s, ost->index, audio_out, ret); |
|
|
|
s->format->write_packet(s, ost->index, audio_out, ret, 0); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@@ -387,7 +387,7 @@ static void write_picture(AVFormatContext *s, int index, AVPicture *picture, |
|
|
|
default: |
|
|
|
return; |
|
|
|
} |
|
|
|
s->format->write_packet(s, index, buf, size); |
|
|
|
s->format->write_packet(s, index, buf, size, 0); |
|
|
|
free(buf); |
|
|
|
} |
|
|
|
|
|
|
@@ -484,7 +484,7 @@ static void do_video_out(AVFormatContext *s, |
|
|
|
ret = avcodec_encode_video(enc, |
|
|
|
video_buffer, sizeof(video_buffer), |
|
|
|
picture); |
|
|
|
s->format->write_packet(s, ost->index, video_buffer, ret); |
|
|
|
s->format->write_packet(s, ost->index, video_buffer, ret, 0); |
|
|
|
*frame_size = ret; |
|
|
|
} else { |
|
|
|
write_picture(s, ost->index, picture, enc->pix_fmt, enc->width, enc->height); |
|
|
@@ -728,6 +728,11 @@ static int av_encode(AVFormatContext **output_files, |
|
|
|
codec->sample_rate == icodec->sample_rate && |
|
|
|
codec->channels == icodec->channels) { |
|
|
|
/* no reencoding */ |
|
|
|
/* use the same frame size */ |
|
|
|
codec->frame_size = icodec->frame_size; |
|
|
|
//codec->frame_size = 8*icodec->sample_rate*icodec->frame_size/ |
|
|
|
// icodec->bit_rate; |
|
|
|
//fprintf(stderr,"\nFrame size: %d", codec->frame_size); |
|
|
|
} else { |
|
|
|
if (fifo_init(&ost->fifo, 2 * MAX_AUDIO_PACKET_SIZE)) |
|
|
|
goto fail; |
|
|
@@ -999,7 +1004,8 @@ static int av_encode(AVFormatContext **output_files, |
|
|
|
} |
|
|
|
} else { |
|
|
|
/* no reencoding needed : output the packet directly */ |
|
|
|
os->format->write_packet(os, ost->index, data_buf, data_size); |
|
|
|
/* force the input stream PTS */ |
|
|
|
os->format->write_packet(os, ost->index, data_buf, data_size, pkt.pts); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|