南瓜可以做什么美食| 五脏六腑指什么| 桑葚和什么泡酒壮阳| 龟头有红点用什么药| 月什么意思| jeans是什么品牌| 打下手什么意思| 女孩喜欢什么礼物| 海鲜不能和什么一起吃| 男人有腰窝意味着什么| 玉米须加什么治痛风| 熟普属于什么茶| 客厅沙发后面墙上挂什么画好| 基础代谢率是什么意思| 14数字代表什么意思| 落是什么意思| 罗锅是什么意思| 肝郁血瘀吃什么中成药| 脚趾起水泡是什么原因| 多巴胺是什么意思| 睡不着觉是什么原因引起的| 什么情况会胎停| g1是什么意思| eur是什么意思| 淋巴细胞偏高说明什么问题| cho是什么意思| 为什么英文怎么说| 结扎是什么意思| 做梦梦到水是什么征兆| 颅脑平扫是检查什么| ercp是什么| 今天吃什么| 喝柠檬水对身体有什么好处| 撸管是什么| 口腔溃疡什么原因| 阿西吧是什么意思| 电焊打眼睛用什么眼药水| 刘的五行属什么| 什么咖啡最好| 开什么店好| bp是什么意思医学上面| 女性膀胱炎是什么症状| 孕妇梦见摘桃子是什么意思| 补钙吃什么| 大便颗粒状是什么原因造成的| 低蛋白血症是什么意思| 中元节应该说什么| 什么是中医学| 丝芙兰是什么品牌| 今年25岁属什么生肖| 红楼梦是一部什么小说| 巴旦木是什么| 梦见自己理发是什么意思| 吃木耳有什么好处| kcl是什么药| 谷草谷丙高是什么原因| hp检查是什么意思| bld是什么意思| 老人出汗多是什么原因| 吃维生素b1有什么好处和副作用| 站桩对身体有什么好处和功效| 什么的绽放| 什么时候母亲节| 一什么声音| 猪肉炖什么好吃| 金兰之交是什么意思| 卡粉是什么原因引起的| 知了幼虫叫什么| 钯金是什么金| 执业药师什么时候报名| 子宫发炎是什么原因引起的| 高丽参是什么参| 双肺纹理增多增粗是什么意思| 子宫筛查主要检查什么| 梦见去墓地是什么预兆| or是什么意思| 社保局是干什么的| 两胸之间是什么部位| 怜悯之心是什么意思| 阳瘘的最佳治疗方法是什么| 梦到门牙掉了是什么意思| 三高可以吃什么水果| 更是什么结构的字| 白完念什么| 代糖是什么东西| 睡醒嘴苦是什么原因| 薤白是什么东西| 手脚发麻是什么病征兆| 肩膀疼是什么原因引起的| 为什么小鸟站在电线上不会触电| 9年是什么婚| 出伏是什么意思| 打氨基酸点滴有什么好处和害处| 十一月二十八是什么星座| 裤裙配什么上衣好看| 胖次是什么意思| 肝脏不好吃什么药| 铁锈红配什么颜色好看| 警察是什么编制| 如火如荼是什么意思| 欧莱雅属于什么档次| 1944年属什么| 梦见扫墓是什么预兆| 红指什么生肖| 六神无主是什么意思| 脚后跟骨头疼是什么原因| 1988是什么年| 月经前便秘是什么原因| 芥菜是什么| 经产妇是什么意思| 决定的近义词是什么| 六角龙吃什么食物| 2b什么意思| 撤退性出血是什么颜色| 什么品牌的笔记本好| e代表什么方向| 尿急憋不住尿是什么原因| cbt是什么意思| 法令纹深是什么原因| 活塞是什么意思| lee中文叫什么| 智齿有什么作用| 阴煞是什么意思| 半夜胎动频繁是什么原因| 鲨鱼为什么怕海豚| 什么是抗生素类药物| 移交是什么意思| 冲代表什么生肖| 吃什么可以偷偷流产| 发烧可以吃什么水果| 西湖醋鱼是什么鱼| 脾胃虚寒吃什么水果好| 藏红花的功效是什么| 雄黄是什么东西| 榅桲是什么水果| 屋尘螨是什么东西| 开业需要准备什么东西| 胃泌素释放肽前体高是什么原因| 斗鱼吃什么食物| 喉咙一直有痰是什么原因| 燊什么意思| 手足口什么症状| 死库水是什么意思| etf什么意思| 为什么会卵巢早衰| 权志龙为什么叫gd| 天秤女和什么星座最配| 中央办公厅主任什么级别| 胰腺钙化灶是什么意思| 什么品牌的床好| 害怕什么| 庚金是什么意思| 无底洞是什么意思| 马齿苋与什么食物相克| 刮痧有什么好处和坏处| 眼花视力模糊是什么原因引起的| 属猴的跟什么属相最配| 自闭症是什么人投胎| 心率变异性是什么意思| 甲木代表什么| 218是什么星座| 冷喷机喷脸有什么好处| 左侧附件区囊性占位是什么意思| 消化不好吃什么药最好| 乙肝五项145阳性是什么意思| 美人坯子是什么意思| 牙龈长泡是什么原因| 婴儿湿疹用什么药膏最有效| 仙逝是什么意思| 什么是粒子植入治疗| 营养心脏最好的药是什么药| 为什么月经不来| 老年人腿浮肿是什么原因引起的| 伤口撒什么药粉好得快| 呲牙是什么意思| 小舌头学名叫什么| 尿多什么原因| 嗓子不舒服吃什么消炎药| 肌酐高是什么原因引起的| 水手是干什么的| 胃不好适合吃什么水果| 日语斯国一是什么意思| 腹部ct挂什么科| 屋漏偏逢连夜雨是什么意思| 黍是什么意思| 吃东西恶心想吐是什么原因| 伪骨科是什么意思| 治胃病吃什么药| 补血吃什么最好最快| 手上长疣是什么原因造成的| swisse是什么药| 阴道口出血是什么原因| 血常规五项能检查出什么病| 鸦雀无声是什么意思| 命格是什么意思| 什么人不能吃茄子| 泡脚时间长了有什么坏处| 血压偏高喝什么茶| 滔滔不绝的绝是什么意思| 做造影对身体有什么伤害| 啧啧啧什么意思| 排卵期过后是什么期| 冲锋衣三合一是什么意思| 全麻对身体有什么危害| 淑字五行属什么| 天团是什么意思| 肌酐测定低是什么意思| 测血型挂什么科| lm是什么意思| 室性期前收缩是什么意思| 小孩咳嗽挂什么科| 淋巴结是什么病严重吗| 腰酸背痛挂什么科| 肉桂是什么味道| 阁下是什么意思| 赵子龙属什么生肖| mackage是什么牌子| 我们到底什么关系| 烟酒不沾的人什么性格| 梦见狗咬手是什么意思| 低血压是什么原因引起的| 熬夜吃什么补回来| 黄糖是什么糖| 空调风扇不转是什么原因| 三个牛读什么字| 生日送什么礼物最好| 饭铲头是什么蛇| 宗室是什么意思| zs是什么意思| 肺纤维化是什么症状| 中焦不通用什么中成药| 为什么会得肿瘤| 宝宝乳糖不耐受喝什么奶粉比较好| 地级市市长什么级别| 钮祜禄氏是什么旗| 乙肝病毒表面抗体高是什么意思| 喝绿茶对身体有什么好处| 泡腾片是干什么用的| 为什么一躺下就头晕目眩| 突然尿多是什么原因| 窦性心律什么意思| 1981属什么| 清炖羊肉放什么调料| 马齿苋长什么样| 三叉神经痛用什么药| 赘疣是什么意思| 喉咙痛吃什么| 海的尽头是什么| 甲亢和甲状腺有什么区别| tomorrow什么意思| 什么是信念| 酒糟鼻子是什么原因引起的| 什么是cpi| 耍朋友是什么意思| 男生适合学什么专业| 古天乐属什么生肖| 息影是什么意思| 人云亦什么| 高粱是什么粮食| 岳飞属什么生肖| 腺瘤是什么意思| 阴骘什么意思| 奇行种什么意思| 敏感是什么意思| 百度
tree: 11e6d7230820bbd3420de0c1d26041919debfb23 [path history] [tgz]
  1. audio/
  2. base/
  3. blink/
  4. capabilities/
  5. capture/
  6. cast/
  7. cdm/
  8. device_monitors/
  9. ffmpeg/
  10. filters/
  11. formats/
  12. fuchsia/
  13. gpu/
  14. learning/
  15. midi/
  16. mojo/
  17. muxers/
  18. parsers/
  19. remoting/
  20. renderers/
  21. test/
  22. tools/
  23. video/
  24. webrtc/
  25. BUILD.gn
  26. DEPS
  27. DIR_METADATA
  28. media_options.gni
  29. OWNERS
  30. PRESUBMIT.py
  31. PRESUBMIT_test.py
  32. README.md
