summaryrefslogtreecommitdiffstats
path: root/media
Commit message (Collapse)AuthorAgeFilesLines
* Guarantee PPAPI Audio playbacks are stopped in Pause().neb@chromium.org2010-08-311-0/+7
| | | | | | | | | BUG=none TEST=pepper audio demo is playing audio Review URL: http://codereview.chromium.org/3142005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58014 0039d316-1c4b-4281-b951-d872f2087c98
* Second attempt at fixing the Direct3D Present() crash. It is fixed by ↵imcheng@chromium.org2010-08-303-5/+5
| | | | | | | | | | | | realizing that the Direct3D device is shared by multiple decoder threads and the "renderer" thread and so the D3DCREATE_MULTITHREADED flag must be specified when it is created. BUG=49364 TEST=try mfdecoder with -h -r flags set. (render using Present() as fast as possible) Tried it on my laptop where it used to crash most of the time -- now with the fix, the program no longer crashes. Review URL: http://codereview.chromium.org/3218007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57884 0039d316-1c4b-4281-b951-d872f2087c98
* there are 2 threads for AVCodecThreadInitfbarchard@chromium.org2010-08-281-0/+1
| | | | | | | | | BUG=NONE TEST=NONE Review URL: http://codereview.chromium.org/3271002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57786 0039d316-1c4b-4281-b951-d872f2087c98
* another mock failurefbarchard@chromium.org2010-08-281-1/+1
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3266006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57774 0039d316-1c4b-4281-b951-d872f2087c98
* mock test 3 threads not 2 for mediafbarchard@chromium.org2010-08-281-2/+2
| | | | | | | | BUG=none TEST=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57773 0039d316-1c4b-4281-b951-d872f2087c98
* remove meaningless ffmpeg fast flagfbarchard@chromium.org2010-08-283-6/+4
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3280004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57771 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Remove unneeded headers from base/ (part 7)thestig@chromium.org2010-08-2711-6/+10
| | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3176026 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57737 0039d316-1c4b-4281-b951-d872f2087c98
* Displays a speech input UI bubble during speech recognition.satish@chromium.org2010-08-271-0/+3
| | | | | | | | | | | | | | | | | | | The webkit code passes in display rect of the input element requesting speech input and we create a UI bubble pointing at this element when starting speech input. The user can click outside the bubble to close it, which aborts recognition if we were still recording audio. The user can also click the cancel link in the bubble which aborts recognition irrespective of what state it is in now. Added a SpeechInputBubbleController class to take care of marshalling the requests between the speech input code in IO thread and the UI bubble in the UI thread. Also added a unit test for this class. BUG=none TEST=unit_tests --gtest_filter=SpeechInputBubbleControllerTest.* Review URL: http://codereview.chromium.org/3156048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57666 0039d316-1c4b-4281-b951-d872f2087c98
* Add missing backslash to fix build break caused bysatish@chromium.org2010-08-271-1/+1
| | | | | | | | | | | http://src.chromium.org/viewvc/chrome?view=rev&revision=57660 TBR=joth BUG=none TEST=none Review URL: http://codereview.chromium.org/3255001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57661 0039d316-1c4b-4281-b951-d872f2087c98
* Mac audio input implementationjoth@chromium.org2010-08-277-17/+395
| | | | | | | | | | | Required for speech input feature BUG=none TEST=Added AudioInputStreamMacTest.* unit tests Review URL: http://codereview.chromium.org/3181041 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57660 0039d316-1c4b-4281-b951-d872f2087c98
* media: add flush stage before stop().jiesun@google.com2010-08-262-54/+133
| | | | | | | | | | | | | | to make stop more clean without race condiction, we need to flush therefore when stop happen, there are no buffer exchange. 1. add seek_pending_ to track a seek operation in transition. 2. add tearing_down_ to track a stop operation in transition. 3. add stop_pending_ to track a stop that could be delayed by a seek. 4. an error while initialization will trigger a short teardown. ( stopping => stopped ) 5. an error after initialization will trigger a full tear down. ( pausing => flushing =>stopping => stopped. ). Review URL: http://codereview.chromium.org/3192008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57564 0039d316-1c4b-4281-b951-d872f2087c98
* Share one thread between all AudioOutputControllers instead of creating one ↵sergeyu@chromium.org2010-08-2528-236/+372
| | | | | | | | | | | per stream. TEST=unittests BUG=39825 Review URL: http://codereview.chromium.org/3185022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57392 0039d316-1c4b-4281-b951-d872f2087c98
* Removed strmiids.lib from MftH264Decoder by reordering two header files. ↵imcheng@chromium.org2010-08-251-4/+4
| | | | | | | | | | | (move evr.h after mfapi.h) BUG=none TEST=compile the decoder, example, and unittests and see if it works. Review URL: http://codereview.chromium.org/3191027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57383 0039d316-1c4b-4281-b951-d872f2087c98
* Changed mft_h264_decoder's API to match with video_decode_engine.h. Also ↵imcheng@chromium.org2010-08-2513-1332/+1044
| | | | | | | | | | | | | | | | changed the example and unittests. Implementation of mft_h264_decoder.cc is similar to ffmpeg_video_decode_engine.cc. For now, a d3d surface output from the decoder is converted from NV12 to YV12 and stored in regular memory. So rendering with --enable-dxva is a bit slower for now. Once we figure out how to connect with ANGLE, we won't need the conversion / transfer. basic_renderer.* is now replaced with a simpler implementation of EventHandler inside the example code. d3d_util.* is also removed because d3d9 initialization is now moved inside the initialization of the decoder and it is the only place where it is used. BUG=none TEST=included in this patch Review URL: http://codereview.chromium.org/3156046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57261 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 57254 - Share one thread between all AudioOutputControllers instead ↵scherkus@chromium.org2010-08-2423-352/+228
| | | | | | | | | | | | | | of creating one per stream. TEST=unittests BUG=39825 Review URL: http://codereview.chromium.org/3185022 TBR=sergeyu@chromium.org Review URL: http://codereview.chromium.org/3192017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57256 0039d316-1c4b-4281-b951-d872f2087c98
* Share one thread between all AudioOutputControllers instead of creating one ↵sergeyu@chromium.org2010-08-2423-228/+352
| | | | | | | | | | | per stream. TEST=unittests BUG=39825 Review URL: http://codereview.chromium.org/3185022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57254 0039d316-1c4b-4281-b951-d872f2087c98
* Add VP8 codec enum to video decoder.fgalligan@chromium.org2010-08-232-0/+3
| | | | | | | | | | BUG=52594 TEST=Play a WebM file in debug Chrome build and renderer should not crash. Review URL: http://codereview.chromium.org/3189013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@57070 0039d316-1c4b-4281-b951-d872f2087c98
* fix windows loop problem.jiesun@google.com2010-08-192-14/+12
| | | | | | | | | | | turns out filters are flushed from upstream to downstream... BUG=52605 TEST=windows Review URL: http://codereview.chromium.org/3107023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56706 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 56582 - ffmpeg flag CODEC_FLAG2_FAST removedrvargas@google.com2010-08-183-2/+3
| | | | | | | | | | | | BUG=52607 TEST=ffmpeg_tests tulip\tulip2.mp4 should be same performance as media_bench.exe --video-threads=3 --fast2 --stream=video tulip\tulip2.mp4 Review URL: http://codereview.chromium.org/3157024 TBR=fbarchard@chromium.org Review URL: http://codereview.chromium.org/3125023 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56606 0039d316-1c4b-4281-b951-d872f2087c98
* ffmpeg flag CODEC_FLAG2_FAST removedfbarchard@chromium.org2010-08-183-3/+2
| | | | | | | | | BUG=52607 TEST=ffmpeg_tests tulip\tulip2.mp4 should be same performance as media_bench.exe --video-threads=3 --fast2 --stream=video tulip\tulip2.mp4 Review URL: http://codereview.chromium.org/3157024 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56582 0039d316-1c4b-4281-b951-d872f2087c98
* revert thread enable for ogv. bug on video-cookie.html likely affects mp4 ↵fbarchard@chromium.org2010-08-181-1/+3
| | | | | | | | | | as well BUG=none TEST=./src/webkit/tools/layout_tests/run_webkit_tests.sh --debug http/tests/media/\* Review URL: http://codereview.chromium.org/3137020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56478 0039d316-1c4b-4281-b951-d872f2087c98
* remove pragma message to fix build issuefbarchard@chromium.org2010-08-181-5/+0
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3155028 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56465 0039d316-1c4b-4281-b951-d872f2087c98
* enable multicore decode for ogg theora videofbarchard@chromium.org2010-08-181-2/+6
| | | | | | | | | BUG=none TEST=media layout tests should not be flakey. Review URL: http://codereview.chromium.org/3083013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56463 0039d316-1c4b-4281-b951-d872f2087c98
* media: add ifdef to prevent build error in "use-system-ffmpeg" casejiesun@google.com2010-08-182-1/+23
| | | | | | Review URL: http://codereview.chromium.org/3108025 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56461 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land part of r55416, minus actually moving the test_suite.h contents to a ↵brettw@chromium.org2010-08-173-2/+5
| | | | | | | | | | | | | | | | | | | | | | | .cc file. Cleanup in base. This moves the implementation (and a bunch of header file dependencies) from the multiprocess test and the test_suite headers to .cc files. Moves multiprocess_test to the test directory, and all of this stuff to the existing base_test_support project. I also used the base namespace. Previously other projects included this functionality just by #include because it was all inline, so I had to add dependencies on base_test_support in a few places. Moves and renames the command line switch this was using to base_switches. Move the base switch for process type to chrome switches. TEST=none BUG=none Review URL: http://codereview.chromium.org/3026055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56399 0039d316-1c4b-4281-b951-d872f2087c98
* Initialize member var.finnur@chromium.org2010-08-172-3/+8
| | | | | | | | | | BUG=None TEST=None CID=12547 Review URL: http://codereview.chromium.org/3190001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56323 0039d316-1c4b-4281-b951-d872f2087c98
* GTTF: some more FRIEND_TEST_ALL_PREFIXESphajdan.jr@chromium.org2010-08-161-5/+6
| | | | | | | | | TEST=none BUG=44549 Review URL: http://codereview.chromium.org/3161021 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56253 0039d316-1c4b-4281-b951-d872f2087c98
* meida:fix a typojiesun@google.com2010-08-161-1/+1
| | | | | | Review URL: http://codereview.chromium.org/3184006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56230 0039d316-1c4b-4281-b951-d872f2087c98
* Separate out the constructor and Run from test_suite.cc. This is an isolatedbrettw@chromium.org2010-08-161-0/+1
| | | | | | | | | | part of r55416 to test that the files that use test_suite have the proper project dependencies. TEST=everything compiles BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56182 0039d316-1c4b-4281-b951-d872f2087c98
* Re-land just the project file changes from r55416. This makes projects that usebrettw@chromium.org2010-08-151-0/+3
| | | | | | | | | base test files dependent on test_support_base. TEST=none BUG=none git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56172 0039d316-1c4b-4281-b951-d872f2087c98
* media: bit stream converterjiesun@google.com2010-08-135-30/+32
| | | | | | | | | we need enable bitstream converter by which decoder is actually in pipeline. instead of use command line. Review URL: http://codereview.chromium.org/3159014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56095 0039d316-1c4b-4281-b951-d872f2087c98
* media: change engine interface to be suitable for gpu_video_decoderjiesun@google.com2010-08-1313-537/+595
| | | | | | | | | 1. we want the engine interface to be agnostic to ffmpeg. 2. we want use engine interface in both in-process and out-of-process cases. Review URL: http://codereview.chromium.org/3173013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@56060 0039d316-1c4b-4281-b951-d872f2087c98
* Added error callbacks. Decoder no longer explicitly quits the message loop ↵imcheng@chromium.org2010-08-128-172/+371
| | | | | | | | | | | | on end of output. Also added a seeking functionality for rendering to window that goes to the first keyframe after X seconds. Both of these require a minor change in the decoder API. BUG=none TEST=none Review URL: http://codereview.chromium.org/3146011 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55917 0039d316-1c4b-4281-b951-d872f2087c98
* remove text direct in 64 bit because these are proper inline within a C ↵fbarchard@chromium.org2010-08-121-3/+0
| | | | | | | | | | | function and it does not make sense to change segments part way thru a function. BUG=none TEST=build chromium on 64 bit linux Review URL: http://codereview.chromium.org/3173009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55813 0039d316-1c4b-4281-b951-d872f2087c98
* declare text segment for gcc assemblyfbarchard@chromium.org2010-08-111-24/+9
| | | | | | | | | BUG=51843 TEST=build chrome on gentoo Review URL: http://codereview.chromium.org/3173008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55809 0039d316-1c4b-4281-b951-d872f2087c98
* preparation for recycling buffer, patch 2jiesun@google.com2010-08-1117-298/+547
| | | | | | | | | | | | 1. add ProvidesBuffer in Filter interface, not used yet. 2. add Flush stage in pipeline. not used. Render's pause work is moved to Renderer's flush(). 3. merge decoder_base with ffmpeg_video_decoder. because it is shared by audio. Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=55603 Review URL: http://codereview.chromium.org/3030013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55807 0039d316-1c4b-4281-b951-d872f2087c98
* Second attempt at removing executable bits from media/mf filesimcheng@chromium.org2010-08-1111-11/+0
| | | | | | | | | | | BUG=none TEST=none TBR=hclam Review URL: http://codereview.chromium.org/3125006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55767 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed executable permission bits in media/mf source files.imcheng@chromium.org2010-08-1111-0/+11
| | | | | | | | | BUG=none TEST=none TBR=hclam git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55755 0039d316-1c4b-4281-b951-d872f2087c98
* Added rendering and unittests for the MF H264 decoder prototype.imcheng@chromium.org2010-08-1111-154/+980
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/3096010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55734 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 55603nsylvain@chromium.org2010-08-1117-540/+298
| | | | | | | | | | | | | | | | | | | video-seek-past-end-playing.html has been failing since this change Original description: preparation for recycling buffer, patch 2 1. add ProvidesBuffer in Filter interface, not used yet. 2. add Flush stage in pipeline. not used. Render's pause work is moved to Renderer's flush(). 3. merge decoder_base with ffmpeg_video_decoder. because it is shared by audio. Review URL: http://codereview.chromium.org/3030013 TBR=jiesun@google.com Review URL: http://codereview.chromium.org/3122008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55659 0039d316-1c4b-4281-b951-d872f2087c98
* Allow unit tests to use a mock audio input controller.satish@chromium.org2010-08-105-3/+191
| | | | | | | | | | | This is modelled after chrome/common/net/test_url_fetcher_factory.h. Using this mock unit tests can stub out the audio recording part and test the consumer of the audio data. I have also added a new media_test_support target to media.gyp, this will be used in subsequent CLs for testing speech input code. BUG=none TEST=none, this code will get used in future unit tests Review URL: http://codereview.chromium.org/3148003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55627 0039d316-1c4b-4281-b951-d872f2087c98
* preparation for recycling buffer, patch 2jiesun@google.com2010-08-1017-298/+540
| | | | | | | | | | 1. add ProvidesBuffer in Filter interface, not used yet. 2. add Flush stage in pipeline. not used. Render's pause work is moved to Renderer's flush(). 3. merge decoder_base with ffmpeg_video_decoder. because it is shared by audio. Review URL: http://codereview.chromium.org/3030013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55603 0039d316-1c4b-4281-b951-d872f2087c98
* Fix av sync for webm files with altref video frames. Altref framesfgalligan@chromium.org2010-08-102-2/+8
| | | | | | | | | | | | | need to be decoded but they do not produce a valid output frame. The pts_heap_ was not getting popped for altref frames. BUG=51014 TEST=Play content form sync test and make sure the content plays back in sync. Review URL: http://codereview.chromium.org/3086009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55596 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed issue with rendering in mfdecoder where it crashes when rendering D3D ↵imcheng@chromium.org2010-08-102-93/+102
| | | | | | | | | | | surfaces. Also fixed issue with flickering when drawing software-decoded frames. BUG=49364 TEST=Run the program by passing in -s or -h, and -r and see if it works. Review URL: http://codereview.chromium.org/3066047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55594 0039d316-1c4b-4281-b951-d872f2087c98
* 1. ipc_video_decoder.cc/h is media pipeline filter which use the gpu decoder ↵jiesun@google.com2010-08-103-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | facilities in video stack. it is only enabled when (a) hardware composition is on (b) hardware decoding command line is on (c) h264 codec is specified. 2. gpu_video_service.cc/h is a singleton in gpu process which provide video services for renderer process, through it we could create decoder. ( in my imagination, in the future, we could create encoder or capturer too) 3. gpu_video_decoder.cc/h. abstract interface for hardware decoder. 4. gpu_video_service_host.cc/h is singleton in renderer process which provide proxy for gpu_video_service. 5. gpu_video_decoder_host.cc/h is proxy for gpu_video_decoder. (1 to 1 map).basically there is one global GpuVideoService in GPU process, one GpuVideoServiceHost in Renderer process. for each renderer process, there are could be multiple renderer view, each could had multiple GpuVideoDecoderHost the connect to GpuVideoDeocder through GPUCHannelHOst/GpuChannel. 6. gpu_video_common.cc/h: IPC message definition and pickle/marshaling support. ISSUES: 1. in media pipeline, we need let decoder to determine if bit stream filter should be used instead of let command line to determine it. 2. stop readback from D3D surface use ANGLE. 3. Flush logic still need fine tuning. 4. CreateThread in GpuVideoDecoder, and post message in message handler, and derived classs handle message loop. ? 5. Error handling. 6. Input ring buffer implementation. Current impl is naive. 7.Add output queue for MFT decoder. 8. Query Capabilities at GetVideoServices()... BUG=None TEST=Windows7 Review URL: http://codereview.chromium.org/2873089 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55516 0039d316-1c4b-4281-b951-d872f2087c98
* The decoder filter pushes a pts for every video frame but it was notfgalligan@chromium.org2010-08-092-0/+4
| | | | | | | | | | | | | | popping the pts when the decoded frame had a valid timestamp. This change will pop the pts queue when the decoder filter uses the decoded frame's timestamp. BUG=51434 TEST=Play any mp4 or ogg file with video and check to make sure |pts_heap_| is empty when playback is finished. Review URL: http://codereview.chromium.org/3040048 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55434 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 55405 - Special thanks for in-ming cheng's MFT hardware decodering code.ananta@chromium.org2010-08-093-6/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. ipc_video_decoder.cc/h is media pipeline filter which use the gpu decoder facilities in video stack. it is only enabled when (a) hardware composition is on (b) hardware decoding command line is on (c) h264 codec is specified. 2. gpu_video_service.cc/h is a singleton in gpu process which provide video services for renderer process, through it we could create decoder. ( in my imagination, in the future, we could create encoder or capturer too) 3. gpu_video_decoder.cc/h. abstract interface for hardware decoder. 4. gpu_video_decoder_mft.cc/h media foundation transform hardware decoder which run on windows 7 only. 5. gpu_video_service_host.cc/h is singleton in renderer process which provide proxy for gpu_video_service. 6. gpu_video_decoder_host.cc/h is proxy for gpu_video_decoder. (1 to 1 map).basically there is one global GpuVideoService in GPU process, one GpuVideoServiceHost in Renderer process. for each renderer process, there are could be multiple renderer view, each could had multiple GpuVideoDecoderHost the connect to GpuVideoDeocder through GPUCHannelHOst/GpuChannel. 7. gpu_video_common.cc/h: IPC message definition and pickle/marshaling support. ISSUES: 1. in media pipeline, we need let decoder to determine if bit stream filter should be used instead of let command line to determine it. 2. stop readback from D3D surface use ANGLE. 3. Flush logic still need fine tuning. 4. CreateThread in GpuVideoDecoder, and post message in message handler, and derived classs handle message loop. ? 5. Error handling. 6. Input ring buffer implementation. Current impl is naive. 7.Add output queue for MFT decoder. 8. Query Capabilities at GetVideoServices()... BUG=None TEST=Windows7 Review URL: http://codereview.chromium.org/2873089 TBR=jiesun@google.com Review URL: http://codereview.chromium.org/3020077 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55419 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 55400 - Cleanup in base. This moves the implementation (and a bunch ↵nsylvain@chromium.org2010-08-094-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | of header file dependencies) from the multiprocess test and the test_suite headers to .cc files. Moves multiprocess_test to the test directory, and all of this stuff to the existing base_test_support project. I also used the base namespace. Previously other projects included this functionality just by #include because it was all inline, so I had to add dependencies on base_test_support in a few places. Moves and renames the command line switch this was using to base_switches. Move the base switch for process type to chrome switches. TEST=none BUG=none Review URL: http://codereview.chromium.org/3026055 TBR=brettw@chromium.org Review URL: http://codereview.chromium.org/3035062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55416 0039d316-1c4b-4281-b951-d872f2087c98
* Special thanks for in-ming cheng's MFT hardware decodering code.jiesun@google.com2010-08-093-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. ipc_video_decoder.cc/h is media pipeline filter which use the gpu decoder facilities in video stack. it is only enabled when (a) hardware composition is on (b) hardware decoding command line is on (c) h264 codec is specified. 2. gpu_video_service.cc/h is a singleton in gpu process which provide video services for renderer process, through it we could create decoder. ( in my imagination, in the future, we could create encoder or capturer too) 3. gpu_video_decoder.cc/h. abstract interface for hardware decoder. 4. gpu_video_decoder_mft.cc/h media foundation transform hardware decoder which run on windows 7 only. 5. gpu_video_service_host.cc/h is singleton in renderer process which provide proxy for gpu_video_service. 6. gpu_video_decoder_host.cc/h is proxy for gpu_video_decoder. (1 to 1 map).basically there is one global GpuVideoService in GPU process, one GpuVideoServiceHost in Renderer process. for each renderer process, there are could be multiple renderer view, each could had multiple GpuVideoDecoderHost the connect to GpuVideoDeocder through GPUCHannelHOst/GpuChannel. 7. gpu_video_common.cc/h: IPC message definition and pickle/marshaling support. ISSUES: 1. in media pipeline, we need let decoder to determine if bit stream filter should be used instead of let command line to determine it. 2. stop readback from D3D surface use ANGLE. 3. Flush logic still need fine tuning. 4. CreateThread in GpuVideoDecoder, and post message in message handler, and derived classs handle message loop. ? 5. Error handling. 6. Input ring buffer implementation. Current impl is naive. 7.Add output queue for MFT decoder. 8. Query Capabilities at GetVideoServices()... BUG=None TEST=Windows7 Review URL: http://codereview.chromium.org/2873089 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55405 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup in base. This moves the implementation (and a bunch of header filebrettw@chromium.org2010-08-094-3/+8
| | | | | | | | | | | | | | | | | | | dependencies) from the multiprocess test and the test_suite headers to .cc files. Moves multiprocess_test to the test directory, and all of this stuff to the existing base_test_support project. I also used the base namespace. Previously other projects included this functionality just by #include because it was all inline, so I had to add dependencies on base_test_support in a few places. Moves and renames the command line switch this was using to base_switches. Move the base switch for process type to chrome switches. TEST=none BUG=none Review URL: http://codereview.chromium.org/3026055 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55400 0039d316-1c4b-4281-b951-d872f2087c98