[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