[theora] More information on GSoC project
saulgoode at flashingtwelve.brickfilms.com
saulgoode at flashingtwelve.brickfilms.com
Mon Apr 7 01:10:26 PDT 2008
Quoting Ribamar Santarosa de Sousa <ribamar.santarosa at gmail.com>:
> How does the data retrieved from GIMP looks like? Does the plugin
> receive simply N frames with widthXheight 8-bit rgb pixels only
> waiting to be encoded?
Each frame of video will be a separate image file (they are named in a
manner such as \"file_0001.xcf\", \"file_0002.xcf\", etc) and will
have to be loaded and processed sequentially. Since an image may be
composed of several layers and masks, it is necessary to create a new,
temporary layer which contains the composited result.
A plug-in can access the data in this layer either as single pixels,
single rows, single colums, or as rectangular regions. The pixels may
consist of 1 to 4 bytes, depending upon whether the data is grayscale,
grayscale+alpha, RGB, or RGB+A.
Since the Theora page may require that the layer be padded to 16-pixel
boundaries with blank pixels, fetching the data row-by-row would be
the best approach -- converting to Y\'CrCb as you go.
Once the entire frame is processed, it will be necessary to scale the
chroma buffers to half their original widths and heights (YUV420
format).
If you\'ve used GIMP and are concerned that this would be too slow
since loading an image itself can take a second or two, it should be
noted that the vast majority of this load time is spent creating the
menus and display for the image; a task which is not necessary for our
purposes.
===================================================================
Quoting Nuwan Millawitiya <millawitiya at gmail.com>:
> I downloaded the code for GAP. Can you tell me the effective path
> (which files to be understand in much more details) to get a good idea
> about the flow of GAP.
I would advise examining the source for encoding AVIs
(http://svn.gnome.org/viewvc/gimp-gap/branches/gap-2-4/vid_enc_avi/)
and mirroring that functionality with Theora. There is a limited
amount of information in the docs directory but it is presented more
from the users point of view
(http://svn.gnome.org/viewvc/gimp-gap/branches/gap-2-4/docs/reference/txt/).
If you define a GAP_DEBUG system variable when invoking GIMP (in BASH
this would be \"GAP_DEBUG=1 gimp\"), you will be provided a lot of
technical details in the console as you run GAP commands. What OS are
you using?
I will try to compose a more complete description of the other
components sometime this week.
More information about the theora
mailing list