dyne / FreeJ

Free Vision Mixer
https://dyne.org/software/freej
GNU General Public License v3.0
40 stars 8 forks source link

Make compile error on Fedora 21 #3

Closed hlolli closed 8 years ago

hlolli commented 9 years ago

I have ffmpeg and AV libraries perfectly installed, but when compiling freeJ I get this error:

video_layer.cpp: In member function 'virtual bool VideoLayer::open(const char*)':
video_layer.cpp:143:3: error: 'AVFormatParameters' was not declared in this scope
   AVFormatParameters avp, *av_format_par = NULL;
   ^
video_layer.cpp:144:3: error: 'av_format_par' was not declared in this scope
   av_format_par = &avp;
   ^
video_layer.cpp:144:20: error: 'avp' was not declared in this scope
   av_format_par = &avp;
                    ^
video_layer.cpp:180:28: error: 'url_set_interrupt_cb' was not declared in this scope
   url_set_interrupt_cb(NULL);
                            ^
video_layer.cpp:186:87: error: 'av_open_input_file' was not declared in this scope
   err = av_open_input_file (&avformat_context, file, av_input_format, 0, av_format_par);
                                                                                       ^
video_layer.cpp:196:45: error: 'av_find_stream_info' was not declared in this scope
   err = av_find_stream_info(avformat_context);
                                             ^
video_layer.cpp:231:52: error: 'avcodec_open' was not declared in this scope
       if (avcodec_open(video_codec_ctx, video_codec) < 0) {
                                                    ^
video_layer.cpp:274:52: error: 'avcodec_open' was not declared in this scope
       if (avcodec_open(audio_codec_ctx, audio_codec) < 0) {
                                                    ^
video_layer.cpp:280:31: error: 'AVCODEC_MAX_AUDIO_FRAME_SIZE' was not declared in this scope
  audio_buf = (uint8_t*)calloc(AVCODEC_MAX_AUDIO_FRAME_SIZE, sizeof(int16_t));
                               ^
video_layer.cpp: In member function 'virtual void* VideoLayer::feed()':
video_layer.cpp:530:33: error: 'AVCODEC_MAX_AUDIO_FRAME_SIZE' was not declared in this scope
    long unsigned max_buf = ceil(AVCODEC_MAX_AUDIO_FRAME_SIZE * m_ResampleRatio * audio_channels);
                                 ^
video_layer.cpp: In member function 'int VideoLayer::decode_audio_packet(int*)':
video_layer.cpp:596:14: error: 'AVCODEC_MAX_AUDIO_FRAME_SIZE' was not declared in this scope
   datasize = AVCODEC_MAX_AUDIO_FRAME_SIZE; //+ FF_INPUT_BUFFER_PADDING_SIZE;
              ^
video_layer.cpp:601:9: warning: 'int avcodec_decode_audio3(AVCodecContext*, int16_t*, int*, AVPacket*)' is deprecated (declared at /usr/include/ffmpeg/libavcodec/avcodec.h:4003) [-Wdeprecated-declarations]
   res = avcodec_decode_audio3(audio_codec_ctx, (int16_t *)audio_buf,
         ^
video_layer.cpp:602:25: warning: 'int avcodec_decode_audio3(AVCodecContext*, int16_t*, int*, AVPacket*)' is deprecated (declared at /usr/include/ffmpeg/libavcodec/avcodec.h:4003) [-Wdeprecated-declarations]
          &datasize, &pkt);
                         ^
video_layer.cpp: In member function 'int VideoLayer::decode_video_packet(int*)':
video_layer.cpp:631:2: warning: 'void avcodec_get_frame_defaults(AVFrame*)' is deprecated (declared at /usr/include/ffmpeg/libavcodec/avcodec.h:3555) [-Wdeprecated-declarations]
  avcodec_get_frame_defaults (&av_frame);
  ^
video_layer.cpp:631:39: warning: 'void avcodec_get_frame_defaults(AVFrame*)' is deprecated (declared at /usr/include/ffmpeg/libavcodec/avcodec.h:3555) [-Wdeprecated-declarations]
  avcodec_get_frame_defaults (&av_frame);
                                       ^
video_layer.cpp:650:36: error: 'av_gettime' was not declared in this scope
  video_current_pts_time=av_gettime();
                                    ^
video_layer.cpp:671:29: error: 'FF_B_TYPE' was not declared in this scope
   if (av_frame.pict_type == FF_B_TYPE)
                             ^
video_layer.cpp:673:34: error: 'FF_I_TYPE' was not declared in this scope
   else if (av_frame.pict_type == FF_I_TYPE)
                                  ^
video_layer.cpp: In member function 'virtual void VideoLayer::close()':
video_layer.cpp:710:41: error: 'av_close_input_file' was not declared in this scope
     av_close_input_file(avformat_context);
                                         ^
video_layer.cpp: In member function 'double VideoLayer::get_master_clock()':
video_layer.cpp:921:29: error: 'av_gettime' was not declared in this scope
  double delta = (av_gettime() - video_current_pts_time) / 1000000.0;
                             ^
video_layer.cpp: In member function 'void VideoLayer::deinterlace(AVPicture*)':
video_layer.cpp:953:6: warning: 'int avpicture_deinterlace(AVPicture*, const AVPicture*, AVPixelFormat, int, int)' is deprecated (declared at /usr/include/ffmpeg/libavcodec/avcodec.h:4721) [-Wdeprecated-declarations]
   if(avpicture_deinterlace(picture2, picture,
      ^
video_layer.cpp:956:30: warning: 'int avpicture_deinterlace(AVPicture*, const AVPicture*, AVPixelFormat, int, int)' is deprecated (declared at /usr/include/ffmpeg/libavcodec/avcodec.h:4721) [-Wdeprecated-declarations]
       video_codec_ctx->height) < 0) {
                              ^
Makefile:871: recipe for target 'video_layer.lo' failed
make[3]: *** [video_layer.lo] Error 1
make[3]: Leaving directory '/home/hlolli/Programs/freej/src'
Makefile:891: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/hlolli/Programs/freej/src'
Makefile:608: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/hlolli/Programs/freej'
Makefile:493: recipe for target 'all' failed
make: *** [all] Error 2
jaromil commented 8 years ago

I have removed the video_layer for now, broken due to constant changes to the FFMpeg API.

Will eventually rewrite one and include ffmpeg as static again.