[FFmpeg-cvslog] r21931 - trunk/libavcodec/vp3.c

conrad subversion
Sun Feb 21 01:11:01 CET 2010


Author: conrad
Date: Sun Feb 21 01:11:01 2010
New Revision: 21931

Log:
Simplify determing whether fragments are coded

No measurable speed difference

Modified:
   trunk/libavcodec/vp3.c

Modified: trunk/libavcodec/vp3.c
==============================================================================
--- trunk/libavcodec/vp3.c	Sun Feb 21 01:10:58 2010	(r21930)
+++ trunk/libavcodec/vp3.c	Sun Feb 21 01:11:01 2010	(r21931)
@@ -555,13 +555,9 @@ static int unpack_superblocks(Vp3DecodeC
                 return 1;
             }
             if (current_fragment != -1) {
-                if (s->superblock_coding[i] == SB_NOT_CODED) {
-
-                    /* copy all the fragments from the prior frame */
-                    s->all_fragments[current_fragment].coding_method =
-                        MODE_COPY;
+                int coded = s->superblock_coding[i];
 
-                } else if (s->superblock_coding[i] == SB_PARTIALLY_CODED) {
+                if (s->superblock_coding[i] == SB_PARTIALLY_CODED) {
 
                     /* fragment may or may not be coded; this is the case
                      * that cares about the fragment coding runs */
@@ -570,8 +566,10 @@ static int unpack_superblocks(Vp3DecodeC
                         current_run = get_vlc2(gb,
                             s->fragment_run_length_vlc.table, 5, 2);
                     }
+                    coded = bit;
+                }
 
-                    if (bit) {
+                    if (coded) {
                         /* default mode; actual mode will be decoded in
                          * the next phase */
                         s->all_fragments[current_fragment].coding_method =
@@ -592,25 +590,6 @@ static int unpack_superblocks(Vp3DecodeC
                         s->all_fragments[current_fragment].coding_method =
                             MODE_COPY;
                     }
-
-                } else {
-
-                    /* fragments are fully coded in this superblock; actual
-                     * coding will be determined in next step */
-                    s->all_fragments[current_fragment].coding_method =
-                        MODE_INTER_NO_MV;
-                    s->all_fragments[current_fragment].next_coeff= s->coeffs + current_fragment;
-                    s->coded_fragment_list[s->coded_fragment_list_index] =
-                        current_fragment;
-                    if ((current_fragment >= s->fragment_start[1]) &&
-                        (s->last_coded_y_fragment == -1) &&
-                        (!first_c_fragment_seen)) {
-                        s->first_coded_c_fragment = s->coded_fragment_list_index;
-                        s->last_coded_y_fragment = s->first_coded_c_fragment - 1;
-                        first_c_fragment_seen = 1;
-                    }
-                    s->coded_fragment_list_index++;
-                }
             }
         }
     }



More information about the ffmpeg-cvslog mailing list