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
Slávek Banko efcdd88925
Initial cmake conversion
8 years ago
..
CMakeLists.txt Initial cmake conversion 8 years ago
IOFrameQueue.cpp Copy the KDE 3.5 branch to branches/trinity for new KDE 3.5 features. 15 years ago
IOFrameQueue.h Fix inadvertent "TQ" changes. 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 Fix inadvertent "TQ" changes. 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 Fix inadvertent "TQ" changes. 13 years ago
framer.cpp Remove additional unneeded tq method conversions 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.