Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
41052ba5
Commit
41052ba5
authored
Nov 13, 2012
by
Edward Wang
Committed by
Jean-Baptiste Kempf
Nov 14, 2012
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
opensles_android: Implement TimeGet
Signed-off-by:
Jean-Baptiste Kempf
<
jb@videolan.org
>
parent
a44da88b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
18 additions
and
6 deletions
+18
-6
modules/audio_output/opensles_android.c
modules/audio_output/opensles_android.c
+18
-6
No files found.
modules/audio_output/opensles_android.c
View file @
41052ba5
...
...
@@ -138,11 +138,26 @@ static void Pause(audio_output_t *p_aout, bool pause, mtime_t date)
pause
?
SL_PLAYSTATE_PAUSED
:
SL_PLAYSTATE_PLAYING
);
}
static
int
TimeGet
(
audio_output_t
*
p_aout
,
mtime_t
*
restrict
drift
)
{
aout_sys_t
*
p_sys
=
p_aout
->
sys
;
mtime_t
delay
=
p_sys
->
length
;
SLAndroidSimpleBufferQueueState
st
;
SLresult
res
=
GetState
(
p_sys
->
playerBufferQueue
,
&
st
);
if
(
unlikely
(
res
!=
SL_RESULT_SUCCESS
))
{
msg_Err
(
p_aout
,
"Could not query buffer queue state in TimeGet (%lu)"
,
res
);
return
-
1
;
}
if
(
delay
&&
st
.
count
)
*
drift
=
mdate
()
+
delay
;
return
0
;
}
/*****************************************************************************
* Play: play a sound
*****************************************************************************/
static
void
Play
(
audio_output_t
*
p_aout
,
block_t
*
p_buffer
,
mtime_t
*
restrict
drift
)
static
void
Play
(
audio_output_t
*
p_aout
,
block_t
*
p_buffer
)
{
aout_sys_t
*
p_sys
=
p_aout
->
sys
;
int
tries
=
5
;
...
...
@@ -161,7 +176,6 @@ static void Play( audio_output_t *p_aout, block_t *p_buffer,
vlc_mutex_lock
(
&
p_sys
->
lock
);
mtime_t
delay
=
p_sys
->
length
;
p_sys
->
length
+=
p_buffer
->
i_length
;
/* If something bad happens, we must remove this buffer from the FIFO */
...
...
@@ -171,9 +185,6 @@ static void Play( audio_output_t *p_aout, block_t *p_buffer,
block_ChainLastAppend
(
&
p_sys
->
pp_last
,
p_buffer
);
vlc_mutex_unlock
(
&
p_sys
->
lock
);
if
(
delay
&&
st
.
count
)
*
drift
=
mdate
()
+
delay
-
p_buffer
->
i_pts
;
for
(;;)
{
SLresult
result
=
Enqueue
(
p_sys
->
playerBufferQueue
,
p_buffer
->
p_buffer
,
...
...
@@ -405,5 +416,6 @@ static int Open (vlc_object_t *obj)
/* FIXME: set volume/mute here */
aout
->
start
=
Start
;
aout
->
stop
=
Stop
;
aout
->
time_get
=
TimeGet
;
return
VLC_SUCCESS
;
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment