Changeset 103
- Timestamp:
- 08/24/10 22:22:35 (18 months ago)
- Location:
- trunk/sources
- Files:
-
- 6 edited
-
androidapplestreaming/src/main.cpp (modified) (1 diff)
-
applications/applestreamingclient/include/clientcontext.h (modified) (2 diffs)
-
applications/applestreamingclient/include/playlist.h (modified) (1 diff)
-
applications/applestreamingclient/src/clientcontext.cpp (modified) (2 diffs)
-
applications/applestreamingclient/src/playlist.cpp (modified) (1 diff)
-
thelib/src/protocols/rtp/streaming/outnetrtpudph264stream.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/sources/androidapplestreaming/src/main.cpp
r102 r103 112 112 //#define MY_SESSION_ID "playback=HTTP_CLOUD_MOBILE&contentId=100000000001&appAccountName=mlb&eventId=14-265677-2010-08-23&ipid=23272205&sessionKey=1Mdu%2B0CADyV4ewOJTgKsPSqMPQE%3D&deviceId=ANDROID_354957033071773&country=us&postalCode=10011&platform=ANDROID" 113 113 114 #define MY_URL "http://mlbsegqa.mlb.com/mlbam/2010/08/17/MLB_GAME_VIDEO_DETNYA_HOME_20100817/master_mobile.m3u8" 114 //#define MY_URL "http://mlbsegqa.mlb.com/mlbam/2010/08/17/MLB_GAME_VIDEO_DETNYA_HOME_20100817/master_mobile.m3u8" 115 //#define MY_KEY "pFD3++v0LKfm38F2mCgIu0sXzn4=" 116 //#define MY_SESSION_ID "playback=HTTP_CLOUD_MOBILE&contentId=10111969&appAccountName=mlb&eventId=14-265611-2010-08-18&ipid=23272205&sessionKey=6bdsqzUU7oBI4gixJxFFON2QHwA%3D&deviceId=ANDROID_354957033071773&country=us&postalCode=10011&platform=ANDROID" 117 118 #define MY_URL "http://mlbsegqa.mlb.com/mlbam/2010/08/24/MLB_GAME_VIDEO_TBAANA_HOME_20100824/master_mobile.m3u8" 115 119 #define MY_KEY "pFD3++v0LKfm38F2mCgIu0sXzn4=" 116 #define MY_SESSION_ID "playback=HTTP_CLOUD_MOBILE&contentId=10 111969&appAccountName=mlb&eventId=14-265611-2010-08-18&ipid=23272205&sessionKey=6bdsqzUU7oBI4gixJxFFON2QHwA%3D&deviceId=ANDROID_354957033071773&country=us&postalCode=10011&platform=ANDROID"120 #define MY_SESSION_ID "playback=HTTP_CLOUD_MOBILE&contentId=100000000087&appAccountName=mlb&eventId=14-265692-2010-08-24&ipid=23272205&sessionKey=6bdsqzUU7oBI4gixJxFFON2QHwA%3D&deviceId=ANDROID_354957033071773&country=us&postalCode=10011&platform=ANDROID" 117 121 118 122 //#define CONDENSED_CONN_STRING "base64:aHR0cDovL21sYnZvZC1ha2MubWxiLmNvbS9tbGJhbS8yMDEwLzA0LzA4L01MQl9HQU1FX1ZJREVPX0xBTlBJVF9IT01FXzIwMTAwNDA4L21hc3Rlcl93aXJlZC5tM3U4fHlNQmVFcEl6OEJEaUFYV0k0dUdIUm1UaHdIRT18cGxheWJhY2s9SFRUUF9DTE9VRF9XSVJFRCZjb250ZW50SWQ9NzMyMDA4NSZhcHBBY2NvdW50TmFtZT1tbGImZXZlbnRJZD0xNC0yNjM4NDktMjAxMC0wNC0wOCZpcGlkPTExNjI3NzA2JnNlc3Npb25LZXk9cUNveGRIaUlOY3FDbHlEcEZoU2dma3dJSWc0JTNE" -
trunk/sources/applications/applestreamingclient/include/clientcontext.h
r102 r103 71 71 double _lastWallClock; 72 72 map<uint32_t, uint32_t> _allowedBitrates; 73 map<uint32_t, uint32_t> _mediaSequences; 73 74 private: 74 75 ClientContext(); … … 124 125 bool ConsumeAVBuffer(); 125 126 private: 127 bool ReloadPlaylist(uint32_t bw); 126 128 uint32_t GetOptimalBw(); 127 129 bool ParseConnectingString(); -
trunk/sources/applications/applestreamingclient/include/playlist.h
r58 r103 62 62 void GetSeekRange(double &min, double &max); 63 63 uint32_t GetItemIndex(double seekPoint); 64 uint32_t GetLastMediaSequence(); 64 65 }; 65 66 -
trunk/sources/applications/applestreamingclient/src/clientcontext.cpp
r102 r103 291 291 292 292 //4. Is this the last item in the playlis? 293 FINEST("---------------------------------------------------"); 293 294 if (_currentItemIndex >= pPlaylist->GetItemsCount()) { 294 FINEST("End of list. Wait one sec and try again"); 295 return EnqueueFetchChildPlaylist(_childPlaylists[optimalBw]->GetPlaylistUri(), optimalBw); 296 } 295 if (ReloadPlaylist(optimalBw)) { 296 WARN("End of list. Wait one sec and try again"); 297 FINEST("---------------------------------------------------"); 298 return EnqueueFetchChildPlaylist(_childPlaylists[optimalBw]->GetPlaylistUri(), optimalBw); 299 } else { 300 WARN("No playlist reload"); 301 _currentItemIndex--; 302 } 303 } 304 FINEST("_currentItemIndex: %d", _currentItemIndex); 305 FINEST("---------------------------------------------------"); 297 306 298 307 //4. Get the item URI and the key URI if available 299 308 string uri = pPlaylist->GetItemUri(_currentItemIndex); 300 309 string keyUri = pPlaylist->GetItemKeyUri(_currentItemIndex); 310 _mediaSequences[optimalBw] = pPlaylist->GetItemMediaSequence(_currentItemIndex); 301 311 if (keyUri != "") 302 312 keyUri += "&" + _connectingString.sessionId; … … 392 402 //7. Done 393 403 return true; 404 } 405 406 bool ClientContext::ReloadPlaylist(uint32_t bw) { 407 if (!MAP_HAS1(_mediaSequences, bw)) { 408 FINEST("bw %d not in _mediaSequences", bw); 409 return true; 410 } 411 if (!MAP_HAS1(_childPlaylists, bw)) { 412 FINEST("bw %d not in playlists", bw); 413 return true; 414 } 415 416 uint32_t lastSequence = _mediaSequences[bw]; 417 FINEST("lastSequence: %d", lastSequence); 418 uint32_t playlistSequnece = _childPlaylists[bw]->GetLastMediaSequence(); 419 FINEST("playlistSequnece: %d", playlistSequnece); 420 421 return lastSequence == playlistSequnece; 394 422 } 395 423 -
trunk/sources/applications/applestreamingclient/src/playlist.cpp
r81 r103 252 252 return index; 253 253 } 254 255 uint32_t Playlist::GetLastMediaSequence() { 256 if (_itemMediaSequences.size() == 0) 257 return 0; 258 return _itemMediaSequences[_itemMediaSequences.size() - 1]; 259 } -
trunk/sources/thelib/src/protocols/rtp/streaming/outnetrtpudph264stream.cpp
r88 r103 343 343 return true; 344 344 } 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 //} 345 430 #endif /* HAS_PROTOCOL_RTP */ 346 431
Note: See TracChangeset
for help on using the changeset viewer.
