History log of /frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d89532e133b881c7e0dac089333ad7642fc510f1 14-May-2013 Richard Fitzgerald <rf@opensource.wolfsonmicro.com> libmediaplayerservice: offload playback support

Main change is to how recycled tracks are used for gapless
playback. If we are playing offloaded tracks that can't be
recycled we don't open a new offloaded output until we have
closed the previous one. This is because offloaded tracks
are a limited resource so we don't want to spuriously create
unnecessary instances. If the tracks cannot be recycled
this means that the formats are incompatible and so the
hardware most likely will also be unable to use the existing
output channel for the new track. If we already have the
maximum number of hardware offload channels open (which could
be only one) then creation of the next output would fail if
we attempted it while the previous output was still open.

Change-Id: I4f5958074e7ffd2e17108157fee86329506730ea
Signed-off-by: Eric Laurent <elaurent@google.com>
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
ad3af3305f024bcbbd55c894a4995e449498e1ba 25-Mar-2013 Richard Fitzgerald <rf@opensource.wolfsonmicro.com> Public API changes for audio offload support.

NOTE: this does _not_ include all private member variables added
to classes as part of offload support. Only public/protected functions
and stubs functions/variables needed to make the changes buildable.

- isOffloadSupported() added to audio policy service
A stub implementation is required to build, this always returns false
- setParameters() added to IAudioTrack
A stub implementation is required to build, this always returns
INVALID_OPERATION

- CBlk flag for stream end

- Change AudioSystem::getRenderPosition() to take an audio_output_t
so caller can specify which output to query

- Add AudioSystem::isOffloadSupported()
This is fully implemented down to the AudioFlinger function
AudioPolicyServer::isOffloadSupported() which is just a stub
that always returns false.

- Add EVENT_STREAM_END to AudioTrack interface.
STREAM_END is used to signal when the hardware has actually finished
playing all the data it was sent.

- Add event type enumeration to media player interface AudioSink callbacks
so that the same callback can be used to handle multiple types of
event. For offloaded tracks we also have to handle STREAM_END and
TEAR_DOWN events

- Pass audio_offload_info_t to various functions used for opening outputs,
tracks and audio players. This passes additional information about the
compressed stream down to the HAL when using offload.
For publicly-available APIs this is an optional parameter (for some of
the internal and low-level APIs around the HAL interface it is mandatory)

- Add getParameters() and setParameters() API to AudioTrack
Currently dummy implementations.

- Change AudioPlayer contructor so that it takes a set of bitflags defining what
options are required. This replaces the original bool which only specified
whether to use deep buffering.

- Changes to StageFright class definition related to handling tearing-down of
an offloaded track when we need to switch back to software decode

- Define new StageFright utility functions used for offloaded tracks
Currently dummy implementations.

- AudioFlinger changes to use extended audio_config_t.
Fills in audio_offload_info_t member if this info is passed in when
opening an output.

- libvideoeditor changes required to add the new event type parameter
to AudioSink callback functions

- libmediaplayerservice changes required to add the new event type parameter
to AudioSink callback functions

Change-Id: I3ab41138aa1083d81fe83b886a9b1021ec7320f1
Signed-off-by: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
Signed-off-by: Eric Laurent <elaurent@google.com>
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
2799d743ee2ae5a25fe869a7f9c052acc029559f 30-May-2013 Glenn Kasten <gkasten@google.com> Use sp<AudioTrack> instead of raw AudioTrack *

This change prepares for the new implementation of AudioTrack client, which
will require clients to use only sp<AudioTrack>, not raw AudioTrack *.
A raw delete will cause a race condition during AudioTrack destruction.

AudioTrack was made a RefBase by commit b68a91a70bc8d0d18e7404e14443d4e4020b3635
on 2011/11/15, when it was needed by OpenSL ES (for the callback protector).
At that time, the only other client that was also converted from
AudioTrack * to sp<AudioTrack> was android.media.AudioTrack JNI in
project frameworks/base (file android_media_AudioTrack.cpp).

Details:
* Use .clear() instead of delete followed by = NULL.
* ALOG %p need .get().
* sp<> don't need to be listed in constructor initializer, if initially 0.
* Use == 0 for sp<> vs == NULL for raw pointers.
* Use if (sp != 0) instead of if (raw).

Change-Id: Ic7cad25795d6e862e112abdc227b6d33afdfce17
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
8ba01021b573889802e67e029225a96f0dfa471a 18-Dec-2012 Andy McFadden <fadden@android.com> Rename ISurfaceTexture and SurfaceTexture

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
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
e33054eb968cbf8ccaee1b0ff0301403902deed6 14-Nov-2012 Glenn Kasten <gkasten@google.com> Use size_t for frame counts

