Ignore:
Timestamp:
08/26/10 19:37:23 (21 months ago)
Author:
shiretu
Message:

-- android stuff

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/sources/thelib/src/protocols/rtp/streaming/outnetrtpudph264stream.cpp

    r103 r106  
    147147                uint32_t processedLength, uint32_t totalLength, 
    148148                double absoluteTimestamp, bool isAudio) { 
     149        //#define FeedDataAudioMPEG4Generic FeedDataAudioMPEG4Generic_one_by_one 
     150#define FeedDataAudioMPEG4Generic FeedDataAudioMPEG4Generic_aggregate 
    149151        return FeedDataAudioMPEG4Generic(pData, dataLength, processedLength, totalLength, 
    150152                        absoluteTimestamp); 
     
    277279} 
    278280 
    279 bool OutNetRTPUDPH264Stream::FeedDataAudioMPEG4Generic(uint8_t *pData, 
     281bool OutNetRTPUDPH264Stream::FeedDataAudioMPEG4Generic_aggregate(uint8_t *pData, 
    280282                uint32_t dataLength, uint32_t processedLength, uint32_t totalLength, 
    281283                double absoluteTimestamp) { 
     
    343345        return true; 
    344346} 
    345 //bool OutNetRTPUDPH264Stream::FeedDataAudioMPEG4Generic_one_by_one(uint8_t *pData, uint32_t dataLength, 
    346 //              uint32_t processedLength, uint32_t totalLength, 
    347 //              double absoluteTimestamp) { 
    348 //      return true; 
    349 //      //1. We only support frame-by-frame approach 
    350 //      if (dataLength != totalLength) { 
    351 //              WARN("Chunked mode not yet supported"); 
    352 //              return true; 
    353 //      } 
    354 //      /* 
    355 //      0                   1                   2                   3 
    356 //      0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
    357 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    358 //   |V=2|P|X|  CC   |M|     PT      |       sequence number         | 
    359 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    360 //   |                           timestamp                           | 
    361 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    362 //   |           synchronization source (SSRC) identifier            | 
    363 //   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 
    364 //   |            contributing source (CSRC) identifiers             | 
    365 //   |                             ....                              | 
    366 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
    367 // 
    368 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- .. -+-+-+-+-+-+-+-+-+-+ 
    369 //   |AU-headers-length|AU-header|AU-header|      |AU-header|padding| 
    370 //   |                 |   (1)   |   (2)   |      |   (n)   | bits  | 
    371 //   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- .. -+-+-+-+-+-+-+-+-+-+ 
    372 //       */ 
    373 // 
    374 //      //      _audioData.msg_iov[0].iov_base[00] V,P,X,CC 
    375 //      //      _audioData.msg_iov[0].iov_base[01] M,PT 
    376 //      //      _audioData.msg_iov[0].iov_base[02] sequence number 
    377 //      //      _audioData.msg_iov[0].iov_base[03] sequence number 
    378 //      //      _audioData.msg_iov[0].iov_base[04] timestamp 
    379 //      //      _audioData.msg_iov[0].iov_base[05] timestamp 
    380 //      //      _audioData.msg_iov[0].iov_base[06] timestamp 
    381 //      //      _audioData.msg_iov[0].iov_base[07] timestamp 
    382 //      //      _audioData.msg_iov[0].iov_base[08] SSRC 
    383 //      //      _audioData.msg_iov[0].iov_base[09] SSRC 
    384 //      //      _audioData.msg_iov[0].iov_base[10] SSRC 
    385 //      //      _audioData.msg_iov[0].iov_base[11] SSRC 
    386 //      //      _audioData.msg_iov[0].iov_base[12] AU-headers-length 
    387 //      //      _audioData.msg_iov[0].iov_base[13] AU-headers-length 
    388 // 
    389 //      //3. counter 
    390 //      put_htons(((uint8_t *) _audioData.msg_iov[0].iov_base) + 2, _audioCounter); 
    391 //      _audioCounter++; 
    392 // 
    393 //      //4. Timestamp 
    394 //      put_htonl(((uint8_t *) _audioData.msg_iov[0].iov_base) + 4, 
    395 //                      (uint32_t) (absoluteTimestamp 
    396 //                      * (double) GetCapabilities()->audioCodecInfo.aac.sampleRate / 1000.000)); 
    397 // 
    398 //      put_htons(((uint8_t *) _audioData.msg_iov[0].iov_base) + 12, 16); 
    399 // 
    400 //      uint16_t auHeader = (uint16_t) ((dataLength - 7) << 3); 
    401 //      put_htons(((uint8_t *) _audioData.msg_iov[1].iov_base), auHeader); 
    402 //      _audioData.msg_iov[1].iov_len = 2; 
    403 // 
    404 //      FINEST("%02x%02x %02x%02x %02x%02x%02x%02x %02x%02x%02x%02x - %02x%02x %02x%02x %08x %.2f", 
    405 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[0], 
    406 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[1], 
    407 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[2], 
    408 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[3], 
    409 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[4], 
    410 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[5], 
    411 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[6], 
    412 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[7], 
    413 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[8], 
    414 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[9], 
    415 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[10], 
    416 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[11], 
    417 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[12], 
    418 //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[13], 
    419 //                      ((uint8_t *) _audioData.msg_iov[1].iov_base)[0], 
    420 //                      ((uint8_t *) _audioData.msg_iov[1].iov_base)[1], 
    421 //                      dataLength - 7, 
    422 //                      absoluteTimestamp); 
    423 // 
    424 //      //6. put the actual buffer 
    425 //      _audioData.msg_iov[2].iov_len = dataLength - 7; 
    426 //      _audioData.msg_iov[2].iov_base = pData + 7; 
    427 // 
    428 //      return _pConnectivity->FeedAudioData(_audioData); 
    429 //} 
     347 
     348bool OutNetRTPUDPH264Stream::FeedDataAudioMPEG4Generic_one_by_one(uint8_t *pData, uint32_t dataLength, 
     349                uint32_t processedLength, uint32_t totalLength, 
     350                double absoluteTimestamp) { 
     351        //1. We only support frame-by-frame approach 
     352        if (dataLength != totalLength) { 
     353                WARN("Chunked mode not yet supported"); 
     354                return true; 
     355        } 
     356        /* 
     357        0                   1                   2                   3 
     358        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 
     359   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
     360   |V=2|P|X|  CC   |M|     PT      |       sequence number         | 
     361   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
     362   |                           timestamp                           | 
     363   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
     364   |           synchronization source (SSRC) identifier            | 
     365   +=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 
     366   |            contributing source (CSRC) identifiers             | 
     367   |                             ....                              | 
     368   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
     369 
     370   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- .. -+-+-+-+-+-+-+-+-+-+ 
     371   |AU-headers-length|AU-header|AU-header|      |AU-header|padding| 
     372   |                 |   (1)   |   (2)   |      |   (n)   | bits  | 
     373   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- .. -+-+-+-+-+-+-+-+-+-+ 
     374         */ 
     375 
     376        //      _audioData.msg_iov[0].iov_base[00] V,P,X,CC 
     377        //      _audioData.msg_iov[0].iov_base[01] M,PT 
     378        //      _audioData.msg_iov[0].iov_base[02] sequence number 
     379        //      _audioData.msg_iov[0].iov_base[03] sequence number 
     380        //      _audioData.msg_iov[0].iov_base[04] timestamp 
     381        //      _audioData.msg_iov[0].iov_base[05] timestamp 
     382        //      _audioData.msg_iov[0].iov_base[06] timestamp 
     383        //      _audioData.msg_iov[0].iov_base[07] timestamp 
     384        //      _audioData.msg_iov[0].iov_base[08] SSRC 
     385        //      _audioData.msg_iov[0].iov_base[09] SSRC 
     386        //      _audioData.msg_iov[0].iov_base[10] SSRC 
     387        //      _audioData.msg_iov[0].iov_base[11] SSRC 
     388        //      _audioData.msg_iov[0].iov_base[12] AU-headers-length 
     389        //      _audioData.msg_iov[0].iov_base[13] AU-headers-length 
     390 
     391        //3. counter 
     392        put_htons(((uint8_t *) _audioData.msg_iov[0].iov_base) + 2, _audioCounter); 
     393        _audioCounter++; 
     394 
     395        //4. Timestamp 
     396        put_htonl(((uint8_t *) _audioData.msg_iov[0].iov_base) + 4, 
     397                        (uint32_t) (absoluteTimestamp 
     398                        * (double) GetCapabilities()->audioCodecInfo.aac.sampleRate / 1000.000)); 
     399 
     400        put_htons(((uint8_t *) _audioData.msg_iov[0].iov_base) + 12, 16); 
     401 
     402        uint16_t auHeader = (uint16_t) ((dataLength - 7) << 3); 
     403        put_htons(((uint8_t *) _audioData.msg_iov[1].iov_base), auHeader); 
     404        _audioData.msg_iov[1].iov_len = 2; 
     405 
     406        //      FINEST("%02x%02x %02x%02x %02x%02x%02x%02x %02x%02x%02x%02x - %02x%02x %02x%02x %08x %.2f", 
     407        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[0], 
     408        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[1], 
     409        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[2], 
     410        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[3], 
     411        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[4], 
     412        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[5], 
     413        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[6], 
     414        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[7], 
     415        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[8], 
     416        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[9], 
     417        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[10], 
     418        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[11], 
     419        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[12], 
     420        //                      ((uint8_t *) _audioData.msg_iov[0].iov_base)[13], 
     421        //                      ((uint8_t *) _audioData.msg_iov[1].iov_base)[0], 
     422        //                      ((uint8_t *) _audioData.msg_iov[1].iov_base)[1], 
     423        //                      dataLength - 7, 
     424        //                      absoluteTimestamp); 
     425 
     426        //6. put the actual buffer 
     427        _audioData.msg_iov[2].iov_len = dataLength - 7; 
     428        _audioData.msg_iov[2].iov_base = pData + 7; 
     429 
     430        return _pConnectivity->FeedAudioData(_audioData); 
     431} 
    430432#endif /* HAS_PROTOCOL_RTP */ 
    431433 
Note: See TracChangeset for help on using the changeset viewer.