Mercurial > libavcodec.hg
changeset 6720:2c540dc9ca2c libavcodec
Fix decoding of:
http://samples.mplayerhq.hu/A-codecs/msgsm/levis.avi
http://samples.mplayerhq.hu/A-codecs/msgsm/wernfried_1.avi
partially fix decoding of:
http://samples.mplayerhq.hu/A-codecs/GSM/sample-gsm-8000.gsm
Allow the user to encode non standard samplerates by using -strict
author | michael |
---|---|
date | Tue, 29 Apr 2008 18:31:29 +0000 |
parents | e88e719b5e77 |
children | 1c3bcb60bed4 |
files | libgsm.c |
diffstat | 1 files changed, 11 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libgsm.c Tue Apr 29 14:08:01 2008 +0000 +++ b/libgsm.c Tue Apr 29 18:31:29 2008 +0000 @@ -41,9 +41,18 @@ avctx->channels); return -1; } + + if(avctx->codec->decode){ + if(!avctx->channels) + avctx->channels= 1; + + if(!avctx->sample_rate) + avctx->sample_rate= 8000; + }else{ if (avctx->sample_rate != 8000) { av_log(avctx, AV_LOG_ERROR, "Sample rate 8000Hz required for GSM, got %dHz\n", avctx->sample_rate); + if(avctx->strict_std_compliance > FF_COMPLIANCE_INOFFICIAL) return -1; } if (avctx->bit_rate != 13000 /* Official */ && @@ -51,8 +60,10 @@ avctx->bit_rate != 0 /* Unknown; a.o. mov does not set bitrate when decoding */ ) { av_log(avctx, AV_LOG_ERROR, "Bitrate 13000bps required for GSM, got %dbps\n", avctx->bit_rate); + if(avctx->strict_std_compliance > FF_COMPLIANCE_INOFFICIAL) return -1; } + } avctx->priv_data = gsm_create();