summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Goldwich <david.goldwich@gmail.com>2011-12-02 05:54:21 +0100
committerAnton Khirnov <anton@khirnov.net>2011-12-04 15:21:06 +0100
commitc8b27a0ec4b36e20532c98469b7d9ee9dd31a8a9 (patch)
treed05670ac0efc5291b6b6daf62fc5e03aa8ad88da
parent8ae5eb75df683069b04cf45bfa9d25fbb161c996 (diff)
oma: PCM support
Signed-off-by: David Goldwich <david.goldwich@gmail.com> Signed-off-by: Anton Khirnov <anton@khirnov.net>
-rw-r--r--Changelog1
-rw-r--r--libavformat/oma.c17
2 files changed, 15 insertions, 3 deletions
diff --git a/Changelog b/Changelog
index ff37020bdb..bfb411e11d 100644
--- a/Changelog
+++ b/Changelog
@@ -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:
diff --git a/libavformat/oma.c b/libavformat/oma.c
index 4f4837d63b..1aa9a25477 100644
--- a/libavformat/oma.c
+++ b/libavformat/oma.c
@@ -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;