VT: Update payload value at runtime for SFR
payload type might be re-assigned if there is a modification
in ongoing session.
We need to provide a new payload type in above case.
Merged-in: I9e19a7bb3e0c7849cbb244fd3a3221ce79c4e56d
Change-Id: I9e19a7bb3e0c7849cbb244fd3a3221ce79c4e56d
Signed-off-by: Somraj Mani <som.mani@samsung.com>
diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp
index 22703fc..8e04508 100644
--- a/media/libmediaplayerservice/StagefrightRecorder.cpp
+++ b/media/libmediaplayerservice/StagefrightRecorder.cpp
@@ -835,9 +835,14 @@
}
status_t StagefrightRecorder::setParamPayloadType(int32_t payloadType) {
- ALOGV("setParamPayloadType: %x", payloadType);
+ ALOGV("setParamPayloadType: %d", payloadType);
mPayloadType = payloadType;
+
+ if (mStarted && mOutputFormat == OUTPUT_FORMAT_RTP_AVP) {
+ mWriter->updatePayloadType(mPayloadType);
+ }
+
return OK;
}
diff --git a/media/libstagefright/include/media/stagefright/MediaWriter.h b/media/libstagefright/include/media/stagefright/MediaWriter.h
index a71a474..07af687 100644
--- a/media/libstagefright/include/media/stagefright/MediaWriter.h
+++ b/media/libstagefright/include/media/stagefright/MediaWriter.h
@@ -55,6 +55,8 @@
virtual int32_t getStartTimeOffsetMs() const { return 0; }
virtual status_t setNextFd(int /*fd*/) { return INVALID_OPERATION; }
virtual void updateCVODegrees(int32_t /*cvoDegrees*/) {}
+ virtual void updatePayloadType(int32_t /*payloadType*/) {}
+
protected:
virtual ~MediaWriter() {}
int64_t mMaxFileSizeLimitBytes;
diff --git a/media/libstagefright/rtsp/ARTPWriter.cpp b/media/libstagefright/rtsp/ARTPWriter.cpp
index cef489c..77056a4 100644
--- a/media/libstagefright/rtsp/ARTPWriter.cpp
+++ b/media/libstagefright/rtsp/ARTPWriter.cpp
@@ -1165,6 +1165,11 @@
mRTPCVODegrees = cvoDegrees;
}
+void ARTPWriter::updatePayloadType(int32_t payloadType) {
+ Mutex::Autolock autoLock(mLock);
+ mPayloadType = payloadType;
+}
+
static size_t getFrameSize(bool isWide, unsigned FT) {
static const size_t kFrameSizeNB[8] = {
95, 103, 118, 134, 148, 159, 204, 244
diff --git a/media/libstagefright/rtsp/ARTPWriter.h b/media/libstagefright/rtsp/ARTPWriter.h
index e11f8df..5419cdf 100644
--- a/media/libstagefright/rtsp/ARTPWriter.h
+++ b/media/libstagefright/rtsp/ARTPWriter.h
@@ -45,6 +45,7 @@
virtual status_t stop();
virtual status_t pause();
void updateCVODegrees(int32_t cvoDegrees);
+ void updatePayloadType(int32_t payloadType);
virtual void onMessageReceived(const sp<AMessage> &msg);
virtual void setTMMBNInfo(uint32_t opponentID, uint32_t bitrate);