[Replicant] [PATCH] make video recording working again
Wolfgang Wiedmeyer
wreg at wiedmeyer.de
Thu Sep 24 10:57:06 UTC 2015
Hi,
I reverted some changes and re-enabled hardware video
encoding/decoding. Recording video now works fine with a Galaxy S3 and
the proprietary firmware blobs (namely mfc_fw.bin, SlimISP_GD.bin and
SlimISP_ZD.bin). Playback of the recorded videos with vlc is quite
smooth, even in 1080p.
Without the blobs, taking pictures still works fine (as before).
BTW except for two bugs I noticed, the app Open Camera also works. This
app provides lots of additional settings and is available from F-Droid.
Signed-off-by: Wolfgang Wiedmeyer <wolfgit at wiedmeyer.de>
---
BoardCommonConfig.mk | 9 +++++++++
common.mk | 21 +++++++++++++++++++++
configs/80cfw | 10 ++++++++++
configs/media_codecs.xml | 10 ++++++++++
4 files changed, 50 insertions(+)
create mode 100644 configs/80cfw
diff --git a/BoardCommonConfig.mk b/BoardCommonConfig.mk
index b4ae1bf..e0f6852 100644
--- a/BoardCommonConfig.mk
+++ b/BoardCommonConfig.mk
@@ -90,6 +90,15 @@ BOARD_CAMERA_HAVE_ISO := true
COMMON_GLOBAL_CFLAGS += -DHAVE_ISO
COMMON_GLOBAL_CFLAGS += -DSAMSUNG_CAMERA_HARDWARE
+# OMX
+BOARD_USE_SAMSUNG_COLORFORMAT := true
+BOARD_NONBLOCK_MODE_PROCESS := true
+BOARD_USE_STOREMETADATA := true
+BOARD_USE_METADATABUFFERTYPE := true
+BOARD_USES_MFC_FPS := true
+BOARD_USE_S3D_SUPPORT := true
+BOARD_USE_CSC_FIMC := false
+
# RIL
BOARD_MOBILEDATA_INTERFACE_NAME := "pdp0"
diff --git a/common.mk b/common.mk
index 18b0715..93bed95 100644
--- a/common.mk
+++ b/common.mk
@@ -38,6 +38,10 @@ PRODUCT_COPY_FILES += \
$(COMMON_PATH)/configs/audio_effects.conf:system/etc/audio_effects.conf \
$(COMMON_PATH)/configs/audio_policy.conf:system/etc/audio_policy.conf
+# Camera FW
+PRODUCT_COPY_FILES += \
+ $(COMMON_PATH)/configs/80cfw:system/etc/init.d/80cfw
+
# Vold and Storage
PRODUCT_COPY_FILES += \
$(COMMON_PATH)/configs/vold.fstab:system/etc/vold.fstab
@@ -81,6 +85,23 @@ PRODUCT_PACKAGES += \
charger \
charger_res_images
+# MFC API
+PRODUCT_PACKAGES += \
+ libsecmfcdecapi \
+ libsecmfcencapi
+
+# OMX
+PRODUCT_PACKAGES += \
+ libstagefrighthw \
+ libSEC_OMX_Resourcemanager \
+ libSEC_OMX_Core \
+ libOMX.SEC.AVC.Decoder \
+ libOMX.SEC.M4V.Decoder \
+ libOMX.SEC.WMV.Decoder \
+ libOMX.SEC.AVC.Encoder \
+ libOMX.SEC.M4V.Encoder
+# libOMX.SEC.VP8.Decoder
+
PRODUCT_COPY_FILES += \
$(COMMON_PATH)/configs/media_profiles.xml:system/etc/media_profiles.xml \
$(COMMON_PATH)/configs/media_codecs.xml:system/etc/media_codecs.xml
diff --git a/configs/80cfw b/configs/80cfw
new file mode 100644
index 0000000..7b803ff
--- /dev/null
+++ b/configs/80cfw
@@ -0,0 +1,10 @@
+#!/system/bin/sh
+#
+# Copy camera firmware to /data/cfw
+#
+
+busybox cp /system/vendor/firmware/SlimISP_*.bin /data/cfw/
+
+busybox chown system /data/cfw/*
+busybox chgrp media /data/cfw/*
+busybox chmod 0775 /data/cfw/*
diff --git a/configs/media_codecs.xml b/configs/media_codecs.xml
index e4298a8..c8719db 100644
--- a/configs/media_codecs.xml
+++ b/configs/media_codecs.xml
@@ -77,6 +77,12 @@ Only the three quirks included above are recognized at this point:
<MediaCodecs>
<Decoders>
+ <MediaCodec name="OMX.SEC.AVC.Decoder" type="video/avc" />
+ <MediaCodec name="OMX.SEC.MPEG4.Decoder" type="video/mp4v-es" />
+ <MediaCodec name="OMX.SEC.H263.Decoder" type="video/3gpp" />
+ <MediaCodec name="OMX.SEC.AVC.Decoder" type="video/avc" />
+ <MediaCodec name="OMX.SEC.VP8.Decoder" type="video/x-vnd.on2.vp8" />
+
<MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg" />
<MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp" />
<MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb" />
@@ -91,6 +97,10 @@ Only the three quirks included above are recognized at this point:
</Decoders>
<Encoders>
+ <MediaCodec name="OMX.SEC.MPEG4.Encoder" type="video/mp4v-es" />
+ <MediaCodec name="OMX.SEC.H263.Encoder" type="video/3gpp" />
+ <MediaCodec name="OMX.SEC.AVC.Encoder" type="video/avc" />
+
<MediaCodec name="OMX.google.amrnb.encoder" type="audio/3gpp" />
<MediaCodec name="OMX.google.amrwb.encoder" type="audio/amr-wb" />
<MediaCodec name="OMX.google.aac.encoder" type="audio/mp4a-latm" />
--
2.1.4
More information about the Replicant
mailing list