Merge "MTP: Fix some problems with GetObjectHandles and GetNumObjects commands"
diff --git a/media/libeffects/factory/EffectsFactory.c b/media/libeffects/factory/EffectsFactory.c
index b0e8585..a3e76d9 100644
--- a/media/libeffects/factory/EffectsFactory.c
+++ b/media/libeffects/factory/EffectsFactory.c
@@ -257,7 +257,7 @@
}
// create effect in library
- l->desc->create_effect(uuid, sessionId, ioId, &itfe);
+ ret = l->desc->create_effect(uuid, sessionId, ioId, &itfe);
if (ret != 0) {
LOGW("EffectCreate() library %s: could not create fx %s, error %d", l->name, d->name, ret);
goto exit;
diff --git a/media/libstagefright/MPEG4Writer.cpp b/media/libstagefright/MPEG4Writer.cpp
index 28add18..58f03a0 100644
--- a/media/libstagefright/MPEG4Writer.cpp
+++ b/media/libstagefright/MPEG4Writer.cpp
@@ -1975,7 +1975,17 @@
int64_t previousPausedDurationUs = 0;
int64_t timestampUs = 0;
int64_t cttsDeltaTimeUs = 0;
+ bool hasBFrames = false;
+#if 1
+ // XXX: Samsung's video encoder's output buffer timestamp
+ // is not correct. see bug 4724339
+ char value[PROPERTY_VALUE_MAX];
+ if (property_get("rw.media.record.hasb", value, NULL) &&
+ (!strcasecmp(value, "true") || !strcasecmp(value, "1"))) {
+ hasBFrames = true;
+ }
+#endif
if (mIsAudio) {
prctl(PR_SET_NAME, (unsigned long)"AudioTrackEncoding", 0, 0, 0);
} else {
@@ -2118,7 +2128,7 @@
timestampUs -= previousPausedDurationUs;
CHECK(timestampUs >= 0);
- if (!mIsAudio) {
+ if (!mIsAudio && hasBFrames) {
/*
* Composition time: timestampUs
* Decoding time: decodingTimeUs