1/*
2 *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
3 *
4 *  Use of this source code is governed by a BSD-style license
5 *  that can be found in the LICENSE file in the root of the source
6 *  tree. An additional intellectual property rights grant can be found
7 *  in the file PATENTS.  All contributing project authors may
8 *  be found in the AUTHORS file in the root of the source tree.
9 */
10
11/*
12 * decode_bwe.c
13 *
14 * This C file contains the internal decode bandwidth estimate function.
15 *
16 */
17
18
19#include "bandwidth_estimator.h"
20#include "codec.h"
21#include "entropy_coding.h"
22#include "structs.h"
23
24
25
26
27int WebRtcIsacfix_EstimateBandwidth(BwEstimatorstr *bwest_str,
28                                    Bitstr_dec  *streamdata,
29                                    int32_t  packet_size,
30                                    uint16_t rtp_seq_number,
31                                    uint32_t send_ts,
32                                    uint32_t arr_ts)
33{
34  int16_t index;
35  int16_t frame_samples;
36  int err;
37
38  /* decode framelength */
39  err = WebRtcIsacfix_DecodeFrameLen(streamdata, &frame_samples);
40  /* error check */
41  if (err<0) {
42    return err;
43  }
44
45  /* decode BW estimation */
46  err = WebRtcIsacfix_DecodeSendBandwidth(streamdata, &index);
47  /* error check */
48  if (err<0) {
49    return err;
50  }
51
52  /* Update BWE with received data */
53  err = WebRtcIsacfix_UpdateUplinkBwImpl(
54      bwest_str,
55      rtp_seq_number,
56      frame_samples * 1000 / FS,
57      send_ts,
58      arr_ts,
59      (int16_t) packet_size,  /* in bytes */
60      index);
61
62  /* error check */
63  if (err<0) {
64    return err;
65  }
66
67  /* Succesful */
68  return 0;
69}
70