FishFaq: Difference between revisions

From XiphWiki
Jump to navigation Jump to search
No edit summary
(added bit trying to explain granulepos not being defined in Ogg)
 
(3 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<div id="nolabel" style="overflow:auto;height:1px;">
This page combines questions related to all Xiph projects.


== General Ogg Questions ==


[http://www.action-meds.com cheap butalbital]
=== What is a granulepos? ===
[http://www.5stardrugs.com buy tramadol]
[http://www.24-7pills.net tramadol online]
[http://www.american-meds.net butalbital discount]
[http://www.amazing-pills.com butalbital cheap]
buy tramadol online. online tramadol from our pharmacy, taking tramadol buy information tramadol, side effects tramadol, purchase tramadol online. cod online tramadol, tramadol india, cheap tramadol online, tramadol online, pharmacy online store
tramadol 50 mg. low price tramadol, tramadol pain treatment - tramadol hcl 50? - 120 tramadol. tramadol sales, buying cod tramado l, tramadol for humans, cheap tramadol online, overdose tramadol. order tramadol pictured tramadol pill tramadol seizure. cod tramadol cod, tramadol pdr, order pharmacy tramadol. buy prescription tramadol drug tramadol - tramadol side.
is tramadol a, order tramadol online, tramadol hcl, tramadol drug test .tramadol uses order tramadol overnight paypal tramadol
tramadol com tramadol tablets tramadol no perscription remove tramadol.
[http://20six.co.uk/cheaptramadol cheap tramadol]
[http://20six.co.uk/ordertramadol order tramadol]
[http://20six.co.uk/onlinetramadol1 online tramadol]
[http://20six.co.uk/tramadolonline tramadol online]
[http://20six.co.uk/tramadoldiscount tramadol discount]
[http://20six.co.uk/purchasetramadol purchase tramadol]
[http://20six.co.uk/ordersoma order soma]
[http://20six.co.uk/onlinesoma1 online soma]
[http://20six.co.uk/online-viagra online viagea]
[http://20six.co.uk/orderviagra order viagra]
[http://20six.co.uk/cheapviagraonline cheap viagra online]
[http://20six.co.uk/purchaseviagra purchase viagra]
[http://20six.co.uk/cheap-ultram cheap ultram]


[http://spaces.msn.com/cheap-tramadol/ cheap tramadol]
A '''granulepos''' (Granule Position) is a representation for a timestamp, on a scale specific to each codec.
[http://spaces.msn.com/buy-viagra/ buy viagra]


SEO: UndoneHeaven
Conrad Parker clarifies the definition of granulepos as "representing the presentation time for the last presentable data item in an Ogg packet."


[http://www.replicahours.com rolex replica]
=== Where is the granulepos stored in the bitstream ? ===
[http://www.replicahours.com/index.php?cPath=51_25 fake rolex daydate]
The positioning and length of granulepos data will vary from codec to codec, meaning that you'll have to look at the relevant codecs' specifications to see how they handle Granule Positions.
[http://www.replicahours.com/index.php?cPath=29 replica swiss]
[http://www.google.com/search?sourceid=navclient&gfns=1&ie=UTF-8&q=replicahours replicahours]
buy replica cheap best price rolex discounf fake. watches fake watch online store using paypal fedex rolex replicahours. order rolex replica now. cheap wholesale fake rolex online free shipping. 80% discount rolex replica and replicas watches. woman how to adjust a chronometer watch authorized rolex dealer, rolex watches rolex dial rolex oyster perpetual date reloj panerai replica en usa rolex watches serial numbers rolex woman daytona daytona watch replica panerai watch rolex 50th anniversary rolex daytona paul newman replica rolex buy rolex watches. ladies rolex yachtmaster white dial faux. rolex daytona manual cellini rolex for sale pictures of rolex oyster perpetual datejust rolex rolex gmt-master ii buying rolex on line fake rolex daytona gold on silver how to tell fake tag rolex oyster perpetual new tell. Replica rolex? Swiss made replica rolex watch! Cost does fake much rolex rolex presidential rolex. Rolex dials rolex sea dweller. Rolex  tudor fake rolex turkey datejust oyster perpetual rolex man rolex submariner cosmograph daytona oyster professional rolex? Datejust rolex rolex replica rolex fake rolexes for sale. Rolex submariner for sale, rolex yachtmaster! Explorer ii rolex preowned rolex watch? Cheap rolex watch, rolex daytona 116520 forum rolex. 18k gold replica ex part rolex daytona review rolex submariner 50 anniversary rolex cellini replica rolex watch fake rolex omega?


[http://www.customsoftwarenow.com custom software development]
Quote from the [https://tools.ietf.org/html/rfc3533#page-6 Ogg RFC]:
Software Development, custom software development, offshore  software development, outsourcing software development


[http://www.thepublish.com press release]
  Ogg does not know any specifics about the codec data except that each
press release, articles, business directory, ezines, classifieds, job search,business free b2b search advertising aerospace defense agriculture airlines automotive chemicals computers electronics semiconductors energy utilities
  logical bitstream belongs to a different codec, the data from the
  codec comes in order and has position markers (so-called "Granule
  positions").  Ogg does not have a concept of 'time': it only knows
  about sequentially increasing, unitless position markers. An
  application can only get temporal information through higher layers
  which have access to the codec APIs to assign and convert granule
  positions or time.


[http://www.ez-agents.com wholesale atv]
=== How does the Ogg packet number work ? ===
</div>
 
The Ogg bitstream does not store packet numbers in the bitstream.  Only page sequence numbers are stored.
 
libogg will count packets and give each Ogg packet a packet number.  Normally these are in sequence; when Ogg notices a discontinuity however (page sequence numbers don't match up (FIXME: is this actually in the code ?), or the lacing values don't match up) it will increment the page counter by 1, which thus shows up as a missing packet (see http://trac.xiph.org/cgi-bin/trac.cgi/file/trunk/ogg/src/framing.c, _packetout()).
 
== Player Implementation Questions ==
 
=== What use cases do I need to consider when writing a player ? ===
 
There are different ways in which an Ogg stream reaches your player.  Each of these ways has some specific restrictions and potential problems that your player needs to be able to deal with.  These are:
 
* the '''ideal''' case: a correctly muxed Ogg stream as a seekable file, with correct bos packets, header packets, and eos packets, time-correct muxing, and a continuous set of Ogg pages
* the '''lossless streaming''' case (e.g. HTTP streaming): you receive correct bos and header packets, and a string of Ogg packets in pages that are continuous, but start with a discontinuity.  The stream might or might not be seekable, and you do not get eos pages
* the '''saved from lossless streaming''' case: as above, but you can seek.  You still don't have eos pages
* the '''lossy streaming''' case (e.g. RTP streaming): some of the Ogg pages get lost in transmission. In the case of RTP, you actually may have less, or different, information to go on, since it is recommended that RTP packetizing is used instead of Ogg packetizing.  An HTTP stream could also be lossy, if the server for example decides that the client is not reading fast enough and drops a set of intermediary buffers.
* the '''no feedback''' case (e.g. satellite broadcasts): there is no way for the client to communicate with the server.  The client needs to get the header pages through other means, and then interpret the Ogg stream it receives.
 
[[Category:Ogg]]

Latest revision as of 08:08, 23 June 2016

This page combines questions related to all Xiph projects.

General Ogg Questions

What is a granulepos?

A granulepos (Granule Position) is a representation for a timestamp, on a scale specific to each codec.

Conrad Parker clarifies the definition of granulepos as "representing the presentation time for the last presentable data item in an Ogg packet."

Where is the granulepos stored in the bitstream ?

The positioning and length of granulepos data will vary from codec to codec, meaning that you'll have to look at the relevant codecs' specifications to see how they handle Granule Positions.

Quote from the Ogg RFC:

 Ogg does not know any specifics about the codec data except that each
 logical bitstream belongs to a different codec, the data from the
 codec comes in order and has position markers (so-called "Granule
 positions").  Ogg does not have a concept of 'time': it only knows
 about sequentially increasing, unitless position markers.  An
 application can only get temporal information through higher layers
 which have access to the codec APIs to assign and convert granule
 positions or time.

How does the Ogg packet number work ?

The Ogg bitstream does not store packet numbers in the bitstream. Only page sequence numbers are stored.

libogg will count packets and give each Ogg packet a packet number. Normally these are in sequence; when Ogg notices a discontinuity however (page sequence numbers don't match up (FIXME: is this actually in the code ?), or the lacing values don't match up) it will increment the page counter by 1, which thus shows up as a missing packet (see http://trac.xiph.org/cgi-bin/trac.cgi/file/trunk/ogg/src/framing.c, _packetout()).

Player Implementation Questions

What use cases do I need to consider when writing a player ?

There are different ways in which an Ogg stream reaches your player. Each of these ways has some specific restrictions and potential problems that your player needs to be able to deal with. These are:

  • the ideal case: a correctly muxed Ogg stream as a seekable file, with correct bos packets, header packets, and eos packets, time-correct muxing, and a continuous set of Ogg pages
  • the lossless streaming case (e.g. HTTP streaming): you receive correct bos and header packets, and a string of Ogg packets in pages that are continuous, but start with a discontinuity. The stream might or might not be seekable, and you do not get eos pages
  • the saved from lossless streaming case: as above, but you can seek. You still don't have eos pages
  • the lossy streaming case (e.g. RTP streaming): some of the Ogg pages get lost in transmission. In the case of RTP, you actually may have less, or different, information to go on, since it is recommended that RTP packetizing is used instead of Ogg packetizing. An HTTP stream could also be lossy, if the server for example decides that the client is not reading fast enough and drops a set of intermediary buffers.
  • the no feedback case (e.g. satellite broadcasts): there is no way for the client to communicate with the server. The client needs to get the header pages through other means, and then interpret the Ogg stream it receives.