Skip to content

Commit 92d0a64

Browse files
James DongAndroid (Google) Code Review
authored andcommitted
Merge "Add QVGA resolution to CamcorderProfile" into ics-factoryrom
2 parents 3b6377b + 07b9ae3 commit 92d0a64

File tree

4 files changed

+42
-12
lines changed

4 files changed

+42
-12
lines changed

include/media/MediaProfiles.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ enum camcorder_quality {
3232
CAMCORDER_QUALITY_480P = 4,
3333
CAMCORDER_QUALITY_720P = 5,
3434
CAMCORDER_QUALITY_1080P = 6,
35-
CAMCORDER_QUALITY_LIST_END = 6,
35+
CAMCORDER_QUALITY_QVGA = 7,
36+
CAMCORDER_QUALITY_LIST_END = 7,
3637

3738
CAMCORDER_QUALITY_TIME_LAPSE_LIST_START = 1000,
3839
CAMCORDER_QUALITY_TIME_LAPSE_LOW = 1000,
@@ -42,7 +43,8 @@ enum camcorder_quality {
4243
CAMCORDER_QUALITY_TIME_LAPSE_480P = 1004,
4344
CAMCORDER_QUALITY_TIME_LAPSE_720P = 1005,
4445
CAMCORDER_QUALITY_TIME_LAPSE_1080P = 1006,
45-
CAMCORDER_QUALITY_TIME_LAPSE_LIST_END = 1006,
46+
CAMCORDER_QUALITY_TIME_LAPSE_QVGA = 1007,
47+
CAMCORDER_QUALITY_TIME_LAPSE_LIST_END = 1007,
4648
};
4749

4850
/**

media/java/android/media/CamcorderProfile.java

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,16 @@ public class CamcorderProfile
8080
*/
8181
public static final int QUALITY_1080P = 6;
8282

83+
/**
84+
* Quality level corresponding to the QVGA (320x240) resolution.
85+
* {@hide}
86+
*/
87+
public static final int QUALITY_QVGA = 7;
88+
89+
// Start and end of quality list
90+
private static final int QUALITY_LIST_START = QUALITY_LOW;
91+
private static final int QUALITY_LIST_END = QUALITY_QVGA;
92+
8393
/**
8494
* Time lapse quality level corresponding to the lowest available resolution.
8595
*/
@@ -115,6 +125,16 @@ public class CamcorderProfile
115125
*/
116126
public static final int QUALITY_TIME_LAPSE_1080P = 1006;
117127

128+
/**
129+
* Time lapse quality level corresponding to the QVGA (320 x 240) resolution.
130+
* {@hide}
131+
*/
132+
public static final int QUALITY_TIME_LAPSE_QVGA = 1007;
133+
134+
// Start and end of timelapse quality list
135+
private static final int QUALITY_TIME_LAPSE_LIST_START = QUALITY_TIME_LAPSE_LOW;
136+
private static final int QUALITY_TIME_LAPSE_LIST_END = QUALITY_TIME_LAPSE_QVGA;
137+
118138
/**
119139
* Default recording duration in seconds before the session is terminated.
120140
* This is useful for applications like MMS has limited file size requirement.
@@ -238,8 +258,10 @@ public static CamcorderProfile get(int quality) {
238258
* @see #QUALITY_TIME_LAPSE_1080P
239259
*/
240260
public static CamcorderProfile get(int cameraId, int quality) {
241-
if (!((quality >= QUALITY_LOW && quality <= QUALITY_1080P) ||
242-
(quality >= QUALITY_TIME_LAPSE_LOW && quality <= QUALITY_TIME_LAPSE_1080P))) {
261+
if (!((quality >= QUALITY_LIST_START &&
262+
quality <= QUALITY_LIST_END) ||
263+
(quality >= QUALITY_TIME_LAPSE_LIST_START &&
264+
quality <= QUALITY_TIME_LAPSE_LIST_END))) {
243265
String errMessage = "Unsupported quality level: " + quality;
244266
throw new IllegalArgumentException(errMessage);
245267
}

media/jni/android_media_MediaProfiles.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -161,13 +161,19 @@ android_media_MediaProfiles_native_get_audio_encoder_cap(JNIEnv *env, jobject th
161161
return cap;
162162
}
163163

164+
static bool isCamcorderQualityKnown(int quality)
165+
{
166+
return ((quality >= CAMCORDER_QUALITY_LIST_START &&
167+
quality <= CAMCORDER_QUALITY_LIST_END) ||
168+
(quality >= CAMCORDER_QUALITY_TIME_LAPSE_LIST_START &&
169+
quality <= CAMCORDER_QUALITY_TIME_LAPSE_LIST_END));
170+
}
171+
164172
static jobject
165173
android_media_MediaProfiles_native_get_camcorder_profile(JNIEnv *env, jobject thiz, jint id, jint quality)
166174
{
167175
LOGV("native_get_camcorder_profile: %d %d", id, quality);
168-
if (!((quality >= CAMCORDER_QUALITY_LOW && quality <= CAMCORDER_QUALITY_1080P) ||
169-
(quality >= CAMCORDER_QUALITY_TIME_LAPSE_LOW &&
170-
quality <= CAMCORDER_QUALITY_TIME_LAPSE_1080P))) {
176+
if (!isCamcorderQualityKnown(quality)) {
171177
jniThrowException(env, "java/lang/RuntimeException", "Unknown camcorder profile quality");
172178
return NULL;
173179
}
@@ -216,9 +222,7 @@ static jboolean
216222
android_media_MediaProfiles_native_has_camcorder_profile(JNIEnv *env, jobject thiz, jint id, jint quality)
217223
{
218224
LOGV("native_has_camcorder_profile: %d %d", id, quality);
219-
if (!((quality >= CAMCORDER_QUALITY_LOW && quality <= CAMCORDER_QUALITY_1080P) ||
220-
(quality >= CAMCORDER_QUALITY_TIME_LAPSE_LOW &&
221-
quality <= CAMCORDER_QUALITY_TIME_LAPSE_1080P))) {
225+
if (!isCamcorderQualityKnown(quality)) {
222226
return false;
223227
}
224228

media/libmedia/MediaProfiles.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,16 @@ const MediaProfiles::NameToTagMap MediaProfiles::sCamcorderQualityNameMap[] = {
6767
{"480p", CAMCORDER_QUALITY_480P},
6868
{"720p", CAMCORDER_QUALITY_720P},
6969
{"1080p", CAMCORDER_QUALITY_1080P},
70+
{"qvga", CAMCORDER_QUALITY_QVGA},
7071

7172
{"timelapselow", CAMCORDER_QUALITY_TIME_LAPSE_LOW},
7273
{"timelapsehigh", CAMCORDER_QUALITY_TIME_LAPSE_HIGH},
7374
{"timelapseqcif", CAMCORDER_QUALITY_TIME_LAPSE_QCIF},
7475
{"timelapsecif", CAMCORDER_QUALITY_TIME_LAPSE_CIF},
7576
{"timelapse480p", CAMCORDER_QUALITY_TIME_LAPSE_480P},
7677
{"timelapse720p", CAMCORDER_QUALITY_TIME_LAPSE_720P},
77-
{"timelapse1080p", CAMCORDER_QUALITY_TIME_LAPSE_1080P}
78+
{"timelapse1080p", CAMCORDER_QUALITY_TIME_LAPSE_1080P},
79+
{"timelapseqvga", CAMCORDER_QUALITY_TIME_LAPSE_QVGA},
7880
};
7981

8082
/*static*/ void
@@ -1139,7 +1141,7 @@ int MediaProfiles::getStartTimeOffsetMs(int cameraId) const {
11391141
if (index >= 0) {
11401142
offsetTimeMs = mStartTimeOffsets.valueFor(cameraId);
11411143
}
1142-
LOGV("%s: offsetTime=%d ms and cameraId=%d", offsetTimeMs, cameraId);
1144+
LOGV("offsetTime=%d ms and cameraId=%d", offsetTimeMs, cameraId);
11431145
return offsetTimeMs;
11441146
}
11451147

0 commit comments

Comments
 (0)