![]() |
Miam-Player
0.8.0
A nice music player
|
An implementation of Ogg pages. More...
#include <oggpage.h>
Public Types | |
enum | ContainsPacketFlags { DoesNotContainPacket = 0x0000, CompletePacket = 0x0001, BeginsWithPacket = 0x0002, EndsWithPacket = 0x0004 } |
When checking to see if a page contains a given packet this set of flags represents the possible values for that packets status in the page. More... | |
enum | PaginationStrategy { SinglePagePerGroup, Repaginate } |
Defines a strategy for pagination, or grouping pages into Ogg packets, for use with pagination methods. More... | |
Public Member Functions | |
Page (File *file, long pageOffset) | |
Read an Ogg page from the file at the position pageOffset. More... | |
virtual | ~Page () |
long | fileOffset () const |
Returns the page's position within the file (in bytes). More... | |
const PageHeader * | header () const |
Returns a pointer to the header for this page. More... | |
int | pageSequenceNumber () const |
Returns the index of the page within the Ogg stream. More... | |
void | setPageSequenceNumber (int sequenceNumber) |
Sets the page's position in the stream to sequenceNumber. More... | |
Page * | getCopyWithNewPageSequenceNumber (int sequenceNumber) |
Returns a copy of the page with sequenceNumber set as sequence number. More... | |
int | firstPacketIndex () const |
Returns the index of the first packet wholly or partially contained in this page. More... | |
void | setFirstPacketIndex (int index) |
Sets the index of the first packet in the page. More... | |
ContainsPacketFlags | containsPacket (int index) const |
Checks to see if the specified packet is contained in the current page. More... | |
unsigned int | packetCount () const |
Returns the number of packets (whole or partial) in this page. More... | |
ByteVectorList | packets () const |
Returns a list of the packets in this page. More... | |
int | size () const |
Returns the size of the page in bytes. More... | |
ByteVector | render () const |
Static Public Member Functions | |
static List< Page * > | paginate (const ByteVectorList &packets, PaginationStrategy strategy, unsigned int streamSerialNumber, int firstPage, bool firstPacketContinued=false, bool lastPacketCompleted=true, bool containsLastPacket=false) |
Pack packets into Ogg pages using the strategy for pagination. More... | |
Protected Member Functions | |
Page (const ByteVectorList &packets, unsigned int streamSerialNumber, int pageNumber, bool firstPacketContinued=false, bool lastPacketCompleted=true, bool containsLastPacket=false) | |
Creates an Ogg packet based on the data in packets. More... | |
An implementation of Ogg pages.
This is an implementation of the pages that make up an Ogg stream. This handles parsing pages and breaking them down into packets and handles the details of packets spanning multiple pages and pages that contain multiple packets.
In most Xiph.org formats the comments are found in the first few packets, this however is a reasonably complete implementation of Ogg pages that could potentially be useful for non-meta data purposes.
When checking to see if a page contains a given packet this set of flags represents the possible values for that packets status in the page.
Defines a strategy for pagination, or grouping pages into Ogg packets, for use with pagination methods.
Enumerator | |
---|---|
SinglePagePerGroup |
Attempt to put the specified set of packets into a single Ogg packet. If the sum of the packet data is greater than will fit into a single Ogg page – 65280 bytes – this will fall back to repagination using the recommended page sizes. |
Repaginate |
Split the packet or group of packets into pages that conform to the sizes recommended in the Ogg standard. |
TagLib::Ogg::Page::Page | ( | File * | file, |
long | pageOffset | ||
) |
Read an Ogg page from the file at the position pageOffset.
|
virtual |
|
protected |
Creates an Ogg packet based on the data in packets.
The page number for each page will be set to pageNumber.
ContainsPacketFlags TagLib::Ogg::Page::containsPacket | ( | int | index | ) | const |
Checks to see if the specified packet is contained in the current page.
long TagLib::Ogg::Page::fileOffset | ( | ) | const |
Returns the page's position within the file (in bytes).
int TagLib::Ogg::Page::firstPacketIndex | ( | ) | const |
Returns the index of the first packet wholly or partially contained in this page.
Page* TagLib::Ogg::Page::getCopyWithNewPageSequenceNumber | ( | int | sequenceNumber | ) |
Returns a copy of the page with sequenceNumber set as sequence number.
const PageHeader* TagLib::Ogg::Page::header | ( | ) | const |
Returns a pointer to the header for this page.
This pointer will become invalid when the page is deleted.
unsigned int TagLib::Ogg::Page::packetCount | ( | ) | const |
Returns the number of packets (whole or partial) in this page.
ByteVectorList TagLib::Ogg::Page::packets | ( | ) | const |
Returns a list of the packets in this page.
int TagLib::Ogg::Page::pageSequenceNumber | ( | ) | const |
Returns the index of the page within the Ogg stream.
This helps make it possible to determine if pages have been lost.
|
static |
Pack packets into Ogg pages using the strategy for pagination.
The page number indicator inside of the rendered packets will start with firstPage and be incremented for each page rendered. containsLastPacket should be set to true if packets contains the last page in the stream and will set the appropriate flag in the last rendered Ogg page's header. streamSerialNumber should be set to the serial number for this stream.
ByteVector TagLib::Ogg::Page::render | ( | ) | const |
void TagLib::Ogg::Page::setFirstPacketIndex | ( | int | index | ) |
Sets the index of the first packet in the page.
void TagLib::Ogg::Page::setPageSequenceNumber | ( | int | sequenceNumber | ) |
Sets the page's position in the stream to sequenceNumber.
int TagLib::Ogg::Page::size | ( | ) | const |
Returns the size of the page in bytes.