hevc: export stream parameters from extradata
authorAnton Khirnov <anton@khirnov.net>
Sun, 29 Mar 2015 12:15:41 +0000 (14:15 +0200)
committerAnton Khirnov <anton@khirnov.net>
Fri, 3 Apr 2015 11:10:03 +0000 (13:10 +0200)
This allows the callers to have a hint of the probable stream parameters
without actually decoding anything.

libavcodec/hevc.c

index 7b2b382..4c06fb8 100644 (file)
@@ -3138,7 +3138,7 @@ static int hevc_decode_extradata(HEVCContext *s)
 {
     AVCodecContext *avctx = s->avctx;
     GetByteContext gb;
-    int ret;
+    int ret, i;
 
     bytestream2_init(&gb, avctx->extradata, avctx->extradata_size);
 
@@ -3195,6 +3195,16 @@ static int hevc_decode_extradata(HEVCContext *s)
         if (ret < 0)
             return ret;
     }
+
+    /* export stream parameters from the first SPS */
+    for (i = 0; i < FF_ARRAY_ELEMS(s->sps_list); i++) {
+        if (s->sps_list[i]) {
+            const HEVCSPS *sps = (const HEVCSPS*)s->sps_list[i]->data;
+            export_stream_params(s->avctx, s, sps);
+            break;
+        }
+    }
+
     return 0;
 }