-
Notifications
You must be signed in to change notification settings - Fork 929
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hey, can I get some help, have no clue how this works. #74
Comments
// for each frame we take the Y plane (think of a huge "2d" array containing all the pixels)
// and the linesize (wrap - size in bytes of each picture line) if we use a byte per pixel then it's equals to width
// , width, height, and the file name
save_gray_frame(pFrame->data[0], pFrame->linesize[0], pFrame->width, pFrame->height, frame_filename);
// we must write the minimal header (providing resolution and magical string)
fprintf(f, "P5\n%d %d\n%d\n", xsize, ysize, 255);
// and finally we just need to write to the file
// since we write line by line then what we do is just to use the ysize iteration
// (one increment for i, up to the frame height((yssize))
// FOR THAT matter, we use pointer arithmetics and
for (i = 0; i < ysize; i++)
// fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
// a pointer (updated/calculated each line) of size 1 but
// writes xsize items of data on file f
fwrite(buf + i * wrap, 1, xsize, f); Anyway, to sum up,
links |
if you still have doubts, feel comfortable to ask. |
Does the data stream itself get multiplied? I know that it doesn't, but why does that work? Thanks btw, I appreciate this a lot. I'm new to C++, this is the first library that I'm learning haha. |
No, think of # an oversimplification of a memory
memory = []
memory[0x000] = 0xFF # random information on memory
memory[0x001] = 0x2B # random information on memory
# ....
memory[0xFC1] = 0x03 # the data stream starts here
memory[0xFC2] = 0x3A
memory[0xFC3] = 0x19
memory[0xFC4] = 0xFB
buff = 0xFC1
# when we do any arithmetic it changes the address
|
Thanks a ton, I get it now :) |
fwrite(buf + i * xsize, 1, xsize, f);
buf + i * xsize
How do you get the data stream to do that? Like, what is it doing? Where do you get that expression from?
The text was updated successfully, but these errors were encountered: