diff options
author | Bent Bisballe Nyeng <deva@aasimon.org> | 2014-01-06 08:07:56 +0100 |
---|---|---|
committer | Bent Bisballe Nyeng <deva@aasimon.org> | 2014-01-06 08:07:56 +0100 |
commit | 0f900a2b4d7707dddeddadd62ac5a109aed93e7e (patch) | |
tree | c7b125951de8d4e6ee045449d03b3772e84f8bac /src/rtp_profile_amrwb.cc | |
parent | 06cd551da9405a220b170ffaf77d6554cbace69d (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.cc | 18 |
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--; } |