OggIssues: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
(Add text from Shane's FOMS presentation verbatim)
 
(formatting)
Line 1: Line 1:
Seeking and Editing Problems
== Seeking and Editing Problems ==


jagged edges
* jagged edges
wide variance in location of cotemporal data
* wide variance in location of cotemporal data
impossible to reconstruct all granulepos values around holes
* impossible to reconstruct all granulepos values around holes
granulepos / timeval mapping inconsistencies
* granulepos / timeval mapping inconsistencies
poorly sorted streams are rife
* poorly sorted streams are rife
impossible to efficiently seek with noncontinuous data
* impossible to efficiently seek with noncontinuous data


Other Niggles
== Other Niggles ==


end-time ordering  
* end-time ordering  
except when we have non-continuous data
* except when we have non-continuous data
inefficient lacing values for video
* inefficient lacing values for video
ad-hoc granulepos retrofitting for video, CMML
* ad-hoc granulepos retrofitting for video, CMML
seeking is hard
* seeking is hard
pages, and libogg's behaviour when creating them
* pages, and libogg's behaviour when creating them




i don't know the answers
== i don't know the answers ==


We need to design a successor to Ogg
* We need to design a successor to Ogg
It should be called (Ogg2|Ogg3|Ogg++|OggNG|Ogh|Foo|Dumplings)
* It should be called (Ogg2|Ogg3|Ogg++|OggNG|Ogh|Foo|Dumplings)
The design should be done from desired capabilities and desired properties
* The design should be done from desired capabilities and desired properties
These capabilities and properties should come from AV experts, web-page designers, system administrators, and users
* These capabilities and properties should come from AV experts, web-page designers, system administrators, and users


Desired Capabilities
== Desired Capabilities ==


Simple seeking
* Simple seeking
Cleanly cuttable
* Cleanly cuttable
Robust to errors
* Robust to errors
Composable
* Composable
Supports arbitrary stream types
* Supports arbitrary stream types


Low bit cost
* Low bit cost
Streamable
* Streamable
Easy to chunk
* Easy to chunk
Low decode cost
* Low decode cost
Supports multiple streams of each type
* Supports multiple streams of each type


Untied We Stand
== Untied We Stand ==


Can cotemporal data be colocated?
* Can cotemporal data be colocated?
streams & bundles
* streams & bundles
great for cutting
* great for cutting
OK for demultiplexing
* OK for demultiplexing
“should” cut down on bit overhead
* “should” cut down on bit overhead
hugely simplifies seeking  
* hugely simplifies seeking  


Gimme a Hint
== Gimme a Hint ==


Can we add seeking hints to the stream?
* Can we add seeking hints to the stream?
these can be tiny and infrequent
* these can be tiny and infrequent
awesome for standalone files
* awesome for standalone files
what do we do when streaming?
* what do we do when streaming?
hint correction packets?
* hint correction packets?
is this turtles all the way down?
* is this turtles all the way down?
Would an up-front index be better?
* Would an up-front index be better?


Cleaner Abstractions
== Cleaner Abstractions ==


We should not need to know the type of a stream if we are not decoding the stream
* We should not need to know the type of a stream if we are not decoding the stream
granulepos interpretations
* granulepos interpretations
headers
* headers
seeking
* seeking
cutting
* cutting
Skeleton goes some way towards fixing this
* Skeleton goes some way towards fixing this


What use are...
== What use are... ==


serial numbers?
* serial numbers?
packet numbers?
* packet numbers?
pages?
* pages?
checksums?
* checksums?


Devil's Advocate
== Devil's Advocate ==


These problems aren't unsurmountable
* These problems aren't unsurmountable
but we're only finding some of them now, and we've been working around others for years
* but we're only finding some of them now, and we've been working around others for years
Nobody will adopt another container format
* Nobody will adopt another container format
Nobody cares about <insert hated feature here> anyway
* Nobody cares about <insert hated feature here> anyway

Revision as of 15:48, 29 January 2008

Seeking and Editing Problems

  • jagged edges
  • wide variance in location of cotemporal data
  • impossible to reconstruct all granulepos values around holes
  • granulepos / timeval mapping inconsistencies
  • poorly sorted streams are rife
  • impossible to efficiently seek with noncontinuous data

Other Niggles

  • end-time ordering
  • except when we have non-continuous data
  • inefficient lacing values for video
  • ad-hoc granulepos retrofitting for video, CMML
  • seeking is hard
  • pages, and libogg's behaviour when creating them


i don't know the answers

  • We need to design a successor to Ogg
  • It should be called (Ogg2|Ogg3|Ogg++|OggNG|Ogh|Foo|Dumplings)
  • The design should be done from desired capabilities and desired properties
  • These capabilities and properties should come from AV experts, web-page designers, system administrators, and users

Desired Capabilities

  • Simple seeking
  • Cleanly cuttable
  • Robust to errors
  • Composable
  • Supports arbitrary stream types
  • Low bit cost
  • Streamable
  • Easy to chunk
  • Low decode cost
  • Supports multiple streams of each type

Untied We Stand

  • Can cotemporal data be colocated?
  • streams & bundles
  • great for cutting
  • OK for demultiplexing
  • “should” cut down on bit overhead
  • hugely simplifies seeking

Gimme a Hint

  • Can we add seeking hints to the stream?
  • these can be tiny and infrequent
  • awesome for standalone files
  • what do we do when streaming?
  • hint correction packets?
  • is this turtles all the way down?
  • Would an up-front index be better?

Cleaner Abstractions

  • We should not need to know the type of a stream if we are not decoding the stream
  • granulepos interpretations
  • headers
  • seeking
  • cutting
  • Skeleton goes some way towards fixing this

What use are...

  • serial numbers?
  • packet numbers?
  • pages?
  • checksums?

Devil's Advocate

  • These problems aren't unsurmountable
  • but we're only finding some of them now, and we've been working around others for years
  • Nobody will adopt another container format
  • Nobody cares about <insert hated feature here> anyway