summaryrefslogtreecommitdiffstats
path: root/media/base
Commit message (Collapse)AuthorAgeFilesLines
* Refactor Pipeline & PipelineImpl so WebMediaPlayerImpl references a Pipeline ↵acolwell@chromium.org2010-11-114-42/+31
| | | | | | | | | | | instead of PipelineImpl BUG=54110 TEST=PipelineImplTest Review URL: http://codereview.chromium.org/4664005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65817 0039d316-1c4b-4281-b951-d872f2087c98
* Simplified AudioOutputStream interface.sergeyu@chromium.org2010-11-111-0/+1
| | | | | | | | | | | | | 1. Removed packet_size parameter from Open(). 2. Removed OnClose() from the callback. Now the callback is guaranteed to be called only between Start() and Stop(). 3. Added samples_per_packet in the AudioParameters struct. BUG=39825 TEST=Unittests Review URL: http://codereview.chromium.org/4661001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65766 0039d316-1c4b-4281-b951-d872f2087c98
* Refactor code so PipelineImpl doesn't rely on FilterType anymore.scherkus@chromium.org2010-11-044-121/+115
| | | | | | | | | | | | | - Replaced SupportsSetMessageLoop() & GetThreadName() with new methods in MediaFilter. - Reworked pipeline initialization logic so it keeps track of type references instead of downcasting based on filter_type(). Patch by acolwell@chromium.org: http://codereview.chromium.org/4397003/show BUG=61823 TEST=media_unittests git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65129 0039d316-1c4b-4281-b951-d872f2087c98
* Initial StateMatrix idea using composition and void*scherkus@chromium.org2010-11-043-0/+140
| | | | | | | | | BUG=none TEST=media_unittests Review URL: http://codereview.chromium.org/3416001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@65128 0039d316-1c4b-4281-b951-d872f2087c98
* Move MediaFilterCollection code into a class.scherkus@chromium.org2010-11-0310-139/+305
| | | | | | | | | | | | | Refactored FilterType usage a bit to remove the need to manually associate FilterType values to filter base classes. Patch by acolwell@chromium.org: http://codereview.chromium.org/4176006/show BUG=60778 TEST=media_unittests git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64885 0039d316-1c4b-4281-b951-d872f2087c98
* Convert implicit scoped_refptr constructor calls to explicit ones, part 2thakis@chromium.org2010-11-021-1/+1
| | | | | | | | | | | | This CL was created automatically by this clang rewriter: http://codereview.appspot.com/2826041 I then did quite a bit of manual editing to fix style issues. BUG=28083 TEST=None Review URL: http://codereview.chromium.org/4291001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64798 0039d316-1c4b-4281-b951-d872f2087c98
* Convert implicit scoped_refptr constructor calls to explicit ones, part 1thakis@chromium.org2010-11-014-14/+14
| | | | | | | | | | | This CL was created automatically by this clang rewriter: http://codereview.appspot.com/2776043/ . I manually fixed a few rough spots of the rewriter output (doh1-3) and fixed all presubmit errors. BUG=28083 TEST=None Review URL: http://codereview.chromium.org/4192012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@64573 0039d316-1c4b-4281-b951-d872f2087c98
* Terminate FilterFactory and his nasty friendshclam@chromium.org2010-10-2310-554/+371
| | | | | | | | | | | | | FilterFactory, IsMediaFormatSupported and CreateFactory are the source of evil. They also have have a gang of template functions. This patch terminate them all and make the world a better place. BUG=28207 TEST=<video> runs Review URL: http://codereview.chromium.org/3878001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63609 0039d316-1c4b-4281-b951-d872f2087c98
* Prevent buffered time from being less than the current time.scherkus@chromium.org2010-10-203-38/+88
| | | | | | | | | | Patch by acolwell@chromium.org: http://codereview.chromium.org/3897002/show BUG=56804 TEST=PipelineImplTest.GetBufferedTime git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63292 0039d316-1c4b-4281-b951-d872f2087c98
* Convert LOG(INFO) to VLOG(1) - media/.pkasting@chromium.org2010-10-192-8/+7
| | | | | | | | | | Also, remove some extra {}s, remove "else" after "return", eliminate a "using". BUG=none TEST=none Review URL: http://codereview.chromium.org/3912001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63140 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Even more ctor/virtual deinlining.erg@google.com2010-10-194-11/+35
| | | | | | | | | | | (Only 424k off Linux debug .a files). BUG=none TEST=compiles Review URL: http://codereview.chromium.org/3859003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63059 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Monster ctor patch after changing heuristics in clang plugin.erg@google.com2010-10-182-11/+32
| | | | | | | | | | | (Only 916k this time off Debug Linux .a files) BUG=none TEST=compiles Review URL: http://codereview.chromium.org/3814013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62967 0039d316-1c4b-4281-b951-d872f2087c98
* Make sure to use scoped_refptr for refcounted params in audio/video/remotingwillchan@chromium.org2010-10-181-2/+6
| | | | | | | | | BUG=28083 TEST=existing Review URL: http://codereview.chromium.org/3821005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62949 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Fix more ctor/dtors found by clang plugin.erg@google.com2010-10-132-0/+15
| | | | | | | | | | | (1.2 megs off of Debug Linux .a files) BUG=none TEST=compiles everywhere Review URL: http://codereview.chromium.org/3743001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62420 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 61899 for breaking cookes on file:// URLs.willchan@chromium.org2010-10-081-6/+2
| | | | | | | | | | | | | | | | | | BUG=58553 ================================================= Fix instances of passing raw pointers to RefCounted objects in tasks. Some of these manually handled it correctly by using AddRef()/Release() pairs. I switched them to make_scoped_refptr() to be more consistent. This also makes them cleanup properly on MessageLoop shutdown if we start deleting tasks. BUG=28083 TEST=builds Review URL: http://codereview.chromium.org/3581008 TBR=willchan@chromium.org Review URL: http://codereview.chromium.org/3654001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@62043 0039d316-1c4b-4281-b951-d872f2087c98
* Fix instances of passing raw pointers to RefCounted objects in tasks.willchan@chromium.org2010-10-081-2/+6
| | | | | | | | | | | Some of these manually handled it correctly by using AddRef()/Release() pairs. I switched them to make_scoped_refptr() to be more consistent. This also makes them cleanup properly on MessageLoop shutdown if we start deleting tasks. BUG=28083 TEST=builds Review URL: http://codereview.chromium.org/3581008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61899 0039d316-1c4b-4281-b951-d872f2087c98
* GpuVideoDecoderHost runs on IO thread instead of Render threadhclam@chromium.org2010-10-071-0/+2
| | | | | | | | | | | | Move GpuVideoDecoderHost to IO thread and change GpuVideoServiceHost to be a MessageFilter. BUG=53714 TEST=Tree is green. Will pending on WebKit changes to make this work. Review URL: http://codereview.chromium.org/3462015 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61854 0039d316-1c4b-4281-b951-d872f2087c98
* Cleanup in VideoFramehclam@chromium.org2010-10-072-54/+0
| | | | | | | | | | | | | Remove D3D textures from VideoFrame because it is not used anymore. Remove duration and timestamp when creating a video frame from textures. BUG=53714 TEST=Tree is green. Review URL: http://codereview.chromium.org/3501005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61852 0039d316-1c4b-4281-b951-d872f2087c98
* Implement Gles2VideoDecoderContexthclam@chromium.org2010-10-072-1/+5
| | | | | | | | | | | Allocate textures for video frames in Gles2VideoDecoderContext. BUG=53714 TEST=Tree is green. This doesn't work yet. Review URL: http://codereview.chromium.org/3391022 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61825 0039d316-1c4b-4281-b951-d872f2087c98
* Implement GpuVideoDecoderHost and unit testshclam@chromium.org2010-10-071-0/+2
| | | | | | | | | | | | | | Add the following feature to GpuVideoDecoderHost: 1. Video frame allocation / release. 2. ProduceVideoFrame / ConsumeVideoFrame using frames allocated. 3. Change GpuVideoDecoder creation to asynchronous. BUG=53714 TEST=unit_tests --gtest_filter=GpuVideoDecoder* Review URL: http://codereview.chromium.org/3397027 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61824 0039d316-1c4b-4281-b951-d872f2087c98
* clang/mac: Fix almost all problems when building all.xcodeproj.thakis@chromium.org2010-10-041-2/+2
| | | | | | | | BUG=None TEST=None TBR=hans git-svn-id: svn://svn.chromium.org/chrome/trunk/src@61344 0039d316-1c4b-4281-b951-d872f2087c98
* VP8 decoder for chromotinghclam@chromium.org2010-09-293-2/+24
| | | | | | | | | | | Added DecoderVp8 and unit test for chromoting. TEST=remoting_unittests BUG=50235 Review URL: http://codereview.chromium.org/3032047 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60960 0039d316-1c4b-4281-b951-d872f2087c98
* Add AudioBuffersState struct. Use it for audio synchronization.sergeyu@chromium.org2010-09-291-4/+9
| | | | | | | | | | | | | The new AudioBuffersState contains current state of the audio buffers. This object is passed all the way from the device to the audio renderer. Audio renderer uses this information to synchronize audio. BUG=52196,49110 TEST=see repro steps for 51637 and 52196. Review URL: http://codereview.chromium.org/3444017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60891 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Moves code to the headers.erg@google.com2010-09-286-20/+51
| | | | | | | | | | | | | One of the big things is starting to move/declare ctors/dtors that derive from RefCounted<> to/in the implementation file. (Saves 4 megabytes from libglue.a alone. 1 meg off libbrowser.a. Hundred of kilobyte savings in a large number of .a files; only libmedia.a grew and it's only 100k.) BUG=none TEST=compiles Review URL: http://codereview.chromium.org/3452030 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60863 0039d316-1c4b-4281-b951-d872f2087c98
* Implement VP8 encoder for chromotinghclam@chromium.org2010-09-283-1/+46
| | | | | | | | | | | Added EncoderVp8 with test for chromoting. TEST=remoting_unittests BUG=50235 Review URL: http://codereview.chromium.org/3005036 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60854 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Move virtual methods to implementation files.erg@google.com2010-09-233-57/+96
| | | | | | | | | | | Remove logging.h and other headers where possible. BUG=none TEST=none Review URL: http://codereview.chromium.org/3461019 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60369 0039d316-1c4b-4281-b951-d872f2087c98
* Fix an error reported by the clang assembler.thakis@chromium.org2010-09-211-4/+4
| | | | | | | | | | | It would complain that an `and` is ambiguous and could mean one of andb, andw, andl, andq (because neither of the two operands has an intrinsic size). Also for 3 other instructions. BUG=None TEST=None Review URL: http://codereview.chromium.org/3464006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@60016 0039d316-1c4b-4281-b951-d872f2087c98
* Fixed Ended event when audio is disabled.sergeyu@chromium.org2010-09-173-1/+20
| | | | | | | | | BUG=53539 TEST=unittests Review URL: http://codereview.chromium.org/3461003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59830 0039d316-1c4b-4281-b951-d872f2087c98
* Added FakeGlVideoDecodeEngine to exercise the IPC protocol for hardware ↵hclam@chromium.org2010-09-132-1/+107
| | | | | | | | | | | | | | | | video decoding There are several things done in this patch: 1. Added FakeGlVideoDecodeEngine 2. Fixed style problem in VideoDecodeEngine and gpu_video_common.h 3. Added route to pass texture from gpu process to WebKit BUG=53714 TEST=Tree is green Review URL: http://codereview.chromium.org/3335014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@59223 0039d316-1c4b-4281-b951-d872f2087c98
* Clean up texture types in VideoFramehclam@chromium.org2010-09-091-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | A VideoFrame should only reveal it self as system memory or textures (GL or D3D). All the implementation details should be hidden. This removed EGL image, OMXBUFFERHEADERTYPE, D3D surface and MF buffer from video frame. We should only have 3 different types of video frames: 1. System memory Whether it is allocated by VideoFrame or is just memory mapped should fall into this category. Memory can either be allocated internally or provided externally. 2. GL texture EGL image or just plain GL texture should fall into this area. Decode engines should do all the necessary operations to convert texture to GL textures. 3. D3D texture Whether we are using Media Foundation or DxVA2, if we are on windows we should convert everything to D3D texture and again all the operations involved are done inside the decode engine. BUG=53714 TEST=Tree is green. This is just API change. Review URL: http://codereview.chromium.org/3303014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58899 0039d316-1c4b-4281-b951-d872f2087c98
* Rename all FillThisBuffer and EmptyThisBuffer to something more meaningfulhclam@chromium.org2010-09-052-24/+34
| | | | | | | | | | | | The FillThisBuffer and EmptyThisBuffer names are very confusing. Anyone new working on the code probably won't understand the code at all. I'm changing the names to something more meaningful, which state the actual action taken by the methods. It is also easier to tell whether the method is for input pin or for output pin by their names. Review URL: http://codereview.chromium.org/3201013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58604 0039d316-1c4b-4281-b951-d872f2087c98
* Implement audio recording for Linux via ALSA.satish@chromium.org2010-09-022-2/+5
| | | | | | | | | | | There are no new unit tests because a cross platform unit test added in CL 3357004 covers this code. BUG=53598 TEST=media_unittests --gtest_filter=AudioInputTest.* Review URL: http://codereview.chromium.org/3299005 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58409 0039d316-1c4b-4281-b951-d872f2087c98
* media: recycle buffers/direct rendering etc. (third patch)jiesun@google.com2010-09-021-1/+4
| | | | | | | | | | | | | | 1. ffmpeg use direct rendering for ogg/h264. webm still do not use direct rendering. for both cases, decoder owns buffers. 2. video renderer change to support flush in a more flexible way. 3. openmax 's both path had been merged and both recycle buffer, 4. finish/fine tune seek logic in openmax code . TEST=test matrix/player_x11/layout test. BUG = None Review URL: http://codereview.chromium.org/3014059 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58279 0039d316-1c4b-4281-b951-d872f2087c98
* Fixing rounding error in buffering bar for fully loaded HTTP videosvrk@google.com2010-09-012-14/+30
| | | | | | | | | | | | | Added logic in the buffering code to no longer estimate buffered time if the video is fully loaded over HTTP. Also corrected some erroneous buffering logic and fixed tests to match the revised expectations. BUG=50570 TEST=media_unittests Review URL: http://codereview.chromium.org/3249010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58213 0039d316-1c4b-4281-b951-d872f2087c98
* Add AudioParameters struct. Use it everywhere.sergeyu@chromium.org2010-08-311-4/+8
| | | | | | | | | BUG=None TEST=unittests Review URL: http://codereview.chromium.org/3226012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@58097 0039d316-1c4b-4281-b951-d872f2087c98
* FBTF: Remove unneeded headers from base/ (part 7)thestig@chromium.org2010-08-272-1/+3
| | | | | | | | 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
* 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
* Re-land part of r55416, minus actually moving the test_suite.h contents to a ↵brettw@chromium.org2010-08-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | .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
* media: bit stream converterjiesun@google.com2010-08-132-0/+3
| | | | | | | | | 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
* 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-114-19/+28
| | | | | | | | | | | | 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
* Revert 55603nsylvain@chromium.org2010-08-114-28/+19
| | | | | | | | | | | | | | | | | | | 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
* preparation for recycling buffer, patch 2jiesun@google.com2010-08-104-19/+28
| | | | | | | | | | 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
* 1. ipc_video_decoder.cc/h is media pipeline filter which use the gpu decoder ↵jiesun@google.com2010-08-102-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Revert 55405 - Special thanks for in-ming cheng's MFT hardware decodering code.ananta@chromium.org2010-08-092-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | 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-092-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-091-1/+1
| | | | | | | | | | | | | | | | | | | 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
* allow yuv scaling fpic code to be used on linux, as well as Macfbarchard@chromium.org2010-08-061-7/+16
| | | | | | | | | BUG=51333 TEST=build chrome with linux_fpic=1 Review URL: http://codereview.chromium.org/3073029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55242 0039d316-1c4b-4281-b951-d872f2087c98