summaryrefslogtreecommitdiff
path: root/src/rtp_profile_amrwb.cc
diff options
context:
space:
mode:
authorBent Bisballe Nyeng <deva@aasimon.org>2014-01-06 08:07:56 +0100
committerBent Bisballe Nyeng <deva@aasimon.org>2014-01-06 08:07:56 +0100
commit0f900a2b4d7707dddeddadd62ac5a109aed93e7e (patch)
treec7b125951de8d4e6ee045449d03b3772e84f8bac /src/rtp_profile_amrwb.cc
parent06cd551da9405a220b170ffaf77d6554cbace69d (diff)
Fix round robin frame selector. Add l16 and jpeg profiles. Add timestamp to lrtp_enqueue_frame.
Diffstat (limited to 'src/rtp_profile_amrwb.cc')
-rw-r--r--src/rtp_profile_amrwb.cc18
1 files changed, 13 insertions, 5 deletions
diff --git a/src/rtp_profile_amrwb.cc b/src/rtp_profile_amrwb.cc
index b376cb9..94084cf 100644
--- a/src/rtp_profile_amrwb.cc
+++ b/src/rtp_profile_amrwb.cc
@@ -94,7 +94,7 @@ static int frame_type_index(const char *frame_header)
return (*frame_header >> 3) & 0xf;
}
-static int set_frame_type_index(char *frame_header, int index)
+static void set_frame_type_index(char *frame_header, int index)
{
*frame_header = (*frame_header & 0x87) | ( (index & 0xf) << 3);
}
@@ -105,12 +105,13 @@ static int set_frame_type_index(char *frame_header, int index)
* set the RX_TYPE (see [6]) to either SPEECH_BAD or SID_BAD
* depending on the frame type (FT).
*/
+/*
static int quality_indicator(const char *frame_header)
{
return (*frame_header >> 2) & 0x1;
}
-
-static int set_quality_indicator(char *frame_header, int quality)
+*/
+static void set_quality_indicator(char *frame_header, int quality)
{
*frame_header = (*frame_header & 0xf8) | ( (quality & 0x1) << 2);
}
@@ -223,10 +224,13 @@ int profile_amrwb_unpack(struct lrtp_profile_t *profile,
const RTP &rtp,
std::list<outputframe_t *> &framelist)
{
- struct lrtp_profile_amrwb_t *p = (struct lrtp_profile_amrwb_t *)profile;
+ //struct lrtp_profile_amrwb_t *p = (struct lrtp_profile_amrwb_t *)profile;
- size_t size = rtp.payloadSize();
+ //size_t size = rtp.payloadSize();
const char *payload = rtp.payloadData();
+
+ unsigned int timestamp = rtp.timestamp();
+
/*
printf("---------------------------------------- New packet:\n");
printf("payload (unpack):\n");
@@ -265,6 +269,7 @@ int profile_amrwb_unpack(struct lrtp_profile_t *profile,
size_t frame_size = wb_frame_size[frame_size_idx];
outputframe_t *of = new outputframe_t();
+ of->ts = timestamp;
of->size = frame_size;
char *buf = (char*)malloc(of->size);
memcpy(buf, frame_data, frame_size);
@@ -278,6 +283,9 @@ int profile_amrwb_unpack(struct lrtp_profile_t *profile,
frame_toc += frameheader_size;
frame_data += frame_size;
+ int num_samples = 1; // TODO: Figure out how many samples were in this package
+ timestamp += num_samples;
+
frame_num--;
}