summaryrefslogtreecommitdiff
path: root/ffmpeg.c
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2009-01-11 16:15:34 +0000
committerMichael Niedermayer <michaelni@gmx.at>2009-01-11 16:15:34 +0000
commit528271ff670651d475cba05aff4ac144977b6296 (patch)
tree492377da27bfe7cf47b172ae5fb547e7a80c3a7a /ffmpeg.c
parent95af5e1c8158667066e1b39217bbf6e62cedeb4c (diff)
Check the return of audio and video encoders.
Originally committed as revision 16538 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'ffmpeg.c')
-rw-r--r--ffmpeg.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/ffmpeg.c b/ffmpeg.c
index 341afe5940..0f6bb24a61 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -684,6 +684,10 @@ static void do_audio_out(AVFormatContext *s,
ret = avcodec_encode_audio(enc, audio_out, audio_out_size,
(short *)audio_buf);
+ if (ret < 0) {
+ fprintf(stderr, "Audio encoding failed\n");
+ av_exit(1);
+ }
audio_size += ret;
pkt.stream_index= ost->index;
pkt.data= audio_out;
@@ -711,6 +715,10 @@ static void do_audio_out(AVFormatContext *s,
//FIXME pass ost->sync_opts as AVFrame.pts in avcodec_encode_audio()
ret = avcodec_encode_audio(enc, audio_out, size_out,
(short *)buftmp);
+ if (ret < 0) {
+ fprintf(stderr, "Audio encoding failed\n");
+ av_exit(1);
+ }
audio_size += ret;
pkt.stream_index= ost->index;
pkt.data= audio_out;
@@ -1456,11 +1464,19 @@ static int output_packet(AVInputStream *ist, int ist_index,
if(ret <= 0) {
ret = avcodec_encode_audio(enc, bit_buffer, bit_buffer_size, NULL);
}
+ if (ret < 0) {
+ fprintf(stderr, "Audio encoding failed\n");
+ av_exit(1);
+ }
audio_size += ret;
pkt.flags |= PKT_FLAG_KEY;
break;
case CODEC_TYPE_VIDEO:
ret = avcodec_encode_video(enc, bit_buffer, bit_buffer_size, NULL);
+ if (ret < 0) {
+ fprintf(stderr, "Video encoding failed\n");
+ av_exit(1);
+ }
video_size += ret;
if(enc->coded_frame && enc->coded_frame->key_frame)
pkt.flags |= PKT_FLAG_KEY;