ac3: Return proper error codes
(cherry picked from commit b1f9cdc37f)
Signed-off-by: Luca Barbato <lu_zero@gentoo.org>
			
			
This commit is contained in:
		 Luca Barbato
					Luca Barbato
				
			
				
					committed by
					
						 Sean McGovern
						Sean McGovern
					
				
			
			
				
	
			
			
			 Sean McGovern
						Sean McGovern
					
				
			
						parent
						
							37e69e2dee
						
					
				
				
					commit
					c225c620c6
				
			| @@ -297,7 +297,7 @@ static int parse_frame_header(AC3DecodeContext *s) | ||||
|         return ff_eac3_parse_header(s); | ||||
|     } else { | ||||
|         av_log(s->avctx, AV_LOG_ERROR, "E-AC-3 support not compiled in\n"); | ||||
|         return -1; | ||||
|         return AVERROR(ENOSYS); | ||||
|     } | ||||
| } | ||||
|  | ||||
| @@ -822,12 +822,12 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | ||||
|             if (start_subband >= end_subband) { | ||||
|                 av_log(s->avctx, AV_LOG_ERROR, "invalid spectral extension " | ||||
|                        "range (%d >= %d)\n", start_subband, end_subband); | ||||
|                 return -1; | ||||
|                 return AVERROR_INVALIDDATA; | ||||
|             } | ||||
|             if (dst_start_freq >= src_start_freq) { | ||||
|                 av_log(s->avctx, AV_LOG_ERROR, "invalid spectral extension " | ||||
|                        "copy start bin (%d >= %d)\n", dst_start_freq, src_start_freq); | ||||
|                 return -1; | ||||
|                 return AVERROR_INVALIDDATA; | ||||
|             } | ||||
|  | ||||
|             s->spx_dst_start_freq = dst_start_freq; | ||||
| @@ -904,7 +904,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | ||||
|  | ||||
|             if (channel_mode < AC3_CHMODE_STEREO) { | ||||
|                 av_log(s->avctx, AV_LOG_ERROR, "coupling not allowed in mono or dual-mono\n"); | ||||
|                 return -1; | ||||
|                 return AVERROR_INVALIDDATA; | ||||
|             } | ||||
|  | ||||
|             /* check for enhanced coupling */ | ||||
| @@ -934,7 +934,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | ||||
|             if (cpl_start_subband >= cpl_end_subband) { | ||||
|                 av_log(s->avctx, AV_LOG_ERROR, "invalid coupling range (%d >= %d)\n", | ||||
|                        cpl_start_subband, cpl_end_subband); | ||||
|                 return -1; | ||||
|                 return AVERROR_INVALIDDATA; | ||||
|             } | ||||
|             s->start_freq[CPL_CH] = cpl_start_subband * 12 + 37; | ||||
|             s->end_freq[CPL_CH]   = cpl_end_subband   * 12 + 37; | ||||
| @@ -956,7 +956,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | ||||
|         if (!blk) { | ||||
|             av_log(s->avctx, AV_LOG_ERROR, "new coupling strategy must " | ||||
|                    "be present in block 0\n"); | ||||
|             return -1; | ||||
|             return AVERROR_INVALIDDATA; | ||||
|         } else { | ||||
|             s->cpl_in_use[blk] = s->cpl_in_use[blk-1]; | ||||
|         } | ||||
| @@ -986,7 +986,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | ||||
|                 } else if (!blk) { | ||||
|                     av_log(s->avctx, AV_LOG_ERROR, "new coupling coordinates must " | ||||
|                            "be present in block 0\n"); | ||||
|                     return -1; | ||||
|                     return AVERROR_INVALIDDATA; | ||||
|                 } | ||||
|             } else { | ||||
|                 /* channel not in coupling */ | ||||
| @@ -1041,7 +1041,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | ||||
|                 int bandwidth_code = get_bits(gbc, 6); | ||||
|                 if (bandwidth_code > 60) { | ||||
|                     av_log(s->avctx, AV_LOG_ERROR, "bandwidth code = %d > 60\n", bandwidth_code); | ||||
|                     return -1; | ||||
|                     return AVERROR_INVALIDDATA; | ||||
|                 } | ||||
|                 s->end_freq[ch] = bandwidth_code * 3 + 73; | ||||
|             } | ||||
| @@ -1064,7 +1064,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | ||||
|                                  s->num_exp_groups[ch], s->dexps[ch][0], | ||||
|                                  &s->dexps[ch][s->start_freq[ch]+!!ch])) { | ||||
|                 av_log(s->avctx, AV_LOG_ERROR, "exponent out-of-range\n"); | ||||
|                 return -1; | ||||
|                 return AVERROR_INVALIDDATA; | ||||
|             } | ||||
|             if (ch != CPL_CH && ch != s->lfe_ch) | ||||
|                 skip_bits(gbc, 2); /* skip gainrng */ | ||||
| @@ -1084,7 +1084,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | ||||
|         } else if (!blk) { | ||||
|             av_log(s->avctx, AV_LOG_ERROR, "new bit allocation info must " | ||||
|                    "be present in block 0\n"); | ||||
|             return -1; | ||||
|             return AVERROR_INVALIDDATA; | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -1115,7 +1115,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | ||||
|             } | ||||
|         } else if (!s->eac3 && !blk) { | ||||
|             av_log(s->avctx, AV_LOG_ERROR, "new snr offsets must be present in block 0\n"); | ||||
|             return -1; | ||||
|             return AVERROR_INVALIDDATA; | ||||
|         } | ||||
|     } | ||||
|  | ||||
| @@ -1154,7 +1154,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | ||||
|         } else if (!s->eac3 && !blk) { | ||||
|             av_log(s->avctx, AV_LOG_ERROR, "new coupling leak info must " | ||||
|                    "be present in block 0\n"); | ||||
|             return -1; | ||||
|             return AVERROR_INVALIDDATA; | ||||
|         } | ||||
|         s->first_cpl_leak = 0; | ||||
|     } | ||||
| @@ -1166,7 +1166,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | ||||
|             s->dba_mode[ch] = get_bits(gbc, 2); | ||||
|             if (s->dba_mode[ch] == DBA_RESERVED) { | ||||
|                 av_log(s->avctx, AV_LOG_ERROR, "delta bit allocation strategy reserved\n"); | ||||
|                 return -1; | ||||
|                 return AVERROR_INVALIDDATA; | ||||
|             } | ||||
|             bit_alloc_stages[ch] = FFMAX(bit_alloc_stages[ch], 2); | ||||
|         } | ||||
| @@ -1207,7 +1207,7 @@ static int decode_audio_block(AC3DecodeContext *s, int blk) | ||||
|                                            s->dba_offsets[ch], s->dba_lengths[ch], | ||||
|                                            s->dba_values[ch],  s->mask[ch])) { | ||||
|                 av_log(s->avctx, AV_LOG_ERROR, "error in bit allocation\n"); | ||||
|                 return -1; | ||||
|                 return AVERROR_INVALIDDATA; | ||||
|             } | ||||
|         } | ||||
|         if (bit_alloc_stages[ch] > 0) { | ||||
| @@ -1328,7 +1328,7 @@ static int ac3_decode_frame(AVCodecContext * avctx, void *data, | ||||
|         switch (err) { | ||||
|         case AAC_AC3_PARSE_ERROR_SYNC: | ||||
|             av_log(avctx, AV_LOG_ERROR, "frame sync error\n"); | ||||
|             return -1; | ||||
|             return AVERROR_INVALIDDATA; | ||||
|         case AAC_AC3_PARSE_ERROR_BSID: | ||||
|             av_log(avctx, AV_LOG_ERROR, "invalid bitstream id\n"); | ||||
|             break; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user