[FFmpeg-cvslog] Refactor the tag checking into a switch statement

Tomas Härdin git at videolan.org
Wed May 18 18:59:08 CEST 2011


ffmpeg | branch: master | Tomas Härdin <tomas.hardin at codemill.se> | Thu Feb 17 15:58:10 2011 +0100| [a06d238e8cc44ea970ebb2b671389c78bc5bb251] | committer: Michael Niedermayer

Refactor the tag checking into a switch statement

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

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

 libavformat/wav.c |   13 +++++++++----
 1 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/libavformat/wav.c b/libavformat/wav.c
index 1296ccb..b3067cb 100644
--- a/libavformat/wav.c
+++ b/libavformat/wav.c
@@ -254,7 +254,8 @@ static int wav_read_header(AVFormatContext *s,
         size = next_tag(pb, &tag);
         next_tag_ofs = avio_tell(pb) + size;
 
-        if (tag == MKTAG('f', 'm', 't', ' ')) {
+        switch (tag) {
+        case MKTAG('f', 'm', 't', ' '):
             /* only parse the first 'fmt ' tag found */
             if (!got_fmt && (ret = wav_parse_fmt_tag(s, size, &st) < 0)) {
                 return ret;
@@ -262,18 +263,22 @@ static int wav_read_header(AVFormatContext *s,
                 av_log(s, AV_LOG_WARNING, "found more than one 'fmt ' tag\n");
 
             got_fmt = 1;
-        } else if (tag == MKTAG('d', 'a', 't', 'a')) {
+            break;
+        case MKTAG('d', 'a', 't', 'a'):
             if (!got_fmt) {
                 av_log(s, AV_LOG_ERROR, "found no 'fmt ' tag before the 'data' tag\n");
                 return AVERROR_INVALIDDATA;
             }
 
-            break;
-        }else if (tag == MKTAG('f','a','c','t') && !sample_count){
+            goto break_loop;
+        case MKTAG('f','a','c','t'):
+            if(!sample_count)
             sample_count = avio_rl32(pb);
+            break;
         }
         avio_seek(pb, next_tag_ofs, SEEK_SET);
     }
+break_loop:
     if (rf64)
         size = data_size;
     if (size < 0)



More information about the ffmpeg-cvslog mailing list