aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
authorHo-Eun Ryu <ho-eun.ryu@windriver.com>2009-12-17 13:33:26 +0900
committerPatrick Tjin <pattjin@google.com>2014-07-21 22:03:34 -0700
commitc0cd401e967952c0dec9a5753dd53313b7bd817f (patch)
tree7edb93e612892645059057081c62a73978411bdc /utils
parent52c06a6af5a4560535a30e96d5bae93db94fb023 (diff)
downloadwrs_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.h2
-rw-r--r--utils/src/audio_parser.c15
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);