summaryrefslogtreecommitdiffstats
path: root/media
Commit message (Collapse)AuthorAgeFilesLines
* Rewrite AudioRendererHost to use AudioControllerhclam@chromium.org2010-07-073-14/+31
| | | | | | | | | | | | | | | | | | | | | | | | This change will move all the audio device methods calls to AudioController so we can move all the audio related methods calls off the IO thread. This change will let AudioRendererHost to use the AudioController API. This involves rewriting the whole AudioRendererHost. After this patch we can implement proper pause operations that is only possible if they are hosted on a separated thread due to their blocking nature. Normal latency mode is fully covered by unit tests, including audio control operations and data conversation. Low latency mode using SyncSocket is tested only for stream creation and still need to handle cases during shutdown when we want SyncSocket to return immediately. TEST=unit_tests --gtest_filter=AudioRendererTest.* BUG=39885 Review URL: http://codereview.chromium.org/2850016 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51743 0039d316-1c4b-4281-b951-d872f2087c98
* Use LoadLibraryEx() instead of SetDllDirectory() for overriding DLL loading ↵scherkus@chromium.org2010-06-301-12/+5
| | | | | | | | | | path. BUG=35857 TEST=install a real version of chrome (don't simply unzip a build). close chrome. create an empty file named C:\Windows\avutil-50.dll. start chrome and go to www.youtube.com/html5. no error dialog box should appear. repeat these steps with an earlier version of chrome to verify that an error dialog box appears complaining about C:\Windows\avutil-50.dll. Review URL: http://codereview.chromium.org/2853018 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51304 0039d316-1c4b-4281-b951-d872f2087c98
* media: OMX seek works for OMX_HEADBUFFERTYPE now.jiesun@google.com2010-06-2914-35/+231
| | | | | | | | | | | | | | | | 1. Promote Stop() to engine interafce and make it Asynchronous. 2. Add Pause() and Flush() in engine interface. 3. Notify buffer return in ffmpeg engine so that future recycling could use it. 4. Add Pause logic in OMX decode engine. to fully support seek in hardware path, some pipeline work and video render work is required. that will be in the next patch (maybe jia will write it). 1. some renderer hack is required for now. but current pause model of videoRenderBase is not suitable for hardware case. we need to resolve that. 2. Seek after EOS is not supported. 3. Seek for EGL image path is not yet tested, some code is required to return EGLImage buffer to allocator's side. Review URL: http://codereview.chromium.org/2808022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51153 0039d316-1c4b-4281-b951-d872f2087c98
* move quit of paint message_loop into callback of pipeline stop to guarantee ↵wjia@google.com2010-06-281-13/+10
| | | | | | | | | | | message loop will not quit till paint is deinit'ed. BUG=none TEST=dev platform and desktop Review URL: http://codereview.chromium.org/2870029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@51070 0039d316-1c4b-4281-b951-d872f2087c98
* 1. remove initial rendering lag time for egl image decoding pathwjia@google.com2010-06-2414-99/+146
| | | | | | | | | | | 2. put all GLES operations in one thread BUG=none TEST=dev platform and desktop Review URL: http://codereview.chromium.org/2836019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50749 0039d316-1c4b-4281-b951-d872f2087c98
* move DEPS of app into player_x11wjia@google.com2010-06-241-0/+0
| | | | | | | | | BUG=none TEST=try bots Review URL: http://codereview.chromium.org/2828023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50745 0039d316-1c4b-4281-b951-d872f2087c98
* media_Bench and ffmpeg_tests disable exception handler by defaultfbarchard@chromium.org2010-06-242-4/+16
| | | | | | | | | BUG=47307 TEST=no change in normal behavior. Review URL: http://codereview.chromium.org/2811026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50684 0039d316-1c4b-4281-b951-d872f2087c98
* Limit the DLL search path when loading FFmpeg binaries on Windows.scherkus@chromium.org2010-06-231-2/+14
| | | | | | | | | | This prevents us from accidentally loading other copies of FFmpeg during renderer process boot. BUG=35857 TEST=install a real version of chrome (don't simply unzip a build). close chrome. create an empty file named C:\Windows\avutil-50.dll. start chrome and go to www.youtube.com/html5. no error dialog box should appear. repeat these steps with an earlier version of chrome to verify that an error dialog box appears complaining about C:\Windows\avutil-50.dll. Review URL: http://codereview.chromium.org/2856013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50617 0039d316-1c4b-4281-b951-d872f2087c98
* Allow src/media/tools/ to include files from app.tony@chromium.org2010-06-231-0/+4
| | | | | | | | | | Seems ok since these are stand alone programs. TBR=wjia Review URL: http://codereview.chromium.org/2834017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50565 0039d316-1c4b-4281-b951-d872f2087c98
* code cleanup for media code for video renerers.jiesun@google.com2010-06-2318-138/+126
| | | | | | | | | add more generic surface format and surface type signalling from video decoder to video renderer. if we want to allocate buffer in renderer, we had to know these kind of information. remove redundant ParseMediaFormat and duplicated width,height, egl_image_supports in derived class of VideoRenderBase. Review URL: http://codereview.chromium.org/2829009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50558 0039d316-1c4b-4281-b951-d872f2087c98
* fix broken gl rendererwjia@google.com2010-06-232-27/+4
| | | | | | | | | BUG=none TEST=player_x11 Review URL: http://codereview.chromium.org/2803019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50555 0039d316-1c4b-4281-b951-d872f2087c98
* Some fixups for AudioController and unit testshclam@chromium.org2010-06-224-21/+81
| | | | | | | | | | | | Some fixes to AudioController and more unit tests. AudioController is now ready to be used by AudioRendererHost. BUG=39885 TEST=media_unittests Review URL: http://codereview.chromium.org/2861010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50480 0039d316-1c4b-4281-b951-d872f2087c98
* remove omx from win and mac build.jiesun@google.com2010-06-181-66/+74
| | | | | | | | | TEST=try-bot BUG=45601 Review URL: http://codereview.chromium.org/2870006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50243 0039d316-1c4b-4281-b951-d872f2087c98
* AudioController accepts hardware buffer size as parameter.hclam@chromium.org2010-06-163-22/+51
| | | | | | | | | | BUG=39885 TEST=media_unitests AudioController to take hardware buffer size for opening the audio device. Review URL: http://codereview.chromium.org/2822014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50046 0039d316-1c4b-4281-b951-d872f2087c98
* merge video_decoder_impl.cc and ffmpeg_video_decoder.ccjiesun@google.com2010-06-166-416/+364
| | | | | | Review URL: http://codereview.chromium.org/2854002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50043 0039d316-1c4b-4281-b951-d872f2087c98
* add play controljiesun@google.com2010-06-161-17/+60
| | | | | | Review URL: http://codereview.chromium.org/2813006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50041 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 49982 - patchthakis@chromium.org2010-06-162-4/+1
| | | | | | | TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/2825006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@50002 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 49990 - xthakis@chromium.org2010-06-161-12/+0
| | | | | | | TBR=thakis@chromium.org Review URL: http://codereview.chromium.org/2813011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49994 0039d316-1c4b-4281-b951-d872f2087c98
* xthakis@chromium.org2010-06-161-0/+12
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49990 0039d316-1c4b-4281-b951-d872f2087c98
* patchthakis@chromium.org2010-06-162-1/+4
| | | | git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49982 0039d316-1c4b-4281-b951-d872f2087c98
* Chromoting unit test: Adding DecoderVerbatimTesthclam@chromium.org2010-06-152-0/+4
| | | | | | | | | Adding a test case to DecodeVerbatimTest. TEST=remoting_unittests Review URL: http://codereview.chromium.org/2849006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49839 0039d316-1c4b-4281-b951-d872f2087c98
* 1. support stop mode for omxwjia@google.com2010-06-153-10/+32
| | | | | | | | | | | 2. make player_x11 respond to button event quickly BUG=none TEST=dev platform Review URL: http://codereview.chromium.org/2781010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49749 0039d316-1c4b-4281-b951-d872f2087c98
* Added checks to GetBufferedTime() to cap at the media's durationvrk@google.com2010-06-143-9/+52
| | | | | | | | | | | | No longer tries to estimate buffered time when media is fully loaded. Also caps estimation at the duration of the media. BUG=none TEST=media_unittests Review URL: http://codereview.chromium.org/2782004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49714 0039d316-1c4b-4281-b951-d872f2087c98
* Make MediaFilter::Stop() asynchronous.boliu@chromium.org2010-06-1120-47/+92
| | | | | | | | | | | | | | This is the second issue regarding making Stop() asynchronous. All Stop() in subclasses of MediaFilter is made to accept a callback and runs the callback at the end of its stop. BUG=16059 TEST=media_unittest, unit_tests, test_shell_tests still passes Review URL: http://codereview.chromium.org/2541003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49548 0039d316-1c4b-4281-b951-d872f2087c98
* media: fix timestamp issues.jiesun@google.com2010-06-106-33/+39
| | | | | | | | | | | | 1. use av_stream->r_frame_rate as time_base because it is more accurate in some cases. 2. do not use pts heap when timestamp is invalid TEST=video stack matrix BUGS=45347 Review URL: http://codereview.chromium.org/2322007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49449 0039d316-1c4b-4281-b951-d872f2087c98
* 1. make omx engine the driving force to read bit streamwjia@google.com2010-06-107-99/+86
| | | | | | | | | | | | 2. update omx_codec_unittest and omx_test correspondingly 3. fix copy&paste error in shader code BUG=none TEST=dev platform Review URL: http://codereview.chromium.org/2752002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49428 0039d316-1c4b-4281-b951-d872f2087c98
* Added EGL based GLContext.apatrick@chromium.org2010-06-091-1/+1
| | | | | | | | | | | | | | Python script to generate code to dynamically bind to GL functions (native GL, OSMesa, EGL or mock GL for unit tests). This replaces GLEW because GLEW doesn't bind to the GLES dialect of GL. Moved the mock GL code into app/gfx/gl. Updated the GPU code and AcceleratedSurface to use the new GL bindings. TEST=trybots BUG=none Review URL: http://codereview.chromium.org/2134006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49332 0039d316-1c4b-4281-b951-d872f2087c98
* Implement a chromoting client using X11hclam@chromium.org2010-06-093-1/+62
| | | | | | | | | | | | | Using XRender to render the chromoting client. This patch has done several things: 1. Rename chromotocol_pb to remoting 2. Defined ChromotingView as the display area of the remote view 3. Implemented X11Client as the client that uses X11 for display 4. Implemented X11View that uses XRender for drawing 5. Fixed several problems in host capturer and encoder Review URL: http://codereview.chromium.org/2745006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49329 0039d316-1c4b-4281-b951-d872f2087c98
* revert cl 49121 since the way of using glEglImageTargetTexture2DOES is ↵wjia@google.com2010-06-092-23/+24
| | | | | | | | | | | | undefined and it crashes randomly. BUG=none TEST=dev platform Review URL: http://codereview.chromium.org/2765005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49318 0039d316-1c4b-4281-b951-d872f2087c98
* Rename Chrome threads to use a "Cr" prefix.evan@chromium.org2010-06-091-1/+1
| | | | | | | | | | | Before we carefully used the app (Chrome/Chromium) name, but: 1) these are for internal debugging use only, so why compute this name 2) on Linux the thread ids are limited to 16 characters, and "Chromium" is too long Review URL: http://codereview.chromium.org/2741003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49296 0039d316-1c4b-4281-b951-d872f2087c98
* change X/GL thread to message loop for injecting taskjiesun@google.com2010-06-097-82/+82
| | | | | | | | | | | | | | 1. there are need to allocate buffer in this thread, requested by other threads. therefore it is natural to use message loop instead of infinite loop. 2. in the future, gpu command buffer consumer is running on it own thread and own the eglContext. we need to post buffer allocation there, therefore this change make player_x11 more resemble the real workflow in chrome. TEST= glVideoRender on host machine. glesVideoRender/x11VideoRender on arm netbook. BUGS=None Review URL: http://codereview.chromium.org/2724005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49255 0039d316-1c4b-4281-b951-d872f2087c98
* Change prototype to match upstream change from ffmpeg trunk to fix build ↵fbarchard@chromium.org2010-06-082-0/+8
| | | | | | | | | | | with system ffmpeg. Declare the url_write buffer parameter as const BUG=45821 TEST=Build with use_system_ffmpeg on and off (1/0). git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49139 0039d316-1c4b-4281-b951-d872f2087c98
* refactor on-goning.jiesun@google.com2010-06-072-45/+8
| | | | | | | | | TEST= both mode on partner board. BUG=none Review URL: http://codereview.chromium.org/2727001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49122 0039d316-1c4b-4281-b951-d872f2087c98
* use glEGLImageTargetTexture2DOES instead of FindTexture()jiesun@google.com2010-06-072-24/+23
| | | | | | Review URL: http://codereview.chromium.org/2719001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49121 0039d316-1c4b-4281-b951-d872f2087c98
* add support of OpenMAX EGL image decodingwjia@google.com2010-06-078-121/+326
| | | | | | | | | | | | add support of GLES2 EGL image rendering OpenMAX system memory decoding almost works expect flow control in video renderer base BUG=none TEST=dev platform Review URL: http://codereview.chromium.org/2456006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49089 0039d316-1c4b-4281-b951-d872f2087c98
* AudioController to perform audio operations on a separate threadhclam@chromium.org2010-06-076-7/+700
| | | | | | | | | | | | | | | Added AudioController as a wrapper over AudioOutputStream to operate methods of AudioOutputStream on a separate thread managed by AudioController. This way most of the audio operations will be non-blocking. Next step is to modify AudioRendererHost to use AudioController. TEST=media_unittests --gtest_filter=AudioControllerTest.* BUG=39885 Review URL: http://codereview.chromium.org/2477005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@49079 0039d316-1c4b-4281-b951-d872f2087c98
* fix parsing error at the end of streamwjia@google.com2010-06-041-1/+1
| | | | | | Review URL: http://codereview.chromium.org/2635002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48988 0039d316-1c4b-4281-b951-d872f2087c98
* time stamp is not used , therefore the player_x11 hangs.jiesun@google.com2010-06-022-0/+6
| | | | | | | | | | | there are also flow control problem. but it is not addressed in this CL. BUG=None. Test=dev board. Review URL: http://codereview.chromium.org/2441006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48786 0039d316-1c4b-4281-b951-d872f2087c98
* Change MediaFilter::Stop() to accept a callback so that Stop() is ↵boliu@google.com2010-06-028-137/+198
| | | | | | | | | | | asynchronous. So far PipelineImpl handles asynchronous MediaFilter::Stop(). The actual change to make MediaFilter::Stop() asynchronous will be in another check in. BUG=16059 TEST=Unit tests still runs Review URL: http://codereview.chromium.org/2101015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48769 0039d316-1c4b-4281-b951-d872f2087c98
* some vendor's compiler had issues about the constant variable.jiesun@google.com2010-06-021-2/+5
| | | | | | | | | | | we had to use uniform. TEST=On vendor's board. BUG=None. Review URL: http://codereview.chromium.org/2436007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48758 0039d316-1c4b-4281-b951-d872f2087c98
* enable omx_codec_unittest based on new omx enginewjia@google.com2010-06-021-158/+192
| | | | | | | | | BUG=none TEST=try bot Review URL: http://codereview.chromium.org/2397001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48741 0039d316-1c4b-4281-b951-d872f2087c98
* Adding support for playing audio only also files through player_x11 ↵scherkus@chromium.org2010-06-021-3/+10
| | | | | | | | | | | | application. Currently the application just hangs without doing anything if an audio only file is given as input to it. Patch by sashinde@nvidia.com: http://codereview.chromium.org/2075018 BUG=none TEST=Try playing an audio only file before and after this change. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48694 0039d316-1c4b-4281-b951-d872f2087c98
* make opengles 2.0 worksjiesun@google.com2010-06-011-1/+3
| | | | | | | | | BUG=None TEST=NVIDIA Review URL: http://codereview.chromium.org/2455003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48651 0039d316-1c4b-4281-b951-d872f2087c98
* renderer filter creation require media format have mime type and width/height.jiesun@google.com2010-05-282-6/+25
| | | | | | | | | BUG=None TEST=None Review URL: http://codereview.chromium.org/2352001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48519 0039d316-1c4b-4281-b951-d872f2087c98
* audio use xmmintrin for sse to reduce requirement from sse2 to ssefbarchard@chromium.org2010-05-281-1/+1
| | | | | | | | | BUG=44643 TEST=build with compiler options that enable sse but disable sse2 and chrome should still build and run on Pentium3. Review URL: http://codereview.chromium.org/2360002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48515 0039d316-1c4b-4281-b951-d872f2087c98
* set client state to kClientInitializing a little earlier in order to satisfy ↵wjia@google.com2010-05-281-2/+2
| | | | | | | | | | | | | pipeline checking Contributed by wjia@chromium.org BUG=none TEST=tested with omx_test on tegra Review URL: http://codereview.chromium.org/2234009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48496 0039d316-1c4b-4281-b951-d872f2087c98
* Remove omx_codec since OMX client implementation is in ↵wjia@google.com2010-05-285-1676/+90
| | | | | | | | | | | | | omx_video_decode_engine. Update omx_test to use omx_video_decode_engine. Contributed by wjia@chromium.org BUG=none TEST=tested on tegra Review URL: http://codereview.chromium.org/2255005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48492 0039d316-1c4b-4281-b951-d872f2087c98
* pad yuv additional 15 bytes to allow 16 pixels at a time to be processed ↵fbarchard@chromium.org2010-05-281-1/+3
| | | | | | | | | | | without going off end of buffer. BUG=43970 TEST=play http://fbarchard0-w.ad.corp.google.com/mediatests/Etherworks-WebMadeMovies3BuildingABetterInternet799.ogg with scaling down (CTRL -). Should not crash. Review URL: http://codereview.chromium.org/2337001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48471 0039d316-1c4b-4281-b951-d872f2087c98
* Implements video decoder filter for OpenMAXhclam@chromium.org2010-05-273-18/+141
| | | | | | | | | OpenMAX needs to stay in a separate filter. This greatly reduces the communications between different layers. Review URL: http://codereview.chromium.org/2168003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48446 0039d316-1c4b-4281-b951-d872f2087c98
* Merge omx_codec and omx_video_decode_enginehclam@chromium.org2010-05-272-59/+1308
| | | | | | | | | | | | | | | | 1. Redesign IL client state machine to better reflect OpenMAX workflow 2. Remove racing condition 3. Better error handling 4. Add EGLImage support 5. Ready for buffer recycling with video renderer 6. Ready for more feature support such as flushing, pausing Submitted for: wjia@chromium.org Reviewed: http://codereview.chromium.org/2143003/show Review URL: http://codereview.chromium.org/2282002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48411 0039d316-1c4b-4281-b951-d872f2087c98