[Ffmpeg-devel] how to compile output_example.c (fwd)
Turbo
sandeep_kr
Sun Aug 6 17:15:18 CEST 2006
Hi,
I have found a workaround.
I have decided not to use the new swscale functions and stick with the old
img_convert function. The program is compiling succesfully now.
But when I ran it is displayed "[mpeg @ 0x83cf008]buffer underflow"
hundreds of times.
So, after checking past archives I found that (AVFormatContext
*)ac->max_delay has to be set. I set that to 0.7.
But still that message is coming but only around 20 times.
However the ouput video file plays fine in mplayer.
Is there any problem? or should I ignore those buffer underflow messages?
--
I do know everything, just not all at once. It's a virtual memory problem.
Home Page : http://students.iiit.ac.in/~sandeep_kr
Blog : http://sandy007smarty.blogspot.com
---------- Forwarded message ----------
Date: Sun, 6 Aug 2006 16:38:40 +0530 (IST)
From: Turbo <sandeep_kr at students.iiit.net>
To: FFMpeg development discussions and patches <ffmpeg-devel at mplayerhq.hu>
Subject: Re: [Ffmpeg-devel] how to compile output_example.c
Thanx for the quick reply.
On Sun, 6 Aug 2006, Luca Abeni wrote:
> Hello,
>
> On Sun, 2006-08-06 at 15:08 +0530, Turbo wrote:
>> The ffmpeg installation automatically compiles output_example.c and
>> generates the executable output_example.
>> But I have made a few changes into the source code and want to compile it
>> standalone. How to do it?
> does "make output_example" work?
It works on the original output_example.c present in cvs.
I think i will have to clarify a few things. I have tried converting the
output_example.c code into a simpler API using classes. I had this API working
very well with ffmpeg-0.4.9pre1-release. But now I tried changing it to make it
work with the latest CVS version. I incorporated some of the easy changes like
removing & operator from some places and changing . to -> and chamging
frame_rate to time_base.den, etc.
Line 337 to 347 of the latest output_example.c were not present in old one. I
added these lines. they are:-
337:if (img_convert_ctx == NULL) {
338: img_convert_ctx = sws_getContext(c->width, c->height,
339: PIX_FMT_YUV420P,
340: c->width, c->height,
341: c->pix_fmt,
342: sws_flags, NULL, NULL,
NULL);
343: if (img_convert_ctx == NULL) {
344: fprintf(stderr, "Cannot initialize the conversion
context\n");
345: exit(1);
346: }
347: }
Also line 349 is now :-
sws_scale(img_convert_ctx, tmp_picture->data, tmp_picture->linesize, 0,
c->height, picture->data, picture->linesize);
instead of the old one where we had a call to img_convert()
I incorporated all these changes. But then the compiler is reporting
sws_getContext and sws_scale as undefined while linking.
My API is in videoIO.h and videoIO.cpp and my main program is in
example_copy.cpp
Below is my Makefile:-
GCC = g++ -Wall -g
INCLUDES = -I /usr/local/include/ffmpeg/
LIBS = -lavformat -lavcodec -lavutil -lm -lz -ldl
all : example_copy
example_copy : example_copy.cpp videoIO.o
$(GCC) -o example_copy example_copy.cpp videoIO.o $(INCLUDES) $(LIBS)
videoIO.o : videoIO.cpp videoIO.h
$(GCC) -c -o videoIO.o videoIO.cpp $(INCLUDES)
>
>> I tried doing:-
>> g++ -Wall -g -o output_example output_example.cpp -I
>> /usr/local/include/ffmpeg/ -lavformat -lavcodec
>> -lavutil -lm -lz -ldl
> Why are you using g++ instead of gcc? Which kind of changes did you
> apply to the code?
Explained above
>
>> But I am getting these errors:-
>> undefined reference to `sws_getContext(int, int, int, int, int, int, int,
>> void*, void*, double*)'
>> and
>> undefined reference to `sws_scale(SwsContext*, unsigned char**, int*, int,
>> int, unsigned char**, int*)'
> Are you sure that the avcodec, avformat, and avutil libraries that you
> are trying to link are really the latest one from svn? (maybe they are
> coming from a previous installation?)
I think I am using the latest svn. How to make sure?
Should I attach my code? Its almost same as output_example.c and you wouldn't
have to spend much time on it.
--
I do know everything, just not all at once. It's a virtual memory problem.
Home Page : http://students.iiit.ac.in/~sandeep_kr
Blog : http://sandy007smarty.blogspot.com
More information about the ffmpeg-devel
mailing list