media/README.md

国道317线(西藏境内)丁青至斜拉山公路整治改建

百度 用户理解并接受:任何通过经济网服务取得的信息资料的可靠性取决于用户自己,用户自己承担所有风险和责任。

Welcome to Chromium Media! This directory primarily contains a collection of components related to media capture and playback. Feel free to reach out to the media-dev@chromium.org mailing list with questions.

As a top level component this may be depended on by almost every other Chromium component except base/. Certain components may not work properly in sandboxed processes.

Directory Breakdown

  • audio/ - Code for audio input and output. Includes platform specific output and input implementations. Due to use of platform APIs, can not normally be used from within a sandboxed process.

  • base/ - Contains miscellaneous enums, utility classes, and shuttling primitives used throughout media/ and beyond; i.e. AudioBus, AudioCodec, and VideoFrame just to name a few. Can be used in any process.

  • blink/ - Code for interfacing with the Blink rendering engine for MediaStreams as well as <video> and <audio> playback. Used only in the same process as Blink; typically the render process.

  • capture/ - Contains content (as in the content layer) capturing and platform specific video capture implementations.

  • cast/ - Contains the tab casting implementation; not to be confused with the Chromecast code which lives in the top-level cast/ directory.

  • cdm/ - Contains code related to the Content Decryption Module (CDM) used for playback of content via Encrypted Media Extensions (EME).

  • device_monitors/ - Contains code for monitoring device changes; e.g. webcam and microphone plugin and unplug events.

  • ffmpeg/ - Contains binding code and helper methods necessary to use the ffmpeg library located in //third_party/ffmpeg.

  • filters/ - Contains data sources, decoders, demuxers, parsers, and rendering algorithms used for media playback.

  • formats/ - Contains parsers used by Media Source Extensions (MSE).

  • gpu/ - Contains the platform hardware encoder and decoder implementations.

  • midi/ - Contains the WebMIDI API implementation.

  • mojo/ - Contains mojo services for media. Typically used for providing out of process media functionality to a sandboxed process.

  • muxers/ - Code for muxing content for the Media Recorder API.

  • remoting/ - Code for transmitting muxed packets to a remote endpoint for playback.

  • renderers/ - Code for rendering audio and video to an output sink.

  • test/ - Code and data for testing the media playback pipeline.

  • tools/ - Standalone media test tools.

  • video/ - Abstract hardware video decoder interfaces and tooling.