Also fix typo: bufferCount should be frameCount.

Change-Id: Ibed539504db75ef99dc21c8ff1bf2987122063a5
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
3b16c766d1ae2cfd8487e8ffb2b23936fc0a8e17 14-Nov-2012 Glenn Kasten <gkasten@google.com> Use uint32_t for sample rate

Change-Id: Ie240b48fb54b08359f69ecd4e5f8bda3d15cbe80
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
1948eb3ea6eee336e8cdab9b0c693f93f5f19993 14-Apr-2012 Eric Laurent <elaurent@google.com> Add support for deep audio buffers

Allow AudioSink to use deep audio buffering when the
source is audio only and its duration is more than
a certain threshold.
This helps improve battery life but implies higher
audio latency.

Change-Id: Ie79915b61c370292f05aabda9779356570e03cbb
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
0ca3cf94c0dfc173ad7886ae162c4b67067539f6 18-Apr-2012 Eric Laurent <elaurent@google.com> rename audio policy output flags

Change-Id: I27c46bd1d1b2b5f96b87af7d05b951fef18a1312
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
4110c101c3d0dd8dbc44c8d2d0edd3e2e7d6652f 29-Mar-2012 Marco Nelissen <marcone@google.com> Add gapless playback support for NuPlayer

This makes NuPlayer use a SkipCutBuffer when needed, and adds a new
AudioSink method to retrieve the number of frames written so far, so
NuPlayerRenderer can calculate how much data it can write without blocking.
Also make some more methods const.

Change-Id: Id7d253ad8a7b85e9a84ca2baafbe32817b16c744
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
09e1ef282e7b2df400a9f35feb47b48b67af0f3b 07-Mar-2012 Glenn Kasten <gkasten@google.com> Use audio_policy_output_flags_t consistently

Change-Id: I425cfd442257560dcf141d3d8599ddc7d21c1d13
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
8162c1a9f4df4bf4733e78f5b03398b2991ba79a 02-Mar-2012 Jean-Michel Trivi <jmtrivi@google.com> Set channel mask when opening audio sink

Update the code to use the AudioSink::open() interface that
takes a channel mask as an additional parameter. The code
is only stereo, and returns an error when attempting to create
a video editor audio sink with more than two channels.

Change-Id: Ib9bba067da0b286c08656976b89fba7c8b42f99f
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
00f742c087d92e5452d29be1fb668022b5f8a6c7 14-Jan-2012 James Dong <jdong@google.com> More source code Clean up in video editor engine

o fixed incorrect design and got rid of PreviewPlayerBase class
o removed obsolete/unused code as much as possible and reformatted the source code
o verified and passed functional tests
o More to come ...

Change-Id: I7a89162f8b9d9ea6eabcf0457366cd2f6d970d11
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
daeb5b33861147fda0096f9c794be6f341d884c2 12-Jan-2012 James Dong <jdong@google.com> Remove streaming related logic from preview player.

Video editor engine only deals with local file playback/preview.

Change-Id: I8e3414abf8a109a77a1e34a959fb4a090612ae3d
related-to-bug: 5857057
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
8dcbd11c186e26b67de813adaec66dd578415cd7 04-Jan-2012 Glenn Kasten <gkasten@google.com> Use audio_format_t consistently

Change-Id: Idb08c49fe1a2c87ea2bb080815a5a6f95409834c
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
f8bd29c66308c820d579b3efb0942a53a277e2c5 08-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Bug: 5449033
Change-Id: I5c54a0185527f6ca3e746d625a007aa06f6f25f9
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
ec9e663f697df4254dacc79f52cdb633179c92ab 04-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156801

Bug: 5449033
Change-Id: I261ad4d5348f4832488707edeb3cbdbb6dd12fca
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
2703f23af496c13cfa39cc7e157fa12d1cb4c169 20-Oct-2011 Steve Block <steveblock@google.com> Rename LOGV(_IF) to ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I366680b6e614b8983d1def28cc2fdbfa98f39531
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
43fcc396614a587851e2b7c4cea2876ec58b8648 02-Aug-2011 Chih-Chung Chang <chihchung@google.com> Use GL to render preview.

To speed up the preview, we direct the decoder output to a
SurfaceTexture, then draw the texture to a surface. The media
rendering parameters (crop, black-border) are implemented
using different vertex coordinates. The color effects are
implemented using fragment shaders. Currently only three color
effects are implemented, but that's all the appplication uses.

Change-Id: If84439fee572ed37ea077749ef9f2bd4f78703e1
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
7efb8efc88ba529c1c57366a305855c2051ebb8b 22-Jul-2011 Chih-Chung Chang <chihchung@google.com> Add YV12 color converter interface for VideoEditor.

