H.264: move avctx->{profile,level} init before AVCodecContext.get_format().
authorGwenole Beauchesne <gbeauchesne@splitted-desktop.com>
Thu, 15 Apr 2010 08:30:48 +0000 (08:30 +0000)
committerGwenole Beauchesne <gbeauchesne@splitted-desktop.com>
Thu, 15 Apr 2010 08:30:48 +0000 (08:30 +0000)
Originally committed as revision 22884 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/h264.c

index 59e6448..d4d9d21 100644 (file)
@@ -1777,6 +1777,8 @@ static int decode_slice_header(H264Context *h, H264Context *h0){
     }
     h->sps = *h0->sps_buffers[h->pps.sps_id];
 
+    s->avctx->profile = h->sps.profile_idc;
+    s->avctx->level   = h->sps.level_idc;
     s->avctx->refs= h->sps.ref_frame_count;
 
     if(h == h0 && h->dequant_coeff_pps != pps_id){
@@ -2818,9 +2820,6 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size){
             if((err = decode_slice_header(hx, h)))
                break;
 
-            avctx->profile = hx->sps.profile_idc;
-            avctx->level   = hx->sps.level_idc;
-
             if (h->current_slice == 1) {
                 if (s->avctx->hwaccel && s->avctx->hwaccel->start_frame(s->avctx, NULL, 0) < 0)
                     return -1;
@@ -2856,9 +2855,6 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size){
             if ((err = decode_slice_header(hx, h)) < 0)
                 break;
 
-            avctx->profile = hx->sps.profile_idc;
-            avctx->level   = hx->sps.level_idc;
-
             hx->s.data_partitioning = 1;
 
             break;