- specify requested metadata mode from producers to OMX
- (pass requested metadata in IOMX::storeMetadataInBuffers)
- use correct logic for native handle source
- use native handle source for encoded meta buffers
Bug: 22775369
Change-Id: I58b03acd3e9a5367d5010d7f87b7af5cae23362c
Encoders and secure decoders still run in the mediaserver, while
all other codecs run in a separate codec process.
Bug: 22775369
Change-Id: Ifbcab8a8f2fe77d2567830ac88f0d982e77f7b00
OneShotDecodingSource is a lightweight replacement for OMXCodec
for decoding use. It does not support pause, secure content or
precise seeking.
'stagefright' now lists the codec profiles for all OMX codecs,
not just the regular ones.
Change-Id: I99f0f79af852a8a16607218acd9fdd83457b7f70
(cherry picked from commit bf03e42c7a)
Run extractors in a separate process. Currently all data is copied through a
binder transaction, and WVMExtractor is still run in the mediaserver process.
Change-Id: Ic5dbce87126dd321ad792f4dd540c2ff6b068d13
Now that Surface and SurfaceTextureClient are the same and Surface,
it does not add value.
Bug: 19489395
Change-Id: I016ecd1cf5cc51ce6244b6fa34ecd75f84e3db01
Change replyID-s from uint32_t to an object
Move reply handling into the loopers (to reuse a common mutex)
Bug: 19607784
Change-Id: Iaa035b846c424c5687ed17ce1079b325e86c54be
We should come back and replace AString with std::string and switch to the
"real" StringPrintf family, but this fixes the ODR violation that was
preventing us from booting.
Bug: 19265750
Change-Id: I798eb9ca5dd634e44625af5e583439ef9f0cdc35
MediaPlayerService can't open files (it needs an already opened
file descriptor), so these were just wasting space.
Change-Id: I323044a6c1814a7bff952ed71b5c7792df2abf03
mediafilter was defining LOCAL_NDK_STL_VARIANT, but never setting
LOCAL_SDK_VERSION, so it was a no-op. Since the project was still
manually setting the stlport include path, it was getting the stlport
headers with precedence over libc++, which breaks the world.
Once that is fixed, the project has never linked libRScpp, which is
required (I'm not sure how this part has ever worked).
Change-Id: Iac70c86bc150eea08329812c0d5744434318d28e
* Fix string literal concatenation to not be interpreted as UD
literals.
* Add constexpr compatibility for non-integral static members.
* Use __typeof__ instead of typeof (should become decltype once this
actually becomes C++11).
* Add an appropriate cast for atomic_uintptr_t, since moving to C++11
means moving from <stdatomic.h> to <atomic>, which has better
typechecking (hooray for not macros!).
Bug: 18466763
Change-Id: I9561dcb2526578687819ff85421ba80d8e1a9694
Fix something being declared a struct and forward-declared a class and
vice versa.
gcc doesn't care, clang complains about the mismatch.
Change-Id: I7a7a8e9040e3c86fa1d73eb112631ea140861657
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
Passes the BufferItem for the queued buffer to the onFrameAvailable
callback so the consumer can track the BufferQueue's contents.
Bug: 18111837
Change-Id: If9d07229c9b586c668e5f99074e9b63b0468feb0
-R renders video output to the surface ASAP
-T renders video output to the surface using frame timestamps
Change-Id: I232f19587036edc12e86b4f1dea4d12accef3834
Removes the dependency on default constructor parameters for
GLConsumer so that a different constructor prototype can safely be
added.
Change-Id: I0da924bbd4c141edbf305598c1be8bc575654680
This works like the frames output format but without a header so that
the output can be piped directly to mplayer:
adb shell screenrecord --output-format=raw-frames - | mplayer -demuxer
rawvideo -rawvideo w=320:h=240:format=rgb24 -
Change-Id: Ib5ed508fdca3a5d63e973c5189b3677c2d92b43f
This adds the ability to dump frames as RGB data with a minimal
frame header. Only recommended for devices with small displays.
Enable with "--output-format=frames".
The "--raw" option is now selected with "--output-format=h264".
Change-Id: I18d3d4a87cd056d7acf0658985a90dc5895dbfb6
This adds an experimental (undocumented) "--raw" flag. If set, we
output an H.264 byte stream rather than a .mp4 file.
If the filename is "-", we send the output to stdout. If stdout is a
tty, we reconfigure it to avoid CRLF line termination over adb.
Change-Id: I5193f6193c9c1a59f92eefad0ed399f24afbf6de
- change internal sized types to use stdint.h
- printf & scanf formats
- size_t or unsigned int for iterators
Change-Id: Id993a70d8bf54c667c5d652b34179a2c727ed446
This adds the ability to dump frames as RGB data with a minimal
frame header. Only recommended for devices with small displays.
Enable with "--output-format=frames".
The "--raw" option is now selected with "--output-format=h264".
Bug 13140019
Change-Id: I61bee55cea97db3134a91e7ea06106783e5bf340
Contains the necessary changes to make frameworks/av build and work
on a 64-bit machine.
Signed-off-by: Craig Barber <craig.barber@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Change-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43
This adds an experimental (undocumented) "--raw" flag. If set, we
output an H.264 byte stream rather than a .mp4 file.
If the filename is "-", we send the output to stdout. If stdout is a
tty, we reconfigure it to avoid CRLF line termination over adb.
Bug 12239887
Change-Id: I00ceb628bd885916eaf4658ea7f08f620ad74c03
Fixes to issues identified during code review.
(cherry-pick from I2203694acb5c0544878f64f4347d29ad1a0725c4)
Change-Id: I58fcb5264fc17b26fac4b03f95d35262e9e199e2
The --bugreport option adds two visible features: (1) a timestamp
overlay that (mostly) matches logcat, making it easier to match what
appears in the video with what's in the log, and (2) an "info page"
at the start of the video that shows the system configuration.
Enabling this option adds an additional composition step,
increasing the overhead of screenrecord. Depending on the device
and circumstances, this may be unnoticeable or very pronounced.
If --bugreport is not enabled, the overhead of screenrecord is
unchanged.
We also now track device orientation changes. This is currently
detected by polling surfaceflinger, which is suboptimal. As a
result, we detect the rotation too late, and get a weird mixed
frame before the start of the animation for 90-degree changes.
Also, allow the bit rate to be specified as e.g. "4M" for 4Mbps.
Also, --rotate is now deprecated.
Bug 11220305
Bug 11136964
(cherry pick from Ibb94b81d2f73547b95d7a47e027da75fab187a4f)
Change-Id: I829a91aaca5ab82a07c14172d9e188ec38f14e57
The --bugreport option adds two visible features: (1) a timestamp
overlay that (mostly) matches logcat, making it easier to match what
appears in the video with what's in the log, and (2) an "info page"
at the start of the video that shows the system configuration.
Enabling this option adds an additional composition step,
increasing the overhead of screenrecord. Depending on the device
and circumstances, this may be unnoticeable or very pronounced.
If --bugreport is not enabled, the overhead of screenrecord is
unchanged.
We also now track device orientation changes. This is currently
detected by polling surfaceflinger, which is suboptimal. As a
result, we detect the rotation too late, and get a weird mixed
frame before the start of the animation for 90-degree changes.
Also, allow the bit rate to be specified as e.g. "4M" for 4Mbps.
Also, --rotate is now deprecated.
Bug 11220305
Bug 11136964
Change-Id: Ibb94b81d2f73547b95d7a47e027da75fab187a4f
If configuring the encoder for display-size recording fails, we drop
back to 720p. This was done a bit too literally, and didn't look
good in portrait mode. Rotate the fallback size as needed.
Bug 10826876
Change-Id: Id3130471fc1467afa8bf91d75c9d4a49245253c3
Recordings are now limited to 3 minutes. The time can be set lower
with the --time-limit option.
Bug 10529645
Change-Id: I6ac19b9da8d616d38262414c2e821d56efcec55d
Use an "am broadcast" command to notify the media scanner that
a new video file is available.
Bug 10096103
Change-Id: I8261d81d96832969ebb9031a9766c1b1f2a569ed
Attempt to create the output file before handing it to MediaMuxer,
which doesn't report file-open failures in a useful way.
Change-Id: Ie24ff577dd50e185b4eb72575684d23a46f38d3d
Instead of 720p, use the screen dimensions as the default video
size. For example, a phone with a 768x1280 display would be
recorded as a 768x1280 video when in portrait, or a 1280x768
video when in landscape.
If the device is not able to record at that resolution, we
fall back to 720p.
Also, fixed a problem introduced by a buffer timestamp change.
Change-Id: I7230ddb323c669ab07327f26df8d103c192c21d3
This records the screen contents as a movie. It works by feeding
the output of a virtual display to the video/avc encoder. Recording
continues until Ctrl-C is hit.
Video only, no sound. Does not track screen rotations.
Change-Id: I91d5c4e781792c740699b7a83590e846295b3617
Also change the VP8 encoder role name from
video_encoder.vpx to video_encoder.vp8 for
future VP9 encoder support.
Requires the change in frameworks/native and media_codecs.xml
corresponding to the device.
VP9 decoding test will be added to cts repo later.
LOCAL_MODULE_TAGS := debug causes the module to be included in every userdebug
build, regardless of whether it's specified as a dep by the device config.
This CL switches them all to optional (i.e. default behavior) so that we can
do (userdebug) device builds without pulling these in.
Change-Id: I4b7b65afea61865dd38b3af55550fb8f10edf66d
Camera:
- Signal to AppOpsService when camera usage starts and stops
- Listen to permissions revocations and act on them
- Currently just kill camera connection when permissions lost
Stagefright:
- Pass on client name, UID to camera as needed
Bug: 8181262
Change-Id: I9e33c9d05e9daa77dbb2d795045d08eb887ec8f0
This test/utility copy samples from one video and mux into another video.
It support trimming, cutting audio or video track.
It can run simply as command line like:
adb shell muxer -a -v -s 1000 -e 8000 "/sdcard/DCIM/Camera/VID_*.mp4"
bug:7991013
Change-Id: I8a2eeff3cabd001b6b2a7062d991dd076edbf22e
has successfully completed and a sufficient amount of data fetched,
and only then signals that preparation is completed.
Change-Id: I7684a14238b826909f518f2af506966e522dfcfc
The C++ class names don't match what the classes do, so rename
ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to
GLConsumer.
Bug 7736700
Change-Id: I64520a55f8c09fe6215382ea361c539a9940cba5
Without this, some changes I'm making over in frameworks/native
result in a link-time failure to find android_atomic_dec.
Change-Id: Ieb45a86ef6508816ac51589e249ff89caf7ba309
This avoids busy looping while e.g. waiting for the software encoder
to finish.
This is similar to what the 'record' and 'stagefright' test apps
do.
Change-Id: Idce55b15396ce78b621a521229603bec1e799f33
commandline tool to open the file to extract thumbnails from itself since
mediaserver may not have permission to open files.
Change-Id: Iabe16b3248e9bb0f266b0866a8d2ccba2ab7d2a8
related-to-bug: 6321237
o plus a few file relocation: ActivityManager.cpp/h, SoundPool.h, etc
o remove some runtime dependencies to libandroid, libandroid_runtime, etc
Change-Id: I047a47c5fb361dd5cf85cd98798c39f629a75d10
and avoid ambiguous term "channels" where it might be confusing
as to whether it is a channel mask or channel count
Change-Id: I744fa08ccb6001a98c97bd638d2c9d56836c4234
stop - means transition back to LOADED state and keeping the component
instance allocated.
release - means we get rid of the component completely.
Change-Id: I40ad01ce70821faaad43f57999249904f9144924
Restore QueryCodecs() signature exactly as used by third-party libs.
Add an alternative function to select HW only codecs.
Change-Id: Ibb2cb4dd36fc0c6599eb93aa5751c216397e3b6f
Add an option to OMXCodec::QueryCodecs() to filter out
software codecs.
Update stagefright command line tool to list the roles of codecs.
Change-Id: Icddb79118c30fe13cc3aea20f340174cc082c4e0
Make sure sf2 does not coalesce input buffers, generalize ACodec's codec
instantiation based on OMXCodec's list of eligible component names.
Some changes/additions to the "sf2" commandline tool
Make surface options consistent with stagefright tool, i.e. use '-S' instead of '-s'
New option '-R' renders surface-allocated buffers.
Also fixes a longstanding bug introduced when generalizing from surfaces to native windows that never used surface-allocated buffers in sf2 even when the option was specified.
Change-Id: I59fd533f0f6ef0337ebe2806ddc81a46878eb3ae
Use '-S' to allocate decoder buffers from a surface
Use '-T' to allocate decoder buffers from a surface texture
Change-Id: Ib71ea53d0fd1b2def08bfeac2fd8bcbdc1938161