oma: PCM support
Signed-off-by: David Goldwich <david.goldwich@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
		 David Goldwich
					David Goldwich
				
			
				
					committed by
					
						 Anton Khirnov
						Anton Khirnov
					
				
			
			
				
	
			
			
			 Anton Khirnov
						Anton Khirnov
					
				
			
						parent
						
							8ae5eb75df
						
					
				
				
					commit
					c8b27a0ec4
				
			| @@ -104,6 +104,7 @@ easier to use. The changes are: | ||||
| - OS X Video Decoder Acceleration (VDA) support | ||||
| - CRI ADX audio format demuxer | ||||
| - Playstation Portable PMP format demuxer | ||||
| - PCM format support in OMA demuxer | ||||
|  | ||||
|  | ||||
| version 0.7: | ||||
|   | ||||
| @@ -61,9 +61,10 @@ enum { | ||||
| }; | ||||
|  | ||||
| static const AVCodecTag codec_oma_tags[] = { | ||||
|     { CODEC_ID_ATRAC3,  OMA_CODECID_ATRAC3 }, | ||||
|     { CODEC_ID_ATRAC3P, OMA_CODECID_ATRAC3P }, | ||||
|     { CODEC_ID_MP3,     OMA_CODECID_MP3 }, | ||||
|     { CODEC_ID_ATRAC3,      OMA_CODECID_ATRAC3 }, | ||||
|     { CODEC_ID_ATRAC3P,     OMA_CODECID_ATRAC3P }, | ||||
|     { CODEC_ID_MP3,         OMA_CODECID_MP3 }, | ||||
|     { CODEC_ID_PCM_S16BE,   OMA_CODECID_LPCM }, | ||||
| }; | ||||
|  | ||||
| static const uint64_t leaf_table[] = { | ||||
| @@ -358,6 +359,16 @@ static int oma_read_header(AVFormatContext *s, | ||||
|             st->need_parsing = AVSTREAM_PARSE_FULL; | ||||
|             framesize = 1024; | ||||
|             break; | ||||
|         case OMA_CODECID_LPCM: | ||||
|             /* PCM 44.1 kHz 16 bit stereo big-endian */ | ||||
|             st->codec->channels = 2; | ||||
|             st->codec->sample_rate = 44100; | ||||
|             framesize = 1024; | ||||
|             /* bit rate = sample rate x PCM block align (= 4) x 8 */ | ||||
|             st->codec->bit_rate = st->codec->sample_rate * 32; | ||||
|             st->codec->bits_per_coded_sample = av_get_bits_per_sample(st->codec->codec_id); | ||||
|             avpriv_set_pts_info(st, 64, 1, st->codec->sample_rate); | ||||
|             break; | ||||
|         default: | ||||
|             av_log(s, AV_LOG_ERROR, "Unsupported codec %d!\n",buf[32]); | ||||
|             return -1; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user