You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	libspeex: support ZygoAudio (quality 10 mode)
Fixes "quality 10" mode from Ticket1873 Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
				
					committed by
					
						 Michael Niedermayer
						Michael Niedermayer
					
				
			
			
				
	
			
			
			
						parent
						
							785b849f1c
						
					
				
				
					commit
					e26b066cd8
				
			| @@ -50,7 +50,17 @@ static av_cold int libspeex_decode_init(AVCodecContext *avctx) | ||||
|         if (!header) | ||||
|             av_log(avctx, AV_LOG_WARNING, "Invalid Speex header\n"); | ||||
|     } | ||||
|     if (header) { | ||||
|     if (avctx->codec_tag == MKTAG('S', 'P', 'X', 'N')) { | ||||
|         if (!avctx->extradata || avctx->extradata && avctx->extradata_size < 47) { | ||||
|             av_log(avctx, AV_LOG_ERROR, "Missing or invalid extradata.\n"); | ||||
|             return AVERROR_INVALIDDATA; | ||||
|         } | ||||
|         if (avctx->extradata[37] != 10) { | ||||
|             av_log(avctx, AV_LOG_ERROR, "Unsupported quality mode.\n"); | ||||
|             return AVERROR_PATCHWELCOME; | ||||
|         } | ||||
|         spx_mode           = 0; | ||||
|     } else if (header) { | ||||
|         avctx->sample_rate = header->rate; | ||||
|         avctx->channels    = header->nb_channels; | ||||
|         spx_mode           = header->mode; | ||||
|   | ||||
| @@ -293,6 +293,7 @@ const AVCodecTag ff_codec_movaudio_tags[] = { | ||||
|     { AV_CODEC_ID_QDM2,            MKTAG('Q', 'D', 'M', '2') }, | ||||
|     { AV_CODEC_ID_QDMC,            MKTAG('Q', 'D', 'M', 'C') }, | ||||
|     { AV_CODEC_ID_SPEEX,           MKTAG('s', 'p', 'e', 'x') }, /* Flash Media Server */ | ||||
|     { AV_CODEC_ID_SPEEX,           MKTAG('S', 'P', 'X', 'N') }, | ||||
|     { AV_CODEC_ID_WMAV2,           MKTAG('W', 'M', 'A', '2') }, | ||||
|     { AV_CODEC_ID_EVRC,            MKTAG('s', 'e', 'v', 'c') }, /* 3GPP2 */ | ||||
|     { AV_CODEC_ID_SMV,             MKTAG('s', 's', 'm', 'v') }, /* 3GPP2 */ | ||||
|   | ||||
| @@ -1033,7 +1033,9 @@ static int mov_read_wave(MOVContext *c, AVIOContext *pb, MOVAtom atom) | ||||
|     if ((uint64_t)atom.size > (1<<30)) | ||||
|         return AVERROR_INVALIDDATA; | ||||
|  | ||||
|     if (st->codec->codec_id == AV_CODEC_ID_QDM2 || st->codec->codec_id == AV_CODEC_ID_QDMC) { | ||||
|     if (st->codec->codec_id == AV_CODEC_ID_QDM2 || | ||||
|         st->codec->codec_id == AV_CODEC_ID_QDMC || | ||||
|         st->codec->codec_id == AV_CODEC_ID_SPEEX) { | ||||
|         // pass all frma atom to codec, needed at least for QDMC and QDM2 | ||||
|         av_free(st->codec->extradata); | ||||
|         st->codec->extradata_size = 0; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user