diff options
author | Ho-Eun Ryu <ho-eun.ryu@windriver.com> | 2009-12-17 13:33:26 +0900 |
---|---|---|
committer | Patrick Tjin <pattjin@google.com> | 2014-07-21 22:03:34 -0700 |
commit | c0cd401e967952c0dec9a5753dd53313b7bd817f (patch) | |
tree | 7edb93e612892645059057081c62a73978411bdc /utils | |
parent | 52c06a6af5a4560535a30e96d5bae93db94fb023 (diff) | |
download | wrs_omxil_core-c0cd401e967952c0dec9a5753dd53313b7bd817f.tar.gz |
utils:audio_parser: fix prototype mp3_header_parse for getting frame duration
It's hard-coded for version 1, layer 3
Diffstat (limited to 'utils')
-rw-r--r-- | utils/inc/audio_parser.h | 2 | ||||
-rw-r--r-- | utils/src/audio_parser.c | 15 |
2 files changed, 15 insertions, 2 deletions
diff --git a/utils/inc/audio_parser.h b/utils/inc/audio_parser.h index 40bd08d..a28b728 100644 --- a/utils/inc/audio_parser.h +++ b/utils/inc/audio_parser.h @@ -36,7 +36,7 @@ extern "C" { int mp3_header_parse(const unsigned char *buffer, int *version, int *layer, int *crc, int *bitrate, int *frequency, int *channel, int *mode_extension, - int *frame_length); + int *frame_length, int *frame_duration); /* end of MP3 */ diff --git a/utils/src/audio_parser.c b/utils/src/audio_parser.c index 948d903..ee39298 100644 --- a/utils/src/audio_parser.c +++ b/utils/src/audio_parser.c @@ -312,10 +312,21 @@ static inline int mp3_calculate_frame_length(int bitrate, int samplingrate, return frame_length; } +/* + * FIXME + * - It's hard coded for version 1, layer 3 + */ +static inline int mp3_calculate_frame_duration(int version, + int layer, + int frequency) +{ + return 1152 * 1000 / frequency; +} + int mp3_header_parse(const unsigned char *buffer, int *version, int *layer, int *crc, int *bitrate, int *frequency, int *channel, int *mode_extension, - int *frame_length) + int *frame_length, int *frame_duration) { const unsigned char *p = buffer; struct mp3_frame_header_s header; @@ -369,6 +380,8 @@ int mp3_header_parse(const unsigned char *buffer, *mode_extension = header.mode_extension; *frame_length = mp3_calculate_frame_length(*bitrate, *frequency, *layer, header.padding_bit); + *frame_duration = mp3_calculate_frame_duration(*version, *layer, + *frequency); LOGV("mp3 frame header\n"); LOGV(" sync: 0x%x\n", header.sync); |