Hi Aysun,
It seems that for some reason you don't have enough memory available in
continuous memory pool. There is already a considerable amount of
Memory_Contigallocs in videoThrFxn(), maybe try to decrease it's size of
allocation which is D1_FRAME_SIZE by default.
Concerning framesize and capturesize, you should probably also add
parameters to the command line.
Best,
Aysun Tasyapi wrote:
Hi Adam
I've configured parseArgs(...) function as you said. And then i've
opened yuv input file in void *videoThrFxn(void *arg)" .
I've disabled some function.
I 've allocated to buffer (for my input yuv file) with
Memory_Contigalloc. Then it gave a cmem error, memorymap error.Shoud
i change CMEM?
Should i setup framesize and capturesize values as manuel?
Best Regards..
Hi again,
I've configured parseArgs(...) function as you said. And then i've
opened yuv input file in void *videoThrFxn(void *arg)" .
I've disabled some function.
I 've allocated to buffer (for my input yuv file) with
Memory_Contigalloc. Then it gave a cmem error, memorymap error.Shoud
i change CMEM?
Should i setup framesize and capturesize values as manuel?
Best Regards..
2007/2/21, Adam Dawidziuk <[EMAIL PROTECTED]
<mailto:[EMAIL PROTECTED]>>:
Aysun Tasyapi wrote:
> I am trying to give a yuv file(4.2.2) to encode demo instead
of using
> camera.
>
> But i don't know what i must change. What must i change in code?
> If you know Would you help me? Would you explain please?
Easy:
1. Add new parameter to the command options, e.g. -f | --file
Edit main.c
static void parseArgs(...)
{
const struct shortOptions -> add "f:" at the beginning/end of
the string
const struct longOptions -> add: {"file", required_argument, NULL,
'f'} at the beginning/end of the table (must match with shortOptions
in the switch statement (which checks for valid params add:
switch(c) {
case: 'f': (do your yuv file checks here, save the name,
etc.)
}
You can really skip this step and hardcode filename in the
source, w/e.
2. Edit video.c
in "void *videoThrFxn(void *arg)" add the following:
a) open the desired file
b) in "while (!gblGetQuit()) {" loop find all occurrences to
ioctl(..).
Ioctl is used to exchange buffers with the v4l driver. Comment
out these
sections.
Instead of getting a framebuffer from the driver (first ioctl in
while()
loop) do reading the next frame from file (you've previously
opened).
You should read frames from file to some kind of buffer, which
you can
allocate anywhere before while() loop.
You should also make this frame visible as an input buffer to the
encoder, you can do this by replacing:
e.frameBuffer = vidBufs[v4l2buf.index].start;
with
e.frameBuffer = your_buffer_with_a_raw_frame;
(NOTE: you can leave ioctl's where they are, and just don't use the
buffers returned by them, instead use the buffer read from the
file, w/e)
And that's it. Of course you have to handle end of file
conditions, etc.
Best,
--
Adam Dawidziuk
Sentivision
--
Adam Dawidziuk
Sentivision
_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source