[FFmpeg-cvslog] ffmpeg: save two levels of indentation in flush_encoders()

Anton Khirnov git at videolan.org
Tue Aug 30 18:15:06 CEST 2011


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Tue Aug 30 15:56:03 2011 +0200| [47a3439ee792d847734b76b82bc252a916d81aef] | committer: Michael Niedermayer

ffmpeg: save two levels of indentation in flush_encoders()

By replacing
if (foo)
    <do stuff>

with
if (!foo)
    continue;
<do stuff>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=47a3439ee792d847734b76b82bc252a916d81aef
---

 ffmpeg.c |  144 ++++++++++++++++++++++++++++++-------------------------------
 1 files changed, 71 insertions(+), 73 deletions(-)

diff --git a/ffmpeg.c b/ffmpeg.c
index b32d517..cabe71b 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1450,84 +1450,82 @@ static void flush_encoders(int ist_index, OutputStream *ost_table, int nb_ostrea
     int i, ret;
 
     for (i = 0; i < nb_ostreams; i++) {
-        OutputStream *ost = &ost_table[i];
+        OutputStream   *ost = &ost_table[i];
+        AVCodecContext *enc = ost->st->codec;
+        AVFormatContext *os = output_files[ost->file_index].ctx;
 
-        if (ost->source_index == ist_index) {
-            AVCodecContext *enc = ost->st->codec;
-            AVFormatContext *os = output_files[ost->file_index].ctx;
-
-            if(ost->st->codec->codec_type == AVMEDIA_TYPE_AUDIO && enc->frame_size <=1)
-                continue;
-            if(ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO && (os->oformat->flags & AVFMT_RAWPICTURE))
-                continue;
+        if (ost->source_index != ist_index || !ost->encoding_needed)
+            continue;
 
-            if (ost->encoding_needed) {
-                for(;;) {
-                    AVPacket pkt;
-                    int fifo_bytes;
-                    av_init_packet(&pkt);
-                    pkt.stream_index= ost->index;
+        if (ost->st->codec->codec_type == AVMEDIA_TYPE_AUDIO && enc->frame_size <=1)
+            continue;
+        if (ost->st->codec->codec_type == AVMEDIA_TYPE_VIDEO && (os->oformat->flags & AVFMT_RAWPICTURE))
+            continue;
 
-                    switch (ost->st->codec->codec_type) {
-                    case AVMEDIA_TYPE_AUDIO:
-                        fifo_bytes = av_fifo_size(ost->fifo);
-                        ret = 0;
-                        /* encode any samples remaining in fifo */
-                        if (fifo_bytes > 0) {
-                            int osize = av_get_bytes_per_sample(enc->sample_fmt);
-                            int fs_tmp = enc->frame_size;
-
-                            av_fifo_generic_read(ost->fifo, audio_buf, fifo_bytes, NULL);
-                            if (enc->codec->capabilities & CODEC_CAP_SMALL_LAST_FRAME) {
-                                enc->frame_size = fifo_bytes / (osize * enc->channels);
-                            } else { /* pad */
-                                int frame_bytes = enc->frame_size*osize*enc->channels;
-                                if (allocated_audio_buf_size < frame_bytes)
-                                    exit_program(1);
-                                generate_silence(audio_buf+fifo_bytes, enc->sample_fmt, frame_bytes - fifo_bytes);
-                            }
+        for(;;) {
+            AVPacket pkt;
+            int fifo_bytes;
+            av_init_packet(&pkt);
+            pkt.stream_index= ost->index;
 
-                            ret = avcodec_encode_audio(enc, bit_buffer, bit_buffer_size, (short *)audio_buf);
-                            pkt.duration = av_rescale((int64_t)enc->frame_size*ost->st->time_base.den,
-                                                      ost->st->time_base.num, enc->sample_rate);
-                            enc->frame_size = fs_tmp;
-                        }
-                        if (ret <= 0) {
-                            ret = avcodec_encode_audio(enc, bit_buffer, bit_buffer_size, NULL);
-                        }
-                        if (ret < 0) {
-                            fprintf(stderr, "Audio encoding failed\n");
-                            exit_program(1);
-                        }
-                        audio_size += ret;
-                        pkt.flags |= AV_PKT_FLAG_KEY;
-                        break;
-                    case AVMEDIA_TYPE_VIDEO:
-                        ret = avcodec_encode_video(enc, bit_buffer, bit_buffer_size, NULL);
-                        if (ret < 0) {
-                            fprintf(stderr, "Video encoding failed\n");
+            switch (ost->st->codec->codec_type) {
+            case AVMEDIA_TYPE_AUDIO:
+                fifo_bytes = av_fifo_size(ost->fifo);
+                ret = 0;
+                /* encode any samples remaining in fifo */
+                if (fifo_bytes > 0) {
+                    int osize = av_get_bytes_per_sample(enc->sample_fmt);
+                    int fs_tmp = enc->frame_size;
+
+                    av_fifo_generic_read(ost->fifo, audio_buf, fifo_bytes, NULL);
+                    if (enc->codec->capabilities & CODEC_CAP_SMALL_LAST_FRAME) {
+                        enc->frame_size = fifo_bytes / (osize * enc->channels);
+                    } else { /* pad */
+                        int frame_bytes = enc->frame_size*osize*enc->channels;
+                        if (allocated_audio_buf_size < frame_bytes)
                             exit_program(1);
-                        }
-                        video_size += ret;
-                        if(enc->coded_frame && enc->coded_frame->key_frame)
-                            pkt.flags |= AV_PKT_FLAG_KEY;
-                        if (ost->logfile && enc->stats_out) {
-                            fprintf(ost->logfile, "%s", enc->stats_out);
-                        }
-                        break;
-                    default:
-                        ret=-1;
+                        generate_silence(audio_buf+fifo_bytes, enc->sample_fmt, frame_bytes - fifo_bytes);
                     }
 
-                    if (ret <= 0)
-                        break;
-                    pkt.data = bit_buffer;
-                    pkt.size = ret;
-                    if (enc->coded_frame && enc->coded_frame->pts != AV_NOPTS_VALUE)
-                        pkt.pts= av_rescale_q(enc->coded_frame->pts, enc->time_base, ost->st->time_base);
-                    write_frame(os, &pkt, ost->st->codec, ost->bitstream_filters);
+                    ret = avcodec_encode_audio(enc, bit_buffer, bit_buffer_size, (short *)audio_buf);
+                    pkt.duration = av_rescale((int64_t)enc->frame_size*ost->st->time_base.den,
+                                              ost->st->time_base.num, enc->sample_rate);
+                    enc->frame_size = fs_tmp;
+                }
+                if (ret <= 0) {
+                    ret = avcodec_encode_audio(enc, bit_buffer, bit_buffer_size, NULL);
+                }
+                if (ret < 0) {
+                    fprintf(stderr, "Audio encoding failed\n");
+                    exit_program(1);
+                }
+                audio_size += ret;
+                pkt.flags |= AV_PKT_FLAG_KEY;
+                break;
+            case AVMEDIA_TYPE_VIDEO:
+                ret = avcodec_encode_video(enc, bit_buffer, bit_buffer_size, NULL);
+                if (ret < 0) {
+                    fprintf(stderr, "Video encoding failed\n");
+                    exit_program(1);
                 }
+                video_size += ret;
+                if(enc->coded_frame && enc->coded_frame->key_frame)
+                    pkt.flags |= AV_PKT_FLAG_KEY;
+                if (ost->logfile && enc->stats_out) {
+                    fprintf(ost->logfile, "%s", enc->stats_out);
+                }
+                break;
+            default:
+                ret=-1;
             }
+
+            if (ret <= 0)
+                break;
+            pkt.data = bit_buffer;
+            pkt.size = ret;
+            if (enc->coded_frame && enc->coded_frame->pts != AV_NOPTS_VALUE)
+                pkt.pts= av_rescale_q(enc->coded_frame->pts, enc->time_base, ost->st->time_base);
+            write_frame(os, &pkt, ost->st->codec, ost->bitstream_filters);
         }
     }
 }



More information about the ffmpeg-cvslog mailing list