Capture

TODO(miu, chfemer): Fill in this section.

mojo

See media/mojo documentation.

MIDI

TODO(toyoshim): Fill in this section.

Playback

Media playback encompasses a large swatch of technologies, so by necessity this will provide only a brief outline. Inside this directory you'll find components for media demuxing, software and hardware video decode, audio output, as well as audio and video rendering.

Specifically under the playback heading, media/ contains the implementations of components required for HTML media elements and extensions:

The following diagram provides a simplified overview of the media playback pipeline.

Media Pipeline Overview

As a case study we'll consider the playback of a video through the <video> tag.

<video> (and <audio>) starts in blink::HTMLMediaElement in third_party/WebKit/ and reaches media/blink in media::WebMediaPlayerImpl after a brief hop through content::MediaFactory. Each blink::HTMLMediaElement owns a media::WebMediaPlayerImpl for handling things like play, pause, seeks, and volume changes (among other things).

media::WebMediaPlayerImpl handles or delegates media loading over the network as well as demuxer and pipeline initialization. media::WebMediaPlayerImpl owns a media::PipelineController which manages the coordination of a media::DataSource, media::Demuxer, and media::Renderer during playback.

During a normal playback, the media::Demuxer owned by WebMediaPlayerImpl may be either media::FFmpegDemuxer or media::ChunkDemuxer. The ffmpeg variant is used for standard src= playback where WebMediaPlayerImpl is responsible for loading bytes over the network. media::ChunkDemuxer is used with Media Source Extensions (MSE), where JavaScript code provides the muxed bytes.

