Mercurial > libavformat.hg
comparison flvdec.c @ 5461:bb70b4771e0c libavformat
FLV 8-bit PCM is unsigned, not signed
Fixes issue #1569
author | daniel |
---|---|
date | Mon, 14 Dec 2009 03:30:25 +0000 |
parents | 4211f91f69b1 |
children | 60e08f8038bd |
comparison
equal
deleted
inserted
replaced
5460:8919f5110dbf | 5461:bb70b4771e0c |
---|---|
48 static void flv_set_audio_codec(AVFormatContext *s, AVStream *astream, int flv_codecid) { | 48 static void flv_set_audio_codec(AVFormatContext *s, AVStream *astream, int flv_codecid) { |
49 AVCodecContext *acodec = astream->codec; | 49 AVCodecContext *acodec = astream->codec; |
50 switch(flv_codecid) { | 50 switch(flv_codecid) { |
51 //no distinction between S16 and S8 PCM codec flags | 51 //no distinction between S16 and S8 PCM codec flags |
52 case FLV_CODECID_PCM: | 52 case FLV_CODECID_PCM: |
53 acodec->codec_id = acodec->bits_per_coded_sample == 8 ? CODEC_ID_PCM_S8 : | 53 acodec->codec_id = acodec->bits_per_coded_sample == 8 ? CODEC_ID_PCM_U8 : |
54 #if HAVE_BIGENDIAN | 54 #if HAVE_BIGENDIAN |
55 CODEC_ID_PCM_S16BE; | 55 CODEC_ID_PCM_S16BE; |
56 #else | 56 #else |
57 CODEC_ID_PCM_S16LE; | 57 CODEC_ID_PCM_S16LE; |
58 #endif | 58 #endif |
59 break; | 59 break; |
60 case FLV_CODECID_PCM_LE: | 60 case FLV_CODECID_PCM_LE: |
61 acodec->codec_id = acodec->bits_per_coded_sample == 8 ? CODEC_ID_PCM_S8 : CODEC_ID_PCM_S16LE; break; | 61 acodec->codec_id = acodec->bits_per_coded_sample == 8 ? CODEC_ID_PCM_U8 : CODEC_ID_PCM_S16LE; break; |
62 case FLV_CODECID_AAC : acodec->codec_id = CODEC_ID_AAC; break; | 62 case FLV_CODECID_AAC : acodec->codec_id = CODEC_ID_AAC; break; |
63 case FLV_CODECID_ADPCM: acodec->codec_id = CODEC_ID_ADPCM_SWF; break; | 63 case FLV_CODECID_ADPCM: acodec->codec_id = CODEC_ID_ADPCM_SWF; break; |
64 case FLV_CODECID_SPEEX: | 64 case FLV_CODECID_SPEEX: |
65 acodec->codec_id = CODEC_ID_SPEEX; | 65 acodec->codec_id = CODEC_ID_SPEEX; |
66 acodec->sample_rate = 16000; | 66 acodec->sample_rate = 16000; |