]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/libnut.c
Merge remote-tracking branch 'qatar/master'
[ffmpeg] / libavformat / libnut.c
index 9f64544d2a5d7ae74052e38eab4b6254e393b8b1..c6d552db592a0f084618f9a878f9573d7e4d88e7 100644 (file)
@@ -188,7 +188,7 @@ static off_t av_seek(void * h, long long pos, int whence) {
     return avio_seek(bc, pos, whence);
 }
 
-static int nut_read_header(AVFormatContext * avf, AVFormatParameters * ap) {
+static int nut_read_header(AVFormatContext * avf) {
     NUTContext * priv = avf->priv_data;
     AVIOContext * bc = avf->pb;
     nut_demuxer_opts_tt dopts = {
@@ -207,9 +207,13 @@ static int nut_read_header(AVFormatContext * avf, AVFormatParameters * ap) {
     nut_stream_header_tt * s;
     int ret, i;
 
+    if(!nut)
+        return -1;
+
     if ((ret = nut_read_headers(nut, &s, NULL))) {
         av_log(avf, AV_LOG_ERROR, " NUT error: %s\n", nut_error(ret));
         nut_demuxer_uninit(nut);
+        priv->nut = NULL;
         return -1;
     }
 
@@ -228,6 +232,7 @@ static int nut_read_header(AVFormatContext * avf, AVFormatParameters * ap) {
             st->codec->extradata = av_mallocz(st->codec->extradata_size);
             if(!st->codec->extradata){
                 nut_demuxer_uninit(nut);
+                priv->nut = NULL;
                 return AVERROR(ENOMEM);
             }
             memcpy(st->codec->extradata, s[i].codec_specific, st->codec->extradata_size);