Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Issue 2781010: 1. support stop mode for omx (Closed)

Created:
10 years, 6 months ago by wjia(left Chromium)
Modified:
9 years, 7 months ago
CC:
chromium-reviews, scherkus (not reviewing), fbarchard, pam+watch_chromium.org, awong
Base URL:
http://src.chromium.org/git/chromium.git
Visibility:
Public.

Description

1. support stop mode for omx 2. make player_x11 respond to button event quickly BUG=none TEST=dev platform Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=49749

Patch Set 1 #

Total comments: 10

Patch Set 2 : merge with async stop check-in #

Unified diffs Side-by-side diffs Delta from patch set Stats (+32 lines, -10 lines) Patch
M media/filters/omx_video_decode_engine.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M media/filters/omx_video_decode_engine.cc View 1 6 chunks +22 lines, -7 lines 0 comments Download
M media/tools/player_x11/player_x11.cc View 1 5 chunks +9 lines, -3 lines 0 comments Download

Messages

Total messages: 9 (0 generated)
wjia(left Chromium)
Now OMX supports "stop" (both eglimage and system memory buffer cases). Somehow ffmpeg case crashes. ...
10 years, 6 months ago (2010-06-10 23:25:38 UTC) #1
jiesun
are we going to address the FillBufferDone and FreeOutputBuffer race in this patch? could we ...
10 years, 6 months ago (2010-06-11 16:36:49 UTC) #2
wjia(left Chromium)
The FillBufferDone and FreeOutputBuffer race has been addressed by checking CanAcceptOutput(). It's different from handling ...
10 years, 6 months ago (2010-06-11 16:59:46 UTC) #3
jiesun
could we put this in comments rather than code-review? "Stopped state is different from UnInit ...
10 years, 6 months ago (2010-06-11 18:37:43 UTC) #4
jiesun
http://codereview.chromium.org/2781010/diff/1/4 File media/tools/player_x11/player_x11.cc (right): http://codereview.chromium.org/2781010/diff/1/4#newcode145 media/tools/player_x11/player_x11.cc:145: return; I believe a lot of logic ( include ...
10 years, 6 months ago (2010-06-11 18:38:02 UTC) #5
Alpha Left Google
http://codereview.chromium.org/2781010/diff/1/2 File media/filters/omx_video_decode_engine.cc (right): http://codereview.chromium.org/2781010/diff/1/2#newcode172 media/filters/omx_video_decode_engine.cc:172: case kClientStopped: Now kClientStopped means kStopped, shouldn't kClientStopping equals ...
10 years, 6 months ago (2010-06-11 18:57:07 UTC) #6
wjia(left Chromium)
http://codereview.chromium.org/2781010/diff/1/2 File media/filters/omx_video_decode_engine.cc (right): http://codereview.chromium.org/2781010/diff/1/2#newcode172 media/filters/omx_video_decode_engine.cc:172: case kClientStopped: On 2010/06/11 18:57:08, Alpha wrote: > Now ...
10 years, 6 months ago (2010-06-14 21:09:46 UTC) #7
jiesun
LGTM. for FillBufferDone and FreeOutputBuffer concern, you could address it in next patch. thanks
10 years, 6 months ago (2010-06-14 23:11:01 UTC) #8
Alpha Left Google
10 years, 6 months ago (2010-06-15 00:39:34 UTC) #9
I know this patch is committed, I hope we don't overlook the problem.

Please take a look in gles_video_renderer.cc.

InitializeGles() is called lazily in Paint(). Which means initialization of GLES
and textures are all done on the main thread. Which is on the message loop in
player_x11.cc. Let's call it the X thread.

However destruction of the EGL context and textures are done in OnStop(). Which
on the video renderer thread or the pipeline thread. Context switching in GLES
is not safe. The best place to do destruction is on the X thread which is always
safe. This is not possible because X thread is blocked on Pipeline::Stop(), so
you can't post a task onto X thread when stopping to do cleanup. The right thing
to do is to separate the X thread and main thread. Let the X thread to *only*
host X calls and all GLES calls. And we shutdown pipeline on the main thread,
which is on the main message loop.

Powered by Google App Engine
This is Rietveld 408576698