Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for process-shared mutex and conditions #27

Closed
wants to merge 1 commit into from

Conversation

Tofee
Copy link
Contributor

@Tofee Tofee commented Apr 19, 2013

When some android code uses a process-shared mutex and/or condition, hybris should also use process-shared mutex/condition. To do so, we have to use a shared memory segment to store the corresponding glibc mutex/conditions.

Signed-off-by: Christophe Chapuis chris.chapuis@gmail.com

struct _shm_infos_t {
pthread_mutex_t shm_access_mutex;
int nb_mutex;
pthread_mutex_t array_mutex[1000];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you use here a static amount of mutexes? Whats when there are more than 1000 mutexes to store?

When some android code uses a process-shared mutex and/or condition, hybris should also use process-shared mutex/condition. To do so, we have to use a shared memory segment to store the corresponding glibc mutex/conditions.

Current limitations:
 - There is a maximum number (1000) of mutex and conditions that can be allocated
 - The shared memory segment is located at a pre-determined address (0x50000000), to be able to identify which mutexes are located in a shared memory region.

Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com>
@Tofee
Copy link
Contributor Author

Tofee commented Apr 20, 2013

I modified a bit the patch. Now we use LOGD for logging, and we check that there is still an available slot for mutex/condition before allocating it.
The limitations are still there, but I may have a way to have a dynamic number of pshared mutex/conditions.

@Tofee Tofee closed this Jun 6, 2013
NotKit pushed a commit to NotKit/libhybris that referenced this pull request Jul 10, 2017
8251486 Merge pull request libhybris#27 from ghosalmartin/mm64-upstream
8620c5d Update test_hwcomposer to support hwcomposer 1.3, 1.4 and 1.5

git-subtree-dir: libhybris
git-subtree-split: 8251486bcdde95a6a78b5792fa663d8cda277cff
NotKit pushed a commit to NotKit/libhybris that referenced this pull request Jul 10, 2017
240ae56 Merge pull request libhybris#332 from krnlyng/faster-hooks
a37a36b Merge pull request libhybris#335 from Tofee/master
45acbd4 linker: introduce HYBRIS_LINKER_FORCE_BASENAME for .so search
1178a8c hybris: hook functions directly, where possible, if tracing is disabled
2c235fc Merge pull request libhybris#334 from krnlyng/fix-fpos_t
2de0ef3 Merge pull request libhybris#333 from krnlyng/qualcomm
ab2bfbe hybris: fix mismatch between bionic fpos_t size and glibc fpos_t in bionic_file struct
46403fb hybris: pthread_getspecific: return NULL on invalid key
ca4962d hybris: hook __progname to program_invocation_name to avoid strcmp(NULL, "zygote") case properly. not removing the check in strcmp though since there might be other occasions where this happens
09df944 mm: initialize HYBRIS_LD_LIBRARY_PATH during initialization since it is never initialized anywhere else, except in __linker_init which is never called
3024a73 Merge pull request libhybris#328 from morphis/merge-with-upstream
b766b89 Merge remote-tracking branch 'upstream/master' into merge-with-upstream
632c211 Merge pull request libhybris#329 from morphis/travis-support
8e337e3 Add travis build support for CI
36d2e8f Ensure HAS_LIBNFC_NXP_HEADERS conditional defined for all code paths
efe57bd Drop debian packaging as that is nothing which should go upstream
085cd7e Merge pull request libhybris#323 from Herrie82/herrie/gcc6-fix
dc32b18 Merge branch 'master' into merge-with-upstream
47e71f5 hooks.c: Wrap some GCC builtin functions, which don't have any address to fix GCC6 build
29b17dc debian: release 0.1.0+git20151016+6d424c9-0ubuntu23
8e714b1 Merge remote-tracking branch 'vicamo/for-ubuntu/fix-bionic-sizeof-file'
388d6f0 Revert "hooks: use pthread_attr_{get,set}stack when available"
74b5544 hooks: fix getmntent, getmntent_r
9c9070e hooks: add readdir64, readdir64_r
2415206 hooks: fix bionic FILE struct size on arm64
dcd06dd Merge remote-tracking branch 'vicamo/for-ubuntu/build-multilib-compat'
a04255f Merge remote-tracking branch 'vicamo/for-ubuntu/fix-warnings'
0afe2ec Merge remote-tracking branch 'laney/master'
1f033aa build: fix misc warnings
b27435f compat: always build binaries for both arch
ce5da05 hooks:c: Don't pass builtin functions.
6b9606a hooks: use pthread_attr_{get,set}stack when available
01b5eab hooks: fix arm64 shared pthread ptr implementation
0fc8151 hooks: fix scandir/scandirat hooks prototypes
c3c950a build: include config.h first
556cfc9 build: fix warnings due to arm32/arm64 types size differences
6556a3f debian: release 0.1.0+git20151016+6d424c9-0ubuntu22
4b1a19c Merge remote-tracking branch 'vicamo/for-ubuntu/arm64-compat'
2fc8b56 Merge remote-tracking branch 'vicamo/for-ubuntu/dont-use-jb-linker-on-arm64-anyway'
e208a00 compat: build arm64 flavor when available
079fdc5 configure: use lib64 for DEFAULT_HYBRIS_LD_LIBRARY_PATH on arm64
cd5aacb linker: remove /system/lib prefix from lib paths
f7dc8df linker: disable linker probing when unavailable
6540b72 debian: release 0.1.0+git20151016+6d424c9-0ubuntu21
1247e33 Merge remote-tracking branch 'abeato/add-bool-def'
0f69554 compat: media: add bool macro definition
34fab4a debian: release 0.1.0+git20151016+6d424c9-0ubuntu20
41edbef Merge remote-tracking branch 'abeato/remove-signal-hooks'
b363110 Merge remote-tracking branch 'morphis/wifi-driver-commands'
0d7dd61 hybris: wifi: add new API method to send driver command
edb7d5d hybris: common: remove hooks for signal handling
11d0095 debian: release 0.1.0+git20151016+6d424c9-0ubuntu19
cc5579d Merge remote-tracking branch 'binlin/bug-1596772/add-scandir-hook'
c248dae Merge remote-tracking branch 'morphis/mm-fixes'
9643f0b hybris: common: mm: drop unneeded compile time definitions
8d821a0 hybris: common: mm: include strlcat/strlcpy to avoid linke time issues
7bcb77b hybris: common: remove old and unused gb and ics linkers
ebebd7d hybris: common: Add hooks to support scandir
dd05167 debian: release 0.1.0+git20151016+6d424c9-0ubuntu18
db29558 Merge remote-tracking branch 'morphis/import-upstream-fixes'
df0fd43 [glesv2] Wrap glGetString() and return GL_VERSION == 2.0
28fc4ff [properties] An off-by-one error in prop handling
2507693 debian: release 0.1.0+git20151016+6d424c9-0ubuntu17
9ee10ef Merge remote-tracking branch 'morphis/fixes-for-multi-linker'
118774b debian: enable ubuntu linker overrides only for armhf
17ffaf7 hybris: common: enable linker overrides only by configure option
b45a220 hybris: glesv2: don't return anything in functions with void as return type
158d1f7 hybris: common: rename variable containing hooks for all devices
f47b3f5 hybris: common: use debug log statement rather than plain printf
816b8bc hybris: common: add env variable to override selected SDK version
017e63d hybris: common: force SDK version 19 for cooler too
4927ba4 hybris: common: use correct property name for device name
d3bfece hybris: common: more fine tuning for runtime linker loading
3ab2ca5 hybris: glesv2: revert back to version without using GNU indirect feature
111fd5a hybris: glesv2: really drop all unneeded symbols
368384c hybris: glesv2: drop redefined symbols
b4c82eb hybris: glesv2: load symbols on demand
14b4bfa hybris: common: fine tune dynamic linker load process
299d15f Revert "Fix resolving the GLEsv2 functions at link time"
945b982 debian: release 0.1.0+git20151016+6d424c9-0ubuntu16
0872a6f debian: release 0.1.0+git20151016+6d424c9-0ubuntu15
111ffc0 Merge remote-tracking branch 'morphis/multi-linker'
ebb2f0b hybris: common: add support for dynamic linker loading at runtime
f8f500e hybris: mm: use recursive mutex for dlopen/.. locking
a7696ca debian: release 0.1.0+git20151016+6d424c9-0ubuntu14
ad9a7dd debian: bump standards version to 3.9.7
8c2804b debian: update copyright file
2a67bf6 Merge branch 'fix-glesv2-loading'
4a41364 Fix resolving the GLEsv2 functions at link time
d69cce6 Merge remote-tracking branch 'rex/compat-marshmallow'
c19f613 Merge remote-tracking branch 'morphis/mm-support'
367eed0 debian: package libGLESv1_CM.so
8e7c0e9 hybris: common: mm: use correct names for relocation types
fae23bb hybris: detect arm64 architecture at configuration time
1c280ef debian: enable mm linker by default
f6cf6ef debian: install load_sym_files.py gdb helper script
74249d7 hybris: common: add more necessary hooks
a2d1d25 hybris: common: fix printf format
7aaea01 hybris: common: add hook for strcmp to fail on nullptr
ec3e4ed hybris: common: mm: drop old ARCH_FLAGS we don't need
f24aa66 hybris: use pthread rather than lpthread to link with pthread lib
45374d3 hybris: common: improve tracing for a few hooks
6029625 hybris: common: add a few more necessary hooks
4c797dc hybris: common: add new keys for sysconf
0434aa7 hybris: common: add more hooks to let string.* bionic tests pass
225ba8d hybris: common: add proper copyright header for sysconf implementation
a71d21f hybris: common: add tracing for sysconf hook
ca7102a hybris: common: respect unsigned nature of size_t
cfd96f9 hybris: common: convert addrinfo struct correctly
16b634a utils: update load-sym-files gdb command to python3
23a9f1a hybris: common: add tracing support for our hooks
85bf747 hybris: common: switch hook prefix to _hybris_hook_
63a630a hybris: hooks: hook a few more symbols for Android 6 support
0ed220c hybris: egl: don't create surface mapping when creation failed
3120222 hybris: common: deliver symbol requester through our hooks too
bc7f73e hybris: common: make hook handler availble for C++
4013385 hybris: common: really make hooking work
fd4b81f hybris: common: mm: fix compliation in x86
ab2cdb3 hybris: common: mm: add missing line ending for error messages
62d2dba hybris: common: add ability to deliver hooks from the outside
f03d311 hybris: common: add c'tor to initialize linker logging
15f8189 tests: add missing pthread to LDADD for test_nfc
c7d3314 hybris: common: mm: disable some more code parts we don't use
eaaf6ab hybris: common: mm: switch from fprintf to DEBUG
4a8b0f5 hybris: common: add missing libs we have to link to
78c17cd hybris: mention experimental configure option in summary
91d9500 hybris: common: mm: replace LINKER_DEBUG with TRACE_DEBUG
501ed53 hybris: common: mm: respect hybris specific library paths only
d6add1e hybris: common: mm: disable linker internal memory mgmt for small objects
9f3d6bf hybris: common: mm: don't memset class instance
6001eca hybris: common: mm: further enablement work
4bba709 hybris: common: build with c++ support
7cbb991 hybris: common: mm: get linker building on arm platforms
1fef10b hybris: common: mm: use HYBRIS_LD_DEBUG to enable debug output
7ae2b39 hybris: common: mm: redirect all linker logs to stdout
d5b97d9 hybris: common: mm: add symbol hooking functionality
3f35a4f hybris: common: add hybris prefix for our hook processing method
1311104 hybris: common: mm: export android_* dlfcn functions for use from C
72ed65c hybris: common: mm: disable debuggerd connection
79905f1 hybris: common: mm: disable tls initialization
7663b4b hybris: common: mm: get rid of sys/limits.h copy
d1ae23a hybris: common: mm: drop support for libs inside zip archives
9a6203e hybris: common: make marshmellow linker building
5ffbab8 hybris: common: enable building marshmellow linker
5dd344c hybris: common: import marshmallow linker
420b2f8 hybris: note used android version in configure summary
2af5c5e hybris: introduce experimental configuration feature
95cd65b Fix MediaCodecSource::Create() API change for Android 6.0.0_r1.
9851a94 Fix Android 6.x build for Android Build System.
9ee460d debian: release 0.1.0+git20151016+6d424c9-0ubuntu13
5e9ca30 hybris: common: stub: don't assert but return error
b95785f debian: release 0.1.0+git20151016+6d424c9-0ubuntu12
bc5ac56 debian: split out arch specific configuration flags
81cfbdd debian: release 0.1.0+git20151016+6d424c9-0ubuntu11
b3ce665 hybris: autotools want it to be README
d4dd727 Merge remote-tracking branch 'morphis/stubbed-linker'
26f0303 hybris: add README file stating which architectures are supported
f2e2f1d debian: add build support for arm64
3a19397 debian: split out common parts of the default configuration
eeaa91b hybris: common: add stub linker implementation
ab4d3e0 debian: release version 0.1.0+git20151016+6d424c9-0ubuntu10
3a4ce85 debian: update changelog
6ac8f08 debian: add missing hybris/common include directory
e5a3629 debian: release 0.1.0+git20151016+6d424c9-0ubuntu9
89d626d debian: update changelog
93ef942 Merge remote-tracking branch 'morphis/media-encoding'
2deb3e7 compat: media: don't put Android 5.x as a requirement for MediaCodecSource
d1d1cab compat: media: introduce API version number
6c070a0 compat: media: only build media codec source support for Android 5.x
d70e261 hybris/compat: media: wrap android media codec source implementation
9372c8c debian: release version 0.1.0+git20151016+6d424c9-0ubuntu8
221ec56 debian: update changelog
164eb94 debian: release version 0.1.0+git20151016+6d424c9-0ubuntu7
845b37c debian: update changelog
221bf70 Merge commit 'c0c6bff5cd182a0999ac1dc9eca49e47f0449259' into merge-288238
c0c6bff debian: adjust our build depends depending which distro we build for
db66306 compat: force modules to be build for 32bit only
decd10c Merge remote-tracking branch 'uriboni/staging'
a88ed3f debian: release version 0.1.0+git20151016+6d424c9-0ubuntu5
58ce694 Merge remote-tracking branch 'morphis/check-for-vivid'
06f9cd8 hybris: add hook for freeaddrinfo and getaddrinfo
c129a23 Revert "debian: drop requirement of gcc 4.7"
b5db2db debian: release version 0.1.0+git20151016+6d424c9-0ubuntu5
a1c93c8 debian: drop requirement of gcc 4.7
0bac189 debian: release version 0.1.0+git20151016+6d424c9-0ubuntu4
efe80d6 debian: update changelog
c46cd98 debian: rules: cleanup formatting for autoconf options
5ba2f69 debian: enable property cache for x86 and armhf
ca70824 debian: sync changelog up with what is released
67022f0 Merge branch 'staging'
9ea13b9 Merge remote-tracking branch 'morphis/fix-binding-generator' into staging
9f09487 utils: fix binding wrapper macro generator script
8b3e26b Merge remote-tracking branch 'morphis/debian-packaging-fixes' into staging
8826f20 Revert "debian: don't package NFC stuff anymore"
57e12f5 debian: drop stripping of not existing package
2622cac Merge remote-tracking branch 'morphis/symbol-check' into staging
5e28b24 Merge remote-tracking branch 'vicamo/for-libhybris-maintainers/always-null-for-unhooked-symbol' into staging
17706b2 Merge remote-tracking branch 'morphis/import-property-cache' into staging
14fa711 hybris: common: add simple macro to check for existing symbols
3cc98a6 [libhybris] Add cache for socket based property lookups.
7ab2d24 Allow setting/clearning the camera metering region
2e36fae hook: skip only symbol names prefixed with "pthread" or "__pthread"
931912b Merge remote-tracking branch 'morphis/review-fixes' into staging
5bd465b Merge remote-tracking branch 'remotes/vicamo/for-libhybris-maintainers/fix-wifi-h-not-found' into staging
65c8869 Merge remote-tracking branch 'remotes/vicamo/for-libhybris-maintainers/add-media-recorder-resume' into staging
309a1a5 Merge remote-tracking branch 'lp/pthread_kill' into staging
c6e6b9d Merge remote-tracking branch 'remotes/vicamo/for-libhybris-maintainers/hook-pthread_condattr_setclock' into staging
4a0f269 Merge remote-tracking branch 'morphis/fix-git-reference' into staging
17674e0 hook: add pthread_condattr_setclock
66da97a debian: correct vcs reference to point to launchpad
89bed78 debian: update changelog
06ecf1d Merge remote-tracking branch 'vicamo/for-libhybris-maintainers/fix-test_audio-for-android-5.x' into staging
69bfefe Merge remote-tracking branch 'vicamo/bug-1516902/add-pthread_mutex_timedlock' into staging
a52f471 Hook pthread_kill such that pthread_t values of 0 do not lead to segfaults.
c44f632 hooks: add pthread_mutex_timedlock
6bf99a7 debian: drop -dbg package as we generate them automatically
24f23a5 debian: drop files listed twice in .install files
35dc4b6 compat: media: implement android::IMediaRecorder::resume
ab6d22b compat: media: remove wrong BOARD_HAS_MEDIA_PLAYER_PAUSE guard
45857d6 debian: update changelog
3cc7ba1 hybris: common: add further debug statements for symbol hooking
42e27f9 hybris: common: hook missing pthread functions
4405a61 debian: enable mali quirks
04c1b6f hybris: common: hook localtime, gmtime and friends
31fb3fb hybris: add configuration option to enable mali related quirks
0c6c769 hybris: common: be more precise on prctl log messages
417861a hybris: common: add exit workaround for mali-hist-dump thread
e1329b4 hybris: common: also log name when prctl called with PR_SET_NAME
e1d645d hybris: common: also hook prctl to workaround mali-hist-dump
8792ddc hybris: common: add ugly workaround for malit-hist-dump thread
ea7f3aa hybris: common: dump mutex address
334b36c Hook getlogin, __sprintf_chk, __snprintf_chk
3466477 Merge remote-tracking branch 'morphis/abstract-media-api-differences'
37a37a0 compat: media: abstract differences in media API across multiple devices
87e3c5b debian: don't package NFC stuff anymore
9968e82 debian: update changelog for new release
8a63560 Merge remote-tracking branch 'chriscoulson/oxide-camera'
f36585e Address review comments
c09bf65 tests: fix test_audio compilation on Android 5 or above
b7bb247 Merge remote-tracking branch 'morphis/debug-package'
953c84a Merge remote-tracking branch 'morphis/always-define-nfc'
aaa7205 debian: add package with debug symbols
3e51715 wifi: fix hardware_legacy/wifi.h not found
aa4cce3 compat: camera: Indentation fix
9baee35 compat: camera: Support device enumeration and connecting to arbitrary devices
d09ac2d compat: camera: Allow applications to turn on preview callbacks
a8fa02c hybris/camera/camera.c: Add android_camera_set_preview_format
17d641c compat: camera: Fix a use-after-free when creating a new CameraControl after deleting an old one
6b4350c hybris: always define HAS_LIBNFC_NXP_HEADERS
2dacb0f Merge remote-tracking branch 'vicamo/for-morphis/add-libstagefright-to-include-path'
8f0e344 Merge remote-tracking branch 'morphis/wip'
1e444a1 Merge remote-tracking branch 'morphis/master'
351ed67 compat: media: fix build with avila
c587332 compat: media: add missing pause function for recorder
6773301 compat: media: force 32bit compilation
c0c7f50 compat: camera: Add support for Android 5.x
48bcba6 compat: media: Adding support for Android 5.x
4ef9fd1 compat: sf: Adding support for Android 5.x
267550b compat: input: adding support for Android 5.x
aa8b2a4 debian: correctly install libvibrator/libnfc
4cab9b5 Update changelog after merge
506d3f4 hybris: Don't hook __system_property_get twice
d38de08 Merge remote-tracking branch 'ycheng/ubuntu-rebase-ycwork'
59a3237 Merge upstream 0.1.0+git20151016+6d424c9
583f151 add libvibrator.so
da50dce add libvibrator.so
7b30b57 modifiy changelog
6f8d1fa fix build error: followed the file in commit dae292c
ecd4974 New upstream snapshot:
be976eb Adding packaging files
d5a7929 Adding dl_iterate_phdr for ARM (required by Android 5 binaries)
c7450a5 hooks.c: fixing typos in function calls
b3941d3 hooks: converting linear search into a binary search (LP: #1343198)
9f10859 wifi: Add support for android WiFi HAL
162d774 Enabling test_lights again (with fixes)
9d10516 test_audio.c: retry stream_out in case it fails in the first try
ce86f8d test_audio.c: improving test, creating both input and output streams
06e9dd0 tests/Makefile.am: adding test_audio back
ec62787 input: add method to check if compat side is available
16069e1 hardware.c: hw_get_module should return an error if module not found
cb1df33 common: also protecting the bionic system property calls
e3d6b4d Adding Android.common.mk to provide the android major, minor and patch version id
8ba6519 Ubuntu: allowing grouper to share the shm block between users for usc
3d9a45a hooks/shm: fixing logic with cond is negative (error)
553bf80 Ubuntu touch uses /dev/alog instead of /dev/log
18cec4b hybris/common/jb: Making libhybris buildable x86 64
810aab6 Edit mf_get_slice_height to return actual slice height.
66eb139 Expose the ability to query the supported flash modes
8f8c349 Thread-protect list output buffer infos list
adb3977 Added getter/setter for JPEG encoding quality.
0f0f196 hybris: Thread-protect release of media buffers
e15dd2d Improve client death notification registration and handler
0825772 Add direct_camera_test support for setting the thumbnail size.
3d2cef9 Add hybris API that allows retrieval of supported camera still image thumbnail sizes that qtubuntu-camera can take advantage of.
f50c0db Implement Observer interface for the MediaRecorder class
ce01c77 hybris: Add CSD to data for configuring codec
51634ea Moved audio record source files from libhybris source tree to frameworks/av/media/libmedia to fix compile issues on other architectures
2ab6719 * Notify qtubuntu-camera when to send data over a named pipe to the Android MediaRecorder * Reimplementing RecordThread, RecordHandle and RecordTrack from AF * Implement CameraRecordService which provides a way to init and start camera audio recording * Add android_recorder_set_audio_read_cb() to media.c * Do not open named piped non-blocking * Re-enable the clearing of the sync start event, which also resets mFramestoDrop * Re-enable the upmix/downmix to/from stereo/mono * Switch MIC_READ_BUF_SIZE to be 960 to agree with AudioFlinger working case * Audio recording is now working with this commit * Clean up the code to remove many unnecessary debug statements and unused code from original Android source * Clean up code more, removed commented out lines of code that will never be used, added some comments
e04de59 Adapt to refreshed stock BufferQueue API
6923221 Added metadata setter for GPS location.
65b1f0e Added function to retrieve list of supported camera's scene modes.
86f63a8 Added Camera's scene mode parameter value for HDR (android::CameraParameters::SCENE_MODE_HDR) existing since Android 4.2 (API level 17).
d80fd37 compat/camera: adding extras required by the mtk bsp
7ca3b81 include/Makefile.am: also installing media_recorder_layer.h
b8ba379 * Updated direct_camera_test that fixes snapshot testing. * Video recording is enabled, but it doesn't work correctly yet. * Added media_recorder_layer which adds a non-Binder wrapper around Stagefright recorder for camera recording. * Update direct_camera test * Add camera recording ability without the media.player Binder service (doesn't fully work yet) * Make sure the custom MediaRecorder and MediaRecorderClient classes get compiled * Create a new recording service binary that instantiates a MediaRecorderFactory instance and the CameraService. This binary lives in the lxc container. * internal_cast function for media_recording_layer.cpp is no longer used, removed it * Improved the Doxygen comments in media_recorder_layer.cpp * Improve/add Doxygen comments to class member functions * Cleaned up media_recorder_client to get rid of unused code * Updated the code file headers to include a Canonical copyright * Change to ALOGV for reporting the MediaRecorderFactory service being installed. * Build the recording_service binary * Rename recording_service.cpp to camera_service.cpp (more general name)
a98c0dc Make sure a client can render video if it connects to media-hub a second time.
55600cf Add media-hub support (out of process video decoding).
ffbe339 camera_compatibility_layer.cpp: in our case the texture is controlled by the app
53cfc6c media: fixing code for 4.4 and improving the release_output_buffer logic
34bb82b Making compat code compatible with Android 4.4
b0c934b Comment out use of removed setPreviewDisplay() for AOSP 4.3+ builds
9ee93e8 Conditionally build for different versions of Camera::connect() API calls
a251d31 compat/sf: adding missing surface.h
f9a0194 Don't crash when doing the software rendering case, which will have stch as a NULL pointer. Instead, just go straight to the software rendering else case.
c9e6431 Got rid of the Singleton SurfaceTextureClientHybris and instead only uses SurfaceTextureClientHybris instances from the heap. At this point, the hybris media layer no longer keeps any local state.
d460984 Reset the state of the static SurfaceTextureClientHybris instance when a MediaCodecDelegate instance is destroyed.
a86ad51 Properly shutdown and release the MediaCodec resources when destroying a MediaCodecDelegate instance.
e9094f5 hybris/media: adding missing surface_texture_client_hardware_rendering (removed during a rebase conflict)
a16acb4 media: improving code for video playback using gstreamer
84c2f71 Media Recorder: adding initial support for media recorder (cam)
8b84081 Media: adding initial compat files for media
13449d0 Edit mf_get_slice_height to return actual slice height.
1124586 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu39
dae292c Adding dl_iterate_phdr for ARM (required by Android 5 binaries)
0ecf8ff releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu38
a741e5d Revert "Switch to CLOCK_MONOTONIC_RAW instead of CLOCK_REALTIME"
4c526a4 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu37
a442ca5 add freeaddrinfo to the hooks, fix a missmatch between glibc's addrinfo and bionic's getaddrinfo
c2f38b5 hooks.c: fixing typos in function calls
4bf8af7 Switch to CLOCK_MONOTONIC_RAW instead of CLOCK_REALTIME
017175f dlsym the symbols in eglGetProcAddress from the glibc libraries
017dce9 Removed debug include and added comment
57f9172 New optimization via gnu dispatching
b704682 sysconf mapping
ebd2119 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu36
f37cd11 Expose the ability to query the supported flash modes
55c7186 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu35
100385c Merge branch 'master' of ssh://hesperidium.canonical.com/srv/phablet.ubuntu.com/git/ubuntu/libhybris
4c4d92b Merge branch 'master' of ssh://hesperidium.canonical.com/srv/phablet.ubuntu.com/git/ubuntu/libhybris
3c72bc1 wifi: add method to check if compat side is available.
dfa677d Thread-protect list output buffer infos list
241b379 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu34
d06d583 Added getter/setter for JPEG encoding quality.
f5a3264 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu33
262c779 Use PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP in dlfcn.c for bionic/linker/dlfcn.cpp use it and needed by certain android bsp. Also thanks to AlexTu on the way to find it.
c719d11 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu32
7123c0d hybris: Thread-protect release of media buffers
b2da9ab Merge branch 'master' of ssh://hesperidium.canonical.com/srv/phablet.ubuntu.com/git/ubuntu/libhybris
fd3ac4e Merge "Improve client death notification registration and handler"
f303486 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu31
73fcf51 Improve client death notification registration and handler
ca4114b releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu30
2bdda77 Merge branch 'master' of ssh://hesperidium.canonical.com/srv/phablet.ubuntu.com/git/ubuntu/libhybris
afaa3bb Merge "Add direct_camera_test support for setting the thumbnail size."
5f0e1a0 Improve client death notification registration and handler
6ba4c35 Add direct_camera_test support for setting the thumbnail size.
75f8f42 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu29
0b9338f Add hybris API that allows retrieval of supported camera still image thumbnail sizes that qtubuntu-camera can take advantage of.
fa9f1ef releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu28
1bb6a93 media/compat: Add CSD to data for configuring codec (LP: #1378397)
2114da7 Implement Observer interface for the MediaRecorder class
0321d54 hybris: Add CSD to data for configuring codec
de26055 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu27
124e639 debian/rules: using hardening=-stackprotectorstrong as that's not supported with gcc 4.7
60c61f8 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu26
512222e hooks: converting linear search into a binary search (LP: #1343198)
3cccbdd debian/control: fix typo in description (LP: #1259444)
a033280 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu25
be8af34 Adding support for the wifi HAL
be6a624 debian: Add wifi library
2f7a1b3 wifi: Add support for android WiFi HAL
0549303 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu24
e3012c2 Merge "Moved audio record source files from libhybris source tree to frameworks/av/media/libmedia to fix compile issues on other architectures"
ffcf03a Moved audio record source files from libhybris source tree to frameworks/av/media/libmedia to fix compile issues on other architectures
c443e7d releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu23
dd7bf98 compat/camera: export additional interface and logic for audio support when recording videos
222bdab releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu22
baf95c7 * Notify qtubuntu-camera when to send data over a named pipe to the Android MediaRecorder * Reimplementing RecordThread, RecordHandle and RecordTrack from AF * Implement CameraRecordService which provides a way to init and start camera audio recording * Add android_recorder_set_audio_read_cb() to media.c * Do not open named piped non-blocking * Re-enable the clearing of the sync start event, which also resets mFramestoDrop * Re-enable the upmix/downmix to/from stereo/mono * Switch MIC_READ_BUF_SIZE to be 960 to agree with AudioFlinger working case * Audio recording is now working with this commit * Clean up the code to remove many unnecessary debug statements and unused code from original Android source * Clean up code more, removed commented out lines of code that will never be used, added some comments
44910e9 Merge "Adapt to refreshed stock BufferQueue API"
f66e117 Adapt to refreshed stock BufferQueue API
c9f7615 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu21
d0755e1 compat/camera: adding metadata setter for GPS location
79b3ded Merge branch 'master' of ssh://hesperidium.canonical.com/srv/phablet.ubuntu.com/git/ubuntu/libhybris
ccc6cb5 Merge "Added metadata setter for GPS location."
13b1d15 Added metadata setter for GPS location.
4fc7115 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu20
3e23373 Added function to retrieve list of supported camera's scene modes.
c339727 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu19
47447a8 Added Camera's scene mode parameter value for HDR
17d8672 Added Camera's scene mode parameter value for HDR (android::CameraParameters::SCENE_MODE_HDR) existing since Android 4.2 (API level 17).
554e17e compat/camera: adding extras required by the mtk bsp
4c22aa9 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu18
0593ad4 debian/control: bumping standards-version to 3.9.5
66f38d8 compat: adding camera_service, also exporting the media_recorder functionality
3558343 include/Makefile.am: also installing media_recorder_layer.h
b177510 Merge "* Updated direct_camera_test that fixes snapshot testing. * Video recording is enabled, but it doesn't work correctly yet. * Added media_recorder_layer which adds a non-Binder wrapper around Stagefright recorder for camera recording. * Update direct_camera test * Add camera recording ability without the media.player Binder service (doesn't fully work yet) * Make sure the custom MediaRecorder and MediaRecorderClient classes get compiled * Create a new recording service binary that instantiates a MediaRecorderFactory instance and the CameraService. This binary lives in the lxc container. * internal_cast function for media_recording_layer.cpp is no longer used, removed it * Improved the Doxygen comments in media_recorder_layer.cpp * Improve/add Doxygen comments to class member functions * Cleaned up media_recorder_client to get rid of unused code * Updated the code file headers to include a Canonical copyright * Change to ALOGV for reporting the MediaRecorderFactory service being installed. * Build the recording_service binary * Rename recording_service.cpp to camera_service.cpp (more general name)"
73dc4aa * Updated direct_camera_test that fixes snapshot testing. * Video recording is enabled, but it doesn't work correctly yet. * Added media_recorder_layer which adds a non-Binder wrapper around Stagefright recorder for camera recording. * Update direct_camera test * Add camera recording ability without the media.player Binder service (doesn't fully work yet) * Make sure the custom MediaRecorder and MediaRecorderClient classes get compiled * Create a new recording service binary that instantiates a MediaRecorderFactory instance and the CameraService. This binary lives in the lxc container. * internal_cast function for media_recording_layer.cpp is no longer used, removed it * Improved the Doxygen comments in media_recorder_layer.cpp * Improve/add Doxygen comments to class member functions * Cleaned up media_recorder_client to get rid of unused code * Updated the code file headers to include a Canonical copyright * Change to ALOGV for reporting the MediaRecorderFactory service being installed. * Build the recording_service binary * Rename recording_service.cpp to camera_service.cpp (more general name)
80bc7a1 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu17
9772b39 Enabling test_lights again (with fixes)
ff917a1 test_audio.c: retry stream_out in case it fails in the first try
b28d5d9 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu16
65624d1 test_audio.c: improving test, creating both input and output streams
2ed27be test_audio.c: improving test, creating both input and output streams
786bf62 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu15
d8f81b1 tests/Makefile.am: adding test_audio back
77af9fe tests/Makefile.am: adding test_audio back
b6e7a5a releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu14
eeef571 Make sure a client can render video if it connects to media-hub a second time.
153cea9 Merge "Add media-hub support (out of process video decoding)."
6b6aabf Add media-hub support (out of process video decoding).
eaba4e8 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu12
fa99f9a input: add method to check if compat side is available
81e1f95 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu11
1bef615 hardware.c: hw_get_module should return an error if module not found
0d70cc5 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu10
4ebed59 Turn on wayland support to provide libwayland-egl and fixing default alternatives priority.
f3dba8f releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu9
a52ba0b camera_compatibility_layer.cpp: in our case the texture is controlled by the app (avoid locks in gl consumer) LP: #1282701
8d8a453 camera_compatibility_layer.cpp: in our case the texture is controlled by the app
74a2c00 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu8
2443fed common: also protecting the bionic system property calls
85175b6 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu7
93dcf9a media: fixing code for 4.4 and improving the release_output_buffer logic
1e85fca releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu6
ff1b97d Making compat code compatible with Android 4.4.2
0e6d6b5 Making compat code compatible with Android 4.4
19021e4 Comment out use of removed setPreviewDisplay() for AOSP 4.3+ builds
891fc73 Conditionally build for different versions of Camera::connect() API calls
b5baf15 compat/sf: adding missing surface.h
652ece7 Adding Android.common.mk to provide the android major, minor and patch version id
3edb15b releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu5
fdce96e Allowing grouper to share the shm block between users for usc
d983f52 Ubuntu: allowing grouper to share the shm block between users for usc
0cfab8c releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu4
c694ffc releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu3
3fb924e compat/media, hybris/media: removing singleton and simplifying the code now that most of the sync logic is happening in gstreamer
43893c6 Don't crash when doing the software rendering case, which will have stch as a NULL pointer. Instead, just go straight to the software rendering else case.
a1b0791 Got rid of the Singleton SurfaceTextureClientHybris and instead only uses SurfaceTextureClientHybris instances from the heap. At this point, the hybris media layer no longer keeps any local state.
654aa2c Reset the state of the static SurfaceTextureClientHybris instance when a MediaCodecDelegate instance is destroyed.
20f3ab0 Properly shutdown and release the MediaCodec resources when destroying a MediaCodecDelegate instance.
fdc56ef releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu2
ad55eab hybris/media: adding missing surface_texture_client_hardware_rendering function in surface_texture_client_hybris.h, that got removed during a rebase conflict.
e3c33b2 hybris/media: adding missing surface_texture_client_hardware_rendering (removed during a rebase conflict)
a8a3542 releasing package libhybris version 0.1.0+git20131207+e452e83-0ubuntu1
08810dd media: improving code for video playback using gstreamer
f807970 Media Recorder: adding initial support for media recorder (cam)
276d7da Media: adding initial compat files for media
6dc3b8f hooks/shm: fixing logic with cond is negative (error)
c4c09bc jb/linker.c: ubuntu touch uses /dev/alog instead of /dev/log
f209be7 hybris/common/jb: Making libhybris buildable x86 64
9a83d34 Adding packaging files
REVERT: 8251486 Merge pull request libhybris#27 from ghosalmartin/mm64-upstream
REVERT: 8620c5d Update test_hwcomposer to support hwcomposer 1.3, 1.4 and 1.5
REVERT: 3a9742f hybris: functions which contain pthread but are not pthread functions should not be hooked to negative numbers if no hook exists
REVERT: aa12639 hybris: fix mismatch between bionic fpos_t size and glibc fpos_t in bionic_file struct
REVERT: d300eaf hooks: fix bionic FILE struct size on arm64
REVERT: 393c63a hooks: fix arm64 shared pthread ptr implementation
REVERT: 831399f Hook pthread_kill such that pthread_t values of 0 do not lead to segfaults.
REVERT: ad0447c hook: add pthread_condattr_setclock
REVERT: bf54ec0 hooks: add pthread_mutex_timedlock
REVERT: 062e6c6 hybris: common: hook missing pthread functions
REVERT: d585ba2 hybris: hook __progname to program_invocation_name
REVERT: 346e592 hybris: fix pthread_getspecific: don't return a value for an uninitialized key
REVERT: ad25390 [mm] build the mm linker with libhybris changes
REVERT: 563cf04 [mm] add the strlcat.c file
REVERT: c622a5c [mm] add the assert.cpp file
REVERT: 576cdf3 [mm] add the libc_logging.cpp file
REVERT: 281b75b [mm] add the libc_events.h and libc_logging.h header files from bionic libc
REVERT: 63eee39 [mm] temporarily rename dlfcn.cpp to linker_dlfcn.cpp, to avoid issues with automake based build
REVERT: d1def28 [mm] copy and paste the marshmallow linker
REVERT: e0d4381 [glesv1] let the linker decide the location of libGLESv1_CM.so
REVERT: d9e8a16 [hooks] open is hooked -> hook close?

git-subtree-dir: libhybris
git-subtree-split: 240ae56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants