smacker: use meaningful error codes
Signed-off-by: Paul B Mahol <onemda@gmail.com>
This commit is contained in:
		
							parent
							
								
									29c3ebf56e
								
							
						
					
					
						commit
						547b8aeed4
					
				@ -110,7 +110,7 @@ static int smacker_read_header(AVFormatContext *s)
 | 
			
		||||
    /* read and check header */
 | 
			
		||||
    smk->magic = avio_rl32(pb);
 | 
			
		||||
    if (smk->magic != MKTAG('S', 'M', 'K', '2') && smk->magic != MKTAG('S', 'M', 'K', '4'))
 | 
			
		||||
        return -1;
 | 
			
		||||
        return AVERROR_INVALIDDATA;
 | 
			
		||||
    smk->width = avio_rl32(pb);
 | 
			
		||||
    smk->height = avio_rl32(pb);
 | 
			
		||||
    smk->frames = avio_rl32(pb);
 | 
			
		||||
@ -124,7 +124,7 @@ static int smacker_read_header(AVFormatContext *s)
 | 
			
		||||
 | 
			
		||||
    if(smk->treesize >= UINT_MAX/4){ // smk->treesize + 16 must not overflow (this check is probably redundant)
 | 
			
		||||
        av_log(s, AV_LOG_ERROR, "treesize too large\n");
 | 
			
		||||
        return -1;
 | 
			
		||||
        return AVERROR_INVALIDDATA;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
//FIXME remove extradata "rebuilding"
 | 
			
		||||
@ -140,7 +140,7 @@ static int smacker_read_header(AVFormatContext *s)
 | 
			
		||||
    /* setup data */
 | 
			
		||||
    if(smk->frames > 0xFFFFFF) {
 | 
			
		||||
        av_log(s, AV_LOG_ERROR, "Too many frames: %i\n", smk->frames);
 | 
			
		||||
        return -1;
 | 
			
		||||
        return AVERROR_INVALIDDATA;
 | 
			
		||||
    }
 | 
			
		||||
    smk->frm_size = av_malloc(smk->frames * 4);
 | 
			
		||||
    smk->frm_flags = av_malloc(smk->frames);
 | 
			
		||||
@ -158,7 +158,7 @@ static int smacker_read_header(AVFormatContext *s)
 | 
			
		||||
    /* init video codec */
 | 
			
		||||
    st = avformat_new_stream(s, NULL);
 | 
			
		||||
    if (!st)
 | 
			
		||||
        return -1;
 | 
			
		||||
        return AVERROR(ENOMEM);
 | 
			
		||||
    smk->videoindex = st->index;
 | 
			
		||||
    st->codec->width = smk->width;
 | 
			
		||||
    st->codec->height = smk->height;
 | 
			
		||||
@ -216,7 +216,7 @@ static int smacker_read_header(AVFormatContext *s)
 | 
			
		||||
        av_log(s, AV_LOG_ERROR, "Cannot allocate %i bytes of extradata\n", smk->treesize + 16);
 | 
			
		||||
        av_free(smk->frm_size);
 | 
			
		||||
        av_free(smk->frm_flags);
 | 
			
		||||
        return -1;
 | 
			
		||||
        return AVERROR(ENOMEM);
 | 
			
		||||
    }
 | 
			
		||||
    ret = avio_read(pb, st->codec->extradata + 16, st->codec->extradata_size - 16);
 | 
			
		||||
    if(ret != st->codec->extradata_size - 16){
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user