diff h263.c @ 10791:48adb5a1b47b libavcodec

Split out intel H263 decoder.
author michael
date Thu, 07 Jan 2010 06:25:41 +0000
parents 0c8f9288b5e4
children 9b3ec3d1bdae
line wrap: on
line diff
--- a/h263.c	Thu Jan 07 06:20:57 2010 +0000
+++ b/h263.c	Thu Jan 07 06:25:41 2010 +0000
@@ -133,7 +133,7 @@
         return 7;
 }
 
-static void show_pict_info(MpegEncContext *s){
+void ff_h263_show_pict_info(MpegEncContext *s){
     av_log(s->avctx, AV_LOG_DEBUG, "qp:%d %c size:%d rnd:%d%s%s%s%s%s%s%s%s%s %d/%d\n",
          s->qscale, av_get_pict_type_char(s->pict_type),
          s->gb.size_in_bits, 1-s->no_rounding,
@@ -5359,7 +5359,7 @@
     }
 
      if(s->avctx->debug&FF_DEBUG_PICT_INFO){
-        show_pict_info(s);
+        ff_h263_show_pict_info(s);
      }
     if (s->pict_type == FF_I_TYPE && s->codec_tag == AV_RL32("ZYGO")){
         int i,j;
@@ -6064,98 +6064,3 @@
     s->avctx->has_b_frames= !s->low_delay;
     return decode_vop_header(s, gb);
 }
-
-/* don't understand why they choose a different header ! */
-int intel_h263_decode_picture_header(MpegEncContext *s)
-{
-    int format;
-
-    /* picture header */
-    if (get_bits_long(&s->gb, 22) != 0x20) {
-        av_log(s->avctx, AV_LOG_ERROR, "Bad picture start code\n");
-        return -1;
-    }
-    s->picture_number = get_bits(&s->gb, 8); /* picture timestamp */
-
-    if (get_bits1(&s->gb) != 1) {
-        av_log(s->avctx, AV_LOG_ERROR, "Bad marker\n");
-        return -1;      /* marker */
-    }
-    if (get_bits1(&s->gb) != 0) {
-        av_log(s->avctx, AV_LOG_ERROR, "Bad H263 id\n");
-        return -1;      /* h263 id */
-    }
-    skip_bits1(&s->gb);         /* split screen off */
-    skip_bits1(&s->gb);         /* camera  off */
-    skip_bits1(&s->gb);         /* freeze picture release off */
-
-    format = get_bits(&s->gb, 3);
-    if (format != 7) {
-        av_log(s->avctx, AV_LOG_ERROR, "Intel H263 free format not supported\n");
-        return -1;
-    }
-    s->h263_plus = 0;
-
-    s->pict_type = FF_I_TYPE + get_bits1(&s->gb);
-
-    s->unrestricted_mv = get_bits1(&s->gb);
-    s->h263_long_vectors = s->unrestricted_mv;
-
-    if (get_bits1(&s->gb) != 0) {
-        av_log(s->avctx, AV_LOG_ERROR, "SAC not supported\n");
-        return -1;      /* SAC: off */
-    }
-    s->obmc= get_bits1(&s->gb);
-    s->pb_frame = get_bits1(&s->gb);
-
-    if(format == 7){
-        format = get_bits(&s->gb, 3);
-        if(format == 0 || format == 7){
-            av_log(s->avctx, AV_LOG_ERROR, "Wrong Intel H263 format\n");
-            return -1;
-        }
-        if(get_bits(&s->gb, 2))
-            av_log(s->avctx, AV_LOG_ERROR, "Bad value for reserved field\n");
-        s->loop_filter = get_bits1(&s->gb);
-        if(get_bits1(&s->gb))
-            av_log(s->avctx, AV_LOG_ERROR, "Bad value for reserved field\n");
-        if(get_bits1(&s->gb))
-            s->pb_frame = 2;
-        if(get_bits(&s->gb, 5))
-            av_log(s->avctx, AV_LOG_ERROR, "Bad value for reserved field\n");
-        if(get_bits(&s->gb, 5) != 1)
-            av_log(s->avctx, AV_LOG_ERROR, "Invalid marker\n");
-    }
-    if(format == 6){
-        int ar = get_bits(&s->gb, 4);
-        skip_bits(&s->gb, 9); // display width
-        skip_bits1(&s->gb);
-        skip_bits(&s->gb, 9); // display height
-        if(ar == 15){
-            skip_bits(&s->gb, 8); // aspect ratio - width
-            skip_bits(&s->gb, 8); // aspect ratio - height
-        }
-    }
-
-    s->chroma_qscale= s->qscale = get_bits(&s->gb, 5);
-    skip_bits1(&s->gb); /* Continuous Presence Multipoint mode: off */
-
-    if(s->pb_frame){
-        skip_bits(&s->gb, 3); //temporal reference for B-frame
-        skip_bits(&s->gb, 2); //dbquant
-    }
-
-    /* PEI */
-    while (get_bits1(&s->gb) != 0) {
-        skip_bits(&s->gb, 8);
-    }
-    s->f_code = 1;
-
-    s->y_dc_scale_table=
-    s->c_dc_scale_table= ff_mpeg1_dc_scale_table;
-
-    if(s->avctx->debug&FF_DEBUG_PICT_INFO)
-        show_pict_info(s);
-
-    return 0;
-}