You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdemultimedia/mpeglib/lib/frame
Timothy Pearson f59dfa0865
Revert "Rename a number of old tq methods that are no longer tq specific"
13 years ago
..
IOFrameQueue.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
IOFrameQueue.h TQt4 port kdemultimedia 13 years ago
Makefile.am Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
README rename the following methods: 13 years ago
audioFrame.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
audioFrame.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
audioFrameQueue.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
audioFrameQueue.h TQt4 port kdemultimedia 13 years ago
floatFrame.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
floatFrame.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
frame.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
frame.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
frameQueue.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
frameQueue.h TQt4 port kdemultimedia 13 years ago
framer.cpp Revert "Rename a number of old tq methods that are no longer tq specific" 13 years ago
framer.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
pcmFrame.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
pcmFrame.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
rawDataBuffer.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
rawDataBuffer.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
rawFrame.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
rawFrame.h Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago

README



Frames
======


Frames are needed for passing data between decoders around.
A decoder gets an mpeg audio encoded frame as input and
writes data to an audioFrame (pcm/float)

                            frame
                              |
                         audioFrame
                        /          \
                    pcmFrame      floatFrame


FrameQueues
===========

FrameQueues are needed for storing some frames. (For example
you store 100 pre-decoded pcmFrames.)
A FrameQueue is a queue, simply not more.

IOFrameQueues
=============

IOFrameQueues deal with the problem, that you first start
with an empty  FrameQueue (this is a FrameQueue which contains
prealloceated data, but the data is empty (eg:all pcm samples zero)
Only after converting an "empty" Frame by a decoder (mp3decoder)
the frame if "full" (== Frame with data)
So: IOFrameQueues mark frames with 

i)  empty
ii) data

You can get an empty Frame from the empty-frame-queue and
then enqueue it in the data-frame-queue.
After the frame was used (played) we dequeue it from the
data queue and put them back in the empty queue.
You can see IOFrameQueues as a ringbuffer.
(get free space. write to it. read data. mark space as free,....)


                   FrameQueue
                       |
                   IOFrameQueue
                  /
            audioFrameQueue


AudioFrameQueue
===============

A IOFrameQueue, which allows converting "dataFrames back to continous
stream".
What is this?
Lets say an application wants only 20 byte from a dataFrame which
contains 3KB of data?
There must be some mechanism to read less or more data from the
queue. And the data should be written to a continus memory
segment.
AudioFrameQueue deals with this problem.You can read data from
the queue to a given pointer location.