[Ffmpeg-devel] Using avcodec.dll and avformat.dll means that output_example.c would not work?
Michel Bardiaux
mbardiaux
Mon Nov 28 10:58:58 CET 2005
Lars Blumberg wrote:
> Hello newsgroup!
>
> I am using ffmpeg functionality via the libraries "avcodec.dll" and
> "avformat.dll", which i have built before. To examine how to use both DLLs
> (in Delphi) I am translating the example code "output_example.c" given with
> the ffmpeg distribution.
>
> The first code which is run is "av_register_all" to register all necessary
> things. When I have a look into the implementation of this method, I see
> that "avcodec_register_all" is called there at first.
>
> But as you know, both methods are in different DLLs. That means, that
> "av_register_all" cannot call "avcodec_register_all".
Why?
> When I only call the
> first function I cannot use any codec. That's why I have to call
> "avcodec_register_all" by myself after calling "av_register_all".
>
> output_example.c:
>
>
> int main(int argc, char **argv)
> {
> const char *filename;
> AVOutputFormat *fmt;
> AVFormatContext *oc;
> AVStream *audio_st, *video_st;
> double audio_pts, video_pts;
> int i;
>
> /* initialize libavcodec, and register all codecs and formats */
> av_register_all();
>
> if (argc != 2) {
> printf("usage: %s output_file\n"
> "API example program to output a media file with
> libavformat.\n"
> "The output format is automatically guessed according to the
> file extension.\n"
> "Raw images can also be output by using '%%d' in the
> filename\n"
> "\n", argv[0]);
> exit(1);
> }
> ....
> <<<<<
>
> My Delphi variant:
> (Don't worry about the data type names, I introduces them to have likely c++
> names)
>
>
> function main(filename: PChar): T_int;
> var
> fmt: PAVOutputFormat;
> oc: PAVFormatContext;
> audio_st, video_st: PAVStream;
> audio_pts, video_pts: T_double;
> i: T_int;
> begin
> // initialize libavcodec, and register all codecs and formats
> av_register_all;
> avcodec_register_all;
> ....
> <<<<<
>
> I now have the fears, that are any problems, too, when using both DLLs.
> Because any code assumes, that other code can be called which isn't located
> in the same library.
>
> Is that right or is that the only thing where I have to be careful. Thanks
> for everyone who gives help!
>
> Best regards
>
> Lars
>
--
Michel Bardiaux
R&D Director
T +32 [0] 2 790 29 41
F +32 [0] 2 790 29 02
E mailto:mbardiaux at mediaxim.be
Mediaxim NV/SA
Vorstlaan 191 Boulevard du Souverain
Brussel 1160 Bruxelles
http://www.mediaxim.com/
More information about the ffmpeg-devel
mailing list