~ubuntu-branches/ubuntu/precise/crtmpserver/precise-backports

« back to all changes in this revision

Viewing changes to thelib/src/protocols/rtmp/streaming/innetrtmpstream.cpp

  • Committer: Package Import Robot
  • Author(s): Micah Gersten
  • Date: 2012-07-04 00:04:40 UTC
  • mfrom: (3.1.7 sid)
  • Revision ID: package-import@ubuntu.com-20120704000440-u9x7yhyglqjvspk8
Tags: 1.0~dfsg-3~ubuntu12.04.1
No-change backport to precise (LP: #964153)

Show diffs side-by-side

added added

removed removed

Lines of Context:
70
70
                        || TAG_KIND_OF(type, ST_OUT_FILE_HLS);
71
71
}
72
72
 
73
 
void InNetRTMPStream::GetStats(Variant &info) {
74
 
        BaseInNetStream::GetStats(info);
 
73
void InNetRTMPStream::GetStats(Variant &info, uint32_t namespaceId) {
 
74
        BaseInNetStream::GetStats(info, namespaceId);
75
75
        info["audio"]["packetsCount"] = _audioPacketsCount;
76
76
        info["audio"]["droppedPacketsCount"] = (uint64_t) 0;
77
77
        info["audio"]["bytesCount"] = _audioBytesCount;
137
137
                        Variant &notify = MAP_VAL(params.begin());
138
138
                        if ((notify == V_STRING) && (lowerCase((string) notify) == "onmetadata")) {
139
139
                                Variant &metadata = MAP_VAL(++params.begin());
140
 
                                if (metadata.HasKeyChain(_V_NUMERIC, false, 1, "bandwidth")) {
141
 
                                        _streamCapabilities.bandwidthHint = (uint32_t) metadata["bandwidth"];
142
 
                                } else {
143
 
                                        if (metadata.HasKeyChain(_V_NUMERIC, false, 1, "audiodatarate")) {
144
 
                                                _streamCapabilities.bandwidthHint =
145
 
                                                                (uint32_t) metadata["audiodatarate"];
146
 
                                        }
147
 
                                        if (metadata.HasKeyChain(_V_NUMERIC, false, 1, "videodatarate")) {
148
 
                                                _streamCapabilities.bandwidthHint +=
149
 
                                                                (uint32_t) metadata["videodatarate"];
 
140
                                if (metadata == V_MAP) {
 
141
                                        if (metadata.HasKeyChain(_V_NUMERIC, false, 1, "bandwidth")) {
 
142
                                                _streamCapabilities.bandwidthHint = (uint32_t) metadata["bandwidth"];
 
143
                                        } else {
 
144
                                                if (metadata.HasKeyChain(_V_NUMERIC, false, 1, "audiodatarate")) {
 
145
                                                        _streamCapabilities.bandwidthHint =
 
146
                                                                        (uint32_t) metadata["audiodatarate"];
 
147
                                                }
 
148
                                                if (metadata.HasKeyChain(_V_NUMERIC, false, 1, "videodatarate")) {
 
149
                                                        _streamCapabilities.bandwidthHint +=
 
150
                                                                        (uint32_t) metadata["videodatarate"];
 
151
                                                }
150
152
                                        }
151
153
                                }
152
154
                        }
185
187
        return true;
186
188
}
187
189
 
188
 
bool InNetRTMPStream::RecordFLV(Variant &meta, bool append) {
189
 
        //1. Compute the file name
190
 
        string fileName = meta[META_SERVER_MEDIA_DIR];
191
 
        fileName += (string) meta[META_SERVER_FILE_NAME];
192
 
        FINEST("fileName: %s", STR(fileName));
193
 
 
194
 
        //2. Delete the old file
195
 
        if (append) {
196
 
                WARN("append not supported yet. File will be overwritten");
197
 
        }
198
 
        deleteFile(fileName);
199
 
 
200
 
        //3. Create the out file
201
 
        _pOutFileRTMPFLVStream = new OutFileRTMPFLVStream(_pProtocol,
202
 
                        _pStreamsManager, fileName);
203
 
 
204
 
        //4. Link it
 
190
bool InNetRTMPStream::Record(BaseOutFileStream *pOutStream) {
 
191
 
 
192
        _pOutFileRTMPFLVStream = pOutStream;
205
193
        return _pOutFileRTMPFLVStream->Link(this);
206
194
}
207
195
 
208
 
bool InNetRTMPStream::RecordMP4(Variant &meta) {
209
 
        NYIR;
210
 
}
211
 
 
212
196
void InNetRTMPStream::SignalOutStreamAttached(BaseOutStream *pOutStream) {
213
197
        if (GETAVAILABLEBYTESCOUNT(_videoCodecInit) != 0) {
214
198
                if (!pOutStream->FeedData(GETIBPOINTER(_videoCodecInit),
330
314
                return false;
331
315
        }
332
316
 
333
 
        //      FINEST("Cached the AAC audio codec initialization: %u",
 
317
        //      FINEST("Cached the AAC audio codec initialization: %"PRIu32,
334
318
        //                      GETAVAILABLEBYTESCOUNT(_audioCodecInit));
335
319
 
336
320
        return true;