HyperFish

From XiphWiki
Revision as of 05:49, 27 November 2004 by 61.51.40.215 (talk)
Jump to navigation Jump to search

Overview

This is an experimental subgroup aimed at solving specific project barriers in a timely fashion.

Alot of energy has gone into Xiph, and while producing extremely useful software, it's history is also littered with frustrated, burned out hackers. I'd like to see us evolve a new way of working, and I believe this begins by a subgroup forming a vision, goals, and a strategy towards getting these goals met.

  • Hyperfish members will:
    • work openly and *transparently*, even if we're the only person working on a project
    • report *regularly* to the group how we are progressing (ie, if we're on schedule)
    • meet monthly (on IRC) to discuss our progress, timeline, and collectivly brainstorm

 

  • Each HyperFish project will have:
    • clearly documented purpose and list of needs
    • milestones with specific dates for completion
    • frequency of progress reports expected, depending on the size of the project and how critical it is

 

If this process proves useful, it will hopefully be adopted by Xiph as standard procedure.


Roadmap

Major Milestone I

All Xiph codecs accessable with a single library.

OggStream

It's basically what OggFile was suppost to be; a universal Ogg stream handler through "codec plugins" so that media players, stream software, encoders, etc don't have to add support for each codec seperatly. This is a basic foundation for most other projects, since if they are codecs they will reach our audience faster through it and if they're applications they'll be able to use all current and future Ogg codecs with only one API to support.

It needs developer time both for coding and for settling on an easy to implement API that's flexible enough to handle any kind of future codec (including meta/effects codecs).

The first milestone is a rough API blueprint for which future discussion can take place through. This will be documented on project page and ready for discussion by Wed. Nov. 24th.

Future milestone will be discussed and detirmined at the next (first) meeting.


libogg2 documentation

Currently (afair) only Monty and myself (Arc) know libogg2's API well enough to port existing codec libraries (vorbis, speex, flac) to use it. Documenting libogg2 will allow additional people to get involved in the "fun".

This requires the person writting the docs to get the appropriate information from the source code and by talking to either Monty or Arc (most probobally, some combination of the two).

The first milestone is function and structure documentation. This will be finished by Nov. 24th. The second milestone is the encode/decode process, or how to actually use it. This will be finished by Dec. 1st. The third milestone is finishing it with figures and zero-copy explaination. This will be finished by Dec. 15th.


writ codec plugin

Writ is an extremely simple "codec" and, really, simply needs to be handled by the application. However, a codec plugin is still required to detect and get basic information from the header for OggStream. This is a good place to start because it's simple.

It requires liboggstream to be finished and approximatly 10 hours of Arc's time.


libvorbis porting/plugin

libvorbis needs to be ported to libogg2 and have a codec plugin written for it.

This requires liboggstream to be finished and libogg2 to be documented (unless Arc or Monty writes it). It will take approximatly 12 hours to port to libogg2 (everything but VorbisFile, which disappears now) and 36 hours to write and debug the codec plugin. Some of this time will be spent working on general OggStream audio issues.

First milestone is libogg2 porting Second milestone is decode support Third milestone in encode support

No dates on these milestones can be set until OggStream's timeline is established.


libtheora plugin

libtheora has already been ported to libogg2 (by Arc), but still needs a codec plugin written for it.

This requires liboggstream to be finished. It will take approximatly 52 hours to write and debug the codec plugin, much of this time will be spent writting raw video format conversion functions.

First milestone is YUV 4:2:0 decode support Second milestone is YUV 4:2:0 encode support Third milestone is YUV 4:2:2, 4:4:4, RGB24, and Greyscale conversion


No dates on these milestones can be set until OggStream's timeline is established.


I have written conversions for (4:2:0)YUYV, YVYU, YV12, (4:2:2) YUY2, (4:4:4) AYUV, RGB24 and RGB32 already in my directshow project, these could be easily appropriated for this task.

Also most of these generic stream mechanisms already exist in my project (though it is a bit biased towards directshow) and it is based off my own demux library (libOOOgg) and not libogg/libogg2 though it could be used for inspiration/appropriation. It's also written in C++, so this may be unpalatable to some.

Eg. http://svn.xiph.org/trunk/oggdsf/src/lib/core/directshow/dsfOggDemux/OggStreamFactory.cpp

Zen.

libspeex plugin

libspeex uses it's own bitpacker, so it cannot take advantage of libogg2's zerocopy advantages. Therefore, the codec plugin will use libspeex as it currently exists and "copy" (from memory to bitpacker) the packets into libogg2, or vice versa for decode, as speexenc/speexdec do.

This requires liboggstream to be finished, libogg2 to be documented, and approximatly 48 hours to write and debug the codec plugin (likely half this estimate if the libvorbis plugin author tackles this immediatly afterward).

First milestone is decode support Second milestone is encode support


libflac plugin

liboggflac needs to be ported to libogg2 as well as the codec plugin written for it.

This requires liboggstream to be finished, libogg2 to be documented, and the new OggFLAC encapsulation format be standardized so there's not a wasteful repetition of work. It will take approximatly 16 hours to port and 48 hours to write the codec plugin. Again, this would be less if the libvorbis/libspeex author tackled this job as they would already be familiar with how to write audio plugins.

First milestone is decode support Second milestone is encode support


MNGOverlay plugin

It's been suggested that MNG be used not just as video but also for graphical subtitles. This may mean that this codec acts as a meta/effects codec, inputting video output from another codec and outputting it with the overlay merged properly.

This task needs to be discussed further.


Major Milestone II

All Free Software media applications which use libogg1 and/or libvorbisfile converted to use the single library solution.


Major Milestone III

Software that doesn't exist, but should/could be written, which is made easy by single library solution.

Next Meeting

We're going to have our first meeting Wednesday, November 24th, 23:59 GMT (7pm EST) on irc.freenode.net channel #Xiphmeet - it will be mostly preliminary visioning, since most everything depends on OggStream (or equiv) 电影 免费电影 电影下载 在线电影 影视 免费电影下载

猫沙 猫抓板 猫用品 猫粮 模具 新力净化 空气净化行业 洁净论坛 洁净技术 clean room 无尘室 无尘室净化设备 风机过滤网 有隔板空气过滤器 铝隔板式高效率空气过滤器 无隔板高效空气过滤器 高效率空气过滤器 空气过滤器 狩猎 头盔夜视仪 红外热成像仪 双筒夜视仪 枪械瞄准镜 微光夜视仪 夜视瞄准镜 手持夜视观察仪 药物流产 钛板 冷却塔 挖掘机 搅拌器 球磨机 离心机 会计师事务所 标签打印机 吸顶灯 反光材料 强直性脊柱炎 自动门 钢结构 尿毒症 化学清洗 工业清洗 电视墙 加密狗 过滤器 艾滋病 梅毒 尖锐湿疣 淋病 性病 电子白板 升降机 脚手架 高压水枪 吸脂 洗涤设备 桑拿设备 加湿器 防盗门 保暖内衣 防护服 商铺招租 户外广告 保温材料 防火材料 涂料 无痛流产 油漆 拓展训练 婚庆公司 旗袍 婚纱 管道疏通 婚纱摄影

家政 家政服务 家政服务公司 保姆 钟点工 小时工

汽车坐垫 汽车坐垫代理 汽车坐垫销售 汽车坐垫生产 北京汽车坐垫

白癜风 白癜风专家 白癜风医院 白癜风治疗 白癜风药品 白癜风信息

美容仪器 美容设备

空调清洗 中央空调清洗 清洗空调 清洗中央空调

搬家公司 造桥机 中央空调 麦克维尔 管道疏通 疏通管道 霓虹灯 卫生洁具 游乐设备 乳胶漆 塑钢门窗 CI策划 私人侦探 可视门铃 律师事务所 驾校 北京驾校 轴承 夜视仪 高压清洗机 铁路标准 铁路工法 架桥机 网站推广 快餐 订餐 天花板 NEC交换机 印刷机械 整形美容 糖尿病 高血压 建材 变压器 胶合板 热水器 楼市图 二手车 安防设备 继电器 传感器 对讲机 宠物食品 猫粮 狗粮