From 839cc0088954db587dcf6b00e17227ed15a8fc11 Mon Sep 17 00:00:00 2001 From: nobuhiko saitou Date: Mon, 3 Sep 2018 17:26:54 +0900 Subject: [PATCH] Color aspects keys information stored database Add keys for color aspects to VideoColumns in MediaStore. And standard, transfer and range is stored to database. Bug: 114329709 Test: put hdr/non-hdr contents and check media db Change-Id: Id4bf27a35720f5cf5a60f08eb3f30314e1a1a167 --- core/java/android/provider/MediaStore.java | 21 +++++++++++++++++++++ media/java/android/media/MediaScanner.java | 21 +++++++++++++++++++++ 2 files changed, 42 insertions(+) diff --git a/core/java/android/provider/MediaStore.java b/core/java/android/provider/MediaStore.java index dd011a0ff0ec6..348a0b7300938 100644 --- a/core/java/android/provider/MediaStore.java +++ b/core/java/android/provider/MediaStore.java @@ -2090,6 +2090,27 @@ public final class MediaStore { *

Type: INTEGER

*/ public static final String BOOKMARK = "bookmark"; + + /** + * The standard of color aspects + *

Type: INTEGER

+ * @hide + */ + public static final String COLOR_STANDARD = "color_standard"; + + /** + * The transfer of color aspects + *

Type: INTEGER

+ * @hide + */ + public static final String COLOR_TRANSFER = "color_transfer"; + + /** + * The range of color aspects + *

Type: INTEGER

+ * @hide + */ + public static final String COLOR_RANGE = "color_range"; } public static final class Media implements VideoColumns { diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java index 7ced3e453a59a..8207a54105193 100644 --- a/media/java/android/media/MediaScanner.java +++ b/media/java/android/media/MediaScanner.java @@ -513,6 +513,9 @@ public class MediaScanner implements AutoCloseable { private boolean mScanSuccess; private int mWidth; private int mHeight; + private int mColorStandard; + private int mColorTransfer; + private int mColorRange; public MyMediaScannerClient() { mDateFormatter = new SimpleDateFormat("yyyyMMdd'T'HHmmss"); @@ -592,6 +595,9 @@ public class MediaScanner implements AutoCloseable { mCompilation = 0; mWidth = 0; mHeight = 0; + mColorStandard = -1; + mColorTransfer = -1; + mColorRange = -1; return entry; } @@ -760,6 +766,12 @@ public class MediaScanner implements AutoCloseable { mWidth = parseSubstring(value, 0, 0); } else if (name.equalsIgnoreCase("height")) { mHeight = parseSubstring(value, 0, 0); + } else if (name.equalsIgnoreCase("colorstandard")) { + mColorStandard = parseSubstring(value, 0, -1); + } else if (name.equalsIgnoreCase("colortransfer")) { + mColorTransfer = parseSubstring(value, 0, -1); + } else if (name.equalsIgnoreCase("colorrange")) { + mColorRange = parseSubstring(value, 0, -1); } else { //Log.v(TAG, "unknown tag: " + name + " (" + mProcessGenres + ")"); } @@ -906,6 +918,15 @@ public class MediaScanner implements AutoCloseable { if (resolution != null) { map.put(Video.Media.RESOLUTION, resolution); } + if (mColorStandard >= 0) { + map.put(Video.Media.COLOR_STANDARD, mColorStandard); + } + if (mColorTransfer >= 0) { + map.put(Video.Media.COLOR_TRANSFER, mColorTransfer); + } + if (mColorRange >= 0) { + map.put(Video.Media.COLOR_RANGE, mColorRange); + } if (mDate > 0) { map.put(Video.Media.DATE_TAKEN, mDate); }