Skip to content

Commit 1d8c12f

Browse files
superandrew213Shahen Hovhannisyan
authored andcommitted
Handle frameRate & bitrate different value types (shahen94#161)
* Add frameRate & bitrate * Handle frameRate & bitrate different value types
1 parent a8e35ee commit 1d8c12f

File tree

2 files changed

+32
-4
lines changed

2 files changed

+32
-4
lines changed

android/src/main/java/com/shahenlibrary/Trimmer/Trimmer.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -318,8 +318,10 @@ public static void getVideoInfo(String path, Promise promise, ReactApplicationCo
318318
int width = Integer.parseInt(mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_VIDEO_WIDTH));
319319
int height = Integer.parseInt(mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_VIDEO_HEIGHT));
320320
int orientation = Integer.parseInt(mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_VIDEO_ROTATION));
321-
int frameRate = Integer.parseInt(mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_FRAMERATE));
322-
int bitrate = Integer.parseInt(mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_VARIANT_BITRATE));
321+
// METADATA_KEY_FRAMERATE returns a float or int or might not exist
322+
Integer frameRate = VideoEdit.getIntFromString(mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_FRAMERATE));
323+
// METADATA_KEY_VARIANT_BITRATE returns a int or might not exist
324+
Integer bitrate = VideoEdit.getIntFromString(mmr.extractMetadata(FFmpegMediaMetadataRetriever.METADATA_KEY_VARIANT_BITRATE));
323325
if (orientation == 90 || orientation == 270) {
324326
width = width + height;
325327
height = width - height;
@@ -335,8 +337,16 @@ public static void getVideoInfo(String path, Promise promise, ReactApplicationCo
335337
event.putMap(Events.SIZE, size);
336338
event.putInt(Events.DURATION, duration / 1000);
337339
event.putInt(Events.ORIENTATION, orientation);
338-
event.putInt(Events.FRAMERATE, frameRate);
339-
event.putInt(Events.BITRATE, bitrate);
340+
if (frameRate != null) {
341+
event.putInt(Events.FRAMERATE, frameRate);
342+
} else {
343+
event.putNull(Events.FRAMERATE);
344+
}
345+
if (bitrate != null) {
346+
event.putInt(Events.BITRATE, bitrate);
347+
} else {
348+
event.putNull(Events.BITRATE);
349+
}
340350

341351
promise.resolve(event);
342352

android/src/main/java/com/shahenlibrary/utils/VideoEdit.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,4 +218,22 @@ public static String stringForTime(int timeMs) {
218218
return mFormatter.format("%02d:%02d", minutes, seconds).toString();
219219
}
220220
}
221+
222+
public static Integer getIntFromString(String string) {
223+
int value;
224+
//check if int
225+
try {
226+
value = Integer.parseInt(string);
227+
} catch(Exception intException){
228+
//not int
229+
//check if float
230+
try {
231+
value = (int) Math.round(Float.parseFloat(string));
232+
} catch(Exception floatException){
233+
//not float
234+
return null;
235+
}
236+
}
237+
return value;
238+
}
221239
}

0 commit comments

Comments
 (0)