diff options
author | Andreas Huber <andih@google.com> | 2010-08-05 10:11:28 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2010-08-05 10:11:28 -0700 |
commit | cf168132b4e4ac8d9c29d02d8dfed89c33d06e9a (patch) | |
tree | 6719d42f3ffc01d6209e826e6a2286295366be95 /media | |
parent | ecaccb9f82dd07b29aa32ce36e8d15862dfdf547 (diff) | |
parent | ff53123821a3ec2e71fdb1a971ea2cbae3119826 (diff) | |
download | frameworks_av-cf168132b4e4ac8d9c29d02d8dfed89c33d06e9a.zip frameworks_av-cf168132b4e4ac8d9c29d02d8dfed89c33d06e9a.tar.gz frameworks_av-cf168132b4e4ac8d9c29d02d8dfed89c33d06e9a.tar.bz2 |
Merge "Better support for fake timestamps in RTP, H.263 video now also requests FIR." into gingerbread
Diffstat (limited to 'media')
-rw-r--r-- | media/libstagefright/AwesomePlayer.cpp | 5 | ||||
-rw-r--r-- | media/libstagefright/rtsp/ARTPConnection.cpp | 14 | ||||
-rw-r--r-- | media/libstagefright/rtsp/ARTPSource.cpp | 1 | ||||
-rw-r--r-- | media/libstagefright/rtsp/ARTPSource.h | 4 |
4 files changed, 17 insertions, 7 deletions
diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index 86a02f6..e426fca 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -1225,7 +1225,10 @@ status_t AwesomePlayer::finishSetDataSource_l() { } else if (!strcmp("rtsp://gtalk", mUri.string())) { if (mLooper == NULL) { mLooper = new ALooper; - mLooper->start(); + mLooper->start( + false /* runOnCallingThread */, + false /* canCallJava */, + PRIORITY_HIGHEST); } #if 0 diff --git a/media/libstagefright/rtsp/ARTPConnection.cpp b/media/libstagefright/rtsp/ARTPConnection.cpp index 9abdab4..5bd306b 100644 --- a/media/libstagefright/rtsp/ARTPConnection.cpp +++ b/media/libstagefright/rtsp/ARTPConnection.cpp @@ -405,6 +405,14 @@ status_t ARTPConnection::parseRTP(StreamInfo *s, const sp<ABuffer> &buffer) { buffer->setInt32Data(u16at(&data[2])); buffer->setRange(payloadOffset, size - payloadOffset); +#if IGNORE_RTCP_TIME + if (!source->timeEstablished()) { + source->timeUpdate(rtpTime, 0); + source->timeUpdate(rtpTime + 20, 0x100000000ll); + CHECK(source->timeEstablished()); + } +#endif + source->processRTPPacket(buffer); return OK; @@ -541,12 +549,6 @@ sp<ARTPSource> ARTPConnection::findSource(StreamInfo *info, uint32_t srcId) { source = new ARTPSource( srcId, info->mSessionDesc, info->mIndex, info->mNotifyMsg); -#if IGNORE_RTCP_TIME - // For H.263 gtalk to work... - source->timeUpdate(0, 0); - source->timeUpdate(30, 0x100000000ll); -#endif - info->mSources.add(srcId, source); } else { source = info->mSources.valueAt(index); diff --git a/media/libstagefright/rtsp/ARTPSource.cpp b/media/libstagefright/rtsp/ARTPSource.cpp index 2aa0c1f..e08183e 100644 --- a/media/libstagefright/rtsp/ARTPSource.cpp +++ b/media/libstagefright/rtsp/ARTPSource.cpp @@ -58,6 +58,7 @@ ARTPSource::ARTPSource( } else if (!strncmp(desc.c_str(), "H263-1998/", 10) || !strncmp(desc.c_str(), "H263-2000/", 10)) { mAssembler = new AH263Assembler(notify); + mIssueFIRRequests = true; } else if (!strncmp(desc.c_str(), "AMR/", 4)) { mAssembler = new AAMRAssembler(notify, false /* isWide */, params); } else if (!strncmp(desc.c_str(), "AMR-WB/", 7)) { diff --git a/media/libstagefright/rtsp/ARTPSource.h b/media/libstagefright/rtsp/ARTPSource.h index 8e483a8..252d6d6 100644 --- a/media/libstagefright/rtsp/ARTPSource.h +++ b/media/libstagefright/rtsp/ARTPSource.h @@ -46,6 +46,10 @@ struct ARTPSource : public RefBase { void addReceiverReport(const sp<ABuffer> &buffer); void addFIR(const sp<ABuffer> &buffer); + bool timeEstablished() const { + return mNumTimes == 2; + } + private: uint32_t mID; uint32_t mHighestSeqNumber; |