The original assumption in VideoEditor is that the decoder output
and encoder input are in YV12 format. However on different
hardware platform the actual formats may be different. So now we
load a platform-specific YV12 color conversion module which
knows the actual format and can convert to/from YV12, which is
the format used in VideoEditor internally for processing.

Bug: 5061733
Change-Id: I852f85efd30c05cf6c42810059ee4d2ef37ee3da
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
9969866cfe5b17c6e481b90d81b011a0cece78a0 30-Jun-2011 Chih-Chung Chang <chihchung@google.com> Make line-ending consistent (unix style).

Change-Id: Id837b042952ff5d97907591f337b2222cff2c8a9
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
b5c7784c96a606890eb8a8b560153ef4a5d1a0d9 23-Jun-2011 Thomas Le Guevel <thomaslg@google.com> Fix for: 4676350 Do not use dual copyright declaration for video editor code

Change-Id: I2856be051fa3b3ddfe67e096e45fb0b34beb92be
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
72e95e7ee6fe2892201575e7f7e4dd798fb225f6 02-Jun-2011 Glenn Kasten <gkasten@google.com> Revert "Use AudioTrack::event_type not int in callback"

This reverts commit dd51bdc4cf4b7c9f09e7dc4116651c6681d5287c
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
984eae0d1715c2caa6da6cccb55b919db9da1da2 05-May-2011 Glenn Kasten <gkasten@google.com> Use AudioTrack::event_type not int in callback

Change-Id: I09ff321f9457c0a9ee58e59bee38ed53799e494b
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
272eb55a3855d8455bc0a12e5359d51f4010332a 11-May-2011 Dima Zavin <dima@android.com> update for new audio.h header location

Change-Id: I593b91a84a603d8c7f51a83232cced5af4980baf
Signed-off-by: Dima Zavin <dima@android.com>
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
acb62af8ccf493b38decd91d94eb18395b6f9461 26-Apr-2011 Gloria Wang <gwang@google.com> Add setParameter/getParameter to MediaPlayer API
for bug 1982947

Change-Id: Ic32704367bdcf2ade3f035a164927e95c69af7fa
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
6859837b0bdea82be855ab50bd69c5ac9b62acf2 06-Apr-2011 Dima Zavin <dima@android.com> libvideoeditor: convert to use new audio.h

Change-Id: I39726f6f6cd5aabbd91629f329876660b3d3cec2
Signed-off-by: Dima Zavin <dima@android.com>
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
6e2242974c109e85bac50550970fe84009c76f77 06-Apr-2011 Mathias Agopian <mathias@google.com> remove unused references to ISurface

Change-Id: Ia11c5f46f38c0b00ca63d19d3484bf4024cdb75d
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
fa31daff175709d2c58d61d1354daa9495696631 19-Mar-2011 Raghavender Palla <rpalla@google.com> Fix for the issue: TestPreviewWithTransition fails (4133108)

Change-Id: I53eb798f4f86e83f8a4668c7256241367c1ccbe4
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
4aeec63e25e1d1f55d55245d1c0ffd554f2a2f49 14-Feb-2011 Glenn Kasten <gkasten@google.com> Bug 3438258 surface textures

This is sufficient to build, but is not a full implementation.
See bug 3467199 for the real implementation.

Change-Id: Ifc3325fa9b019669bffddfd7bfd10bce57d0a136
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
1c97d9ab52a288d24ea54499de435277cc1a3d68 22-Feb-2011 Rajneesh Chowdury <rajneeshc@google.com> Fix for 3369917 Audio skips at clip edit points

Change-Id: Iba66585cc2e679475d8db529d6113586b58e626e
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
b2d6e0f74a12e5cce5b429e646172c63346346c3 17-Feb-2011 Santosh Madhava <smadhava@google.com> Fix for issue 3439595 : Movie studio playback previous frames

Change-Id: I0f1a6cdfa40f6c8eebe989116e01ba8c212d5872
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
d196f1c368746d13c3a7dc470ebe3a4c33d2c74d 12-Feb-2011 Danny Fernandes <dannyfernandes@google.com> Fixed issue 3385135: change min audio buffer count to match awesome player

Change-Id: I4408b5c42edd0a65016ed621b31ecda513d17d60
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp
643290dc4c83da23b1b8ff4ed71118203274bb15 17-Jan-2011 Dharmaray Kundargi <dharmaray@google.com> videoeditor preview code on honeycomb

Change-Id: I9c3c9cb921ea697ab16732973d26ef9035cda2ee
/frameworks/av/libvideoeditor/lvpp/VideoEditorPlayer.cpp