[x264-devel] Re: x264 library starting point

Michigaki michigaki at gmail.com
Wed Dec 6 07:44:23 CET 2006


Cool, this will really help us a lot =D And yes, it really is a steep
learning curve for new developers such as we. We do plan to make a
small documentation of it, well, at least the functions that will be
critical to our thesis. Now that i look at the graph you gave me,
we're barely at the entrance XD

After this, maybe we'll go and ask more specific questions on the
functions themselves.

Thank you so much again.Cheers!

On 12/6/06, Alex Izvorski <aizvorski at gmail.com> wrote:
> On Wed, 2006-12-06 at 12:12 +0800, Michigaki wrote:
> > I see. Is there a way to see how they call these functions? We wanted
> > to see the flow of function calls in the library. Actually, we want to
> > know what a certain piece of code does (which code in particular) and
> > its purpose in the library (this we can get from the link Guillaume
> > gave us).
> >
> > I would also like to know if there are any available file listings
> > online which include file descriptions and such?
> >
> > Thanks again.
>
> This call graph may be of interest:
> http://www.geocities.com/x264hack/x264-callgraph-sm.png
>
> It is from a very old version of x264, much has changed since.  Perhaps
> I can make an updated version.
>
> Creating documentation with doxygen also produces good results, even
> though there aren't (many/any?) doxygen-specific comments.  Make sure to
> make it with graphviz.  I can post my doxygen config file if you want.
> I would like to add proper doxygen-style comments to everything,
> starting with data structures, someday.
>
> Ultimately, the best documentation right now is the source itself.  If
> you would like more, you may have to write it ;)  I think more
> documentation would be awesome, so I am 100% behind that.  I imagine the
> learning curve for a new developer is pretty steep.
>
> You may get a more useful response if you ask specific questions that
> show you have actually gone looking already... more like "what is
> argument X to function Y used for?" than "how to call these functions?".
>
> I suppose a "quick start" intro to using x264 might be helpful to a lot
> of people.  This is purely from the point of view of someone writing
> code that uses the library, it doesn't touch on how it works.  Also it
> needs more initialization and error checking ;) and probably won't run
> as written.  This is it in a nutshell:
>
> --- begin code snippet ---
>
> x264_param_t* param = (x264_param_t*)malloc(sizeof(x264_param_t));
> char* key; char* value;
> while (1)
> {
>     // multiple calls until every parameter you want is configured
>     x264_param_parse(param, key, value);
> }
> x264_t* h = x264_encoder_open(param);
>
> x264_picture_t* pic = (x264_picture_t*)malloc(sizeof(x264_picture_t));
> x264_picture_alloc(pic, X264_CSP_I420, width, height);
> x264_picture_t* pic_out;
>
> x264_nal_t* nals;
> int num_nals;
>
> while (1)
> {
>     // copy image data to pic->img.plane[]
>     x264_encoder_encode(h, &nals, &num_nals, pic, pic_out);
>
>     // get compressed data
>     for (i = 0; i < num_nals; i++)
>     {
>         uint8_t* data; // need to allocate
>         int data_len = x264_nal_encode(data, &data_len_max, 1, &nal[i]);
>         // do something with compressed data - write to file, etc.
>     }
> }
>
> --- end code snippet ---
>
> Comments and suggestions for improvement welcome ;)
>
> Regards,
> --Alex
>
>
> --
> This is the x264-devel mailing-list
> To unsubscribe, go to: http://developers.videolan.org/lists.html
>
>

-- 
This is the x264-devel mailing-list
To unsubscribe, go to: http://developers.videolan.org/lists.html



More information about the x264-devel mailing list