The media::Renderer is typically media::RendererImpl which owns and coordinates media::AudioRenderer and media::VideoRenderer instances. Each of these in turn own a set of media::AudioDecoder and media::VideoDecoder implementations. Each issues an async read to a media::DemuxerStream exposed by the media::Demuxer which is routed to the right decoder by media::DecoderStream. Decoding is again async, so decoded frames are delivered at some later time to each renderer.

The media/ library contains hardware decoder implementations in media/gpu for all supported Chromium platforms, as well as software decoding implementations in media/filters backed by FFmpeg and libvpx. Decoders are attempted in the order provided via the media::RendererFactory; the first one which reports success will be used for playback (typically the hardware decoder for video).

Each renderer manages timing and rendering of audio and video via the event- driven media::AudioRendererSink and media::VideoRendererSink interfaces respectively. These interfaces both accept a callback that they will issue periodically when new audio or video frames are required.

On the audio side, again in the normal case, the media::AudioRendererSink is driven via a base::SyncSocket and shared memory segment owned by the browser process. This socket is ticked periodically by a platform level implementation of media::AudioOutputStream within media/audio.

On the video side, the media::VideoRendererSink is driven by async callbacks issued by the compositor to media::VideoFrameCompositor. The media::VideoRenderer will talk to the media::AudioRenderer through a media::TimeSource for coordinating audio and video sync.

With that we‘ve covered the basic flow of a typical playback. When debugging issues, it’s helpful to review the internal logs at chrome://media-internals. The internals page contains information about active media::WebMediaPlayerImpl, media::AudioInputController, media::AudioOutputController, and media::AudioOutputStream instances.

Logging

Media playback typically involves multiple threads, in many cases even multiple processes. Media operations are often asynchronous running in a sandbox. These make attaching a debugger (e.g. GDB) sometimes less efficient than other mechanisms like logging.

DVLOG

In media we use DVLOG() a lot. It makes filename-based filtering super easy. Within one file, not all logs are created equal. To make log filtering more convenient, use appropriate log levels. Here are some general recommendations:

  • DVLOG(1): Once per playback events or other important events, e.g. construction/destruction, initialization, playback start/end, suspend/resume, any error conditions.
  • DVLOG(2): Recurring events per playback, e.g. seek/reset/flush, config change.
  • DVLOG(3): Frequent events, e.g. demuxer read, audio/video buffer decrypt or decode, audio/video frame rendering.

MediaLog

MediaLog will send logs to about://media-internals, which is easily accessible by developers (including web developes), testers and even users to get detailed information about a playback instance. For guidance on how to use MediaLog, see media/base/media_log.h.

MediaLog messages should be concise and free of implementation details. Error messages should provide clues as to how to fix them, usually by precisely describing the circumstances that led to the error. Use properties, rather than messages, to record metadata and state changes.

poison是什么意思 头发麻是什么原因 喉咙痒咳嗽用什么药 乳腺增生应该注意些什么 载歌载舞的载是什么意思
马弁是什么意思 梦见塌方是什么预兆 曹操为什么杀华佗 svip是什么意思 副乳有什么危害吗
马齿苋长什么样 小姨是什么 孩子上火吃什么药 kid什么意思 面试是什么意思
什么病不能吃海参 分分钟都妙不可言是什么歌 肚子胀痛什么原因 肾结石看什么科 手机为什么突然关机
猪属什么五行hcv9jop6ns5r.cn 互卦是什么意思hcv8jop6ns3r.cn 洗耳恭听什么意思hcv8jop3ns3r.cn 521是什么星座的hcv9jop2ns6r.cn 甲减是什么病hcv7jop4ns8r.cn
肾囊肿有什么危害jinxinzhichuang.com 92年的属什么hcv8jop1ns5r.cn si是什么元素hcv8jop6ns9r.cn 什么是桥本病hlguo.com 皮疹用什么药cj623037.com
为什么发动文化大革命hcv8jop0ns6r.cn 今年30岁属什么生肖0297y7.com 喝苏打水有什么好处和坏处hcv7jop6ns1r.cn 什么是中成药hcv8jop3ns7r.cn 貌合神离是什么意思hcv8jop4ns8r.cn
蚂蚱吃什么食物hcv9jop2ns4r.cn 什么是戒断反应hcv9jop4ns0r.cn 胸口疼应该挂什么科qingzhougame.com 素金是什么意思aiwuzhiyu.com 米老鼠叫什么名字hcv9jop5ns2r.cn
百度