~ubuntu-branches/ubuntu/wily/sflphone/wily

« back to all changes in this revision

Viewing changes to daemon/src/audio/codecs/audiocodec.cpp

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2015-01-07 14:51:16 UTC
  • mfrom: (4.3.5 sid)
  • Revision ID: package-import@ubuntu.com-20150107145116-yxnafinf4lrdvrmx
Tags: 1.4.1-0.1ubuntu1
* Merge with Debian, remaining changes:
 - Drop soprano, nepomuk build-dep
* Drop ubuntu patches, now upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
 */
32
32
 
33
33
#include "audiocodec.h"
 
34
#include <cassert>
34
35
using std::ptrdiff_t;
35
36
 
36
37
namespace sfl {
37
38
 
38
 
AudioCodec::AudioCodec(uint8_t payload, const std::string &codecName,
39
 
                       int clockRate, int frameSize, unsigned channels) :
 
39
AudioCodec::AudioCodec(uint8_t payload, const std::string &codecName, uint32_t clockRate, unsigned frameSize, uint8_t channels) :
40
40
    codecName_(codecName),
41
41
    clockRate_(clockRate),
42
 
    channel_(channels),
 
42
    clockRateCur_(clockRate),
 
43
    channels_(channels),
 
44
    channelsCur_(channels),
43
45
    frameSize_(frameSize),
44
46
    bitrate_(0.0),
45
47
    payload_(payload),
49
51
AudioCodec::AudioCodec(const AudioCodec& c) :
50
52
    codecName_(c.codecName_),
51
53
    clockRate_(c.clockRate_),
52
 
    channel_(c.channel_),
 
54
    clockRateCur_(c.clockRateCur_),
 
55
    channels_(c.channels_),
 
56
    channelsCur_(c.channelsCur_),
53
57
    frameSize_(c.frameSize_),
54
58
    bitrate_(c.bitrate_),
55
59
    payload_(c.payload_),
56
60
    hasDynamicPayload_(c.hasDynamicPayload_)
57
61
{}
58
62
 
59
 
// Mono only, subclasses must implement multichannel support
60
 
int AudioCodec::decode(std::vector<std::vector<SFLAudioSample> > &dst, unsigned char *buf, size_t buffer_size)
61
 
{
62
 
    return decode(dst[0].data(), buf, buffer_size);
63
 
}
64
 
 
65
 
// Mono only, subclasses must implement multichannel support
66
 
int AudioCodec::encode(unsigned char *dst, std::vector<std::vector<SFLAudioSample> > &src, size_t buffer_size)
67
 
{
68
 
    return encode(dst, src[0].data(), buffer_size);
 
63
int AudioCodec::decode(SFLAudioSample *, unsigned char *, size_t)
 
64
{
 
65
    // Unimplemented!
 
66
    assert(false);
 
67
    return 0;
 
68
}
 
69
 
 
70
int AudioCodec::encode(unsigned char *, SFLAudioSample *, size_t)
 
71
{
 
72
    // Unimplemented!
 
73
    assert(false);
 
74
    return 0;
 
75
}
 
76
 
 
77
 
 
78
// Mono only, subclasses must implement multichannel support
 
79
int AudioCodec::decode(std::vector<std::vector<SFLAudioSample> > &pcm, const uint8_t* data, size_t len)
 
80
{
 
81
    return decode(pcm[0].data(), const_cast<uint8_t*>(data), len);
 
82
}
 
83
 
 
84
// Mono only, subclasses must implement multichannel support
 
85
size_t AudioCodec::encode(const std::vector<std::vector<SFLAudioSample> > &pcm, uint8_t *data, size_t len)
 
86
{
 
87
    return encode(data, const_cast<SFLAudioSample*>(pcm[0].data()), len);
 
88
}
 
89
 
 
90
int AudioCodec::decode(std::vector<std::vector<SFLAudioSample> > &pcm)
 
91
{
 
92
    pcm.clear();
 
93
    return frameSize_;
69
94
}
70
95
 
71
96
std::string AudioCodec::getMimeSubtype() const
88
113
    return clockRate_;
89
114
}
90
115
 
 
116
uint32_t AudioCodec::getCurrentClockRate() const
 
117
{
 
118
    return clockRateCur_;
 
119
}
 
120
 
91
121
uint32_t AudioCodec::getSDPClockRate() const
92
122
{
93
123
    return clockRate_;
103
133
    return bitrate_;
104
134
}
105
135
 
106
 
unsigned AudioCodec::getChannels() const
107
 
{
108
 
    return channel_;
 
136
uint8_t AudioCodec::getChannels() const
 
137
{
 
138
    return channels_;
 
139
}
 
140
 
 
141
uint8_t AudioCodec::getCurrentChannels() const
 
142
{
 
143
    return channelsCur_;
109
144
}
110
145
 
111
146
const char *