I recently upgraded my distro to Fedora 21 from Fedora 17. On 17 my cabrio was working fine although I think it was last built on Fedora 14 and the binary simply used on 17. Today I tried to run it on the Fedora 21 release and got errors about loading shared libraries. I decided a recompile on the latest version was in order.
I got the latest cabrio and issued a make.
Firstly I got an error about unknown AVCODEC_MAX_AUDIO_FRAME_SIZE, after googleing I found that this definition was dropped in the latest ffmpeg dev libraries so I added #define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000 to video.c
video.o: In function `video_init':
/home/anthony/cabrio/cabrio-0.8.2/video.c:84: undefined reference to `url_set_interrupt_cb'
video.o: In function `video_close':
/home/anthony/cabrio/cabrio-0.8.2/video.c:120: undefined reference to `av_close_input_file'
video.o: In function `video_open':
/home/anthony/cabrio/cabrio-0.8.2/video.c:330: undefined reference to `av_open_input_file'
/home/anthony/cabrio/cabrio-0.8.2/video.c:335: undefined reference to `av_find_stream_info'
/home/anthony/cabrio/cabrio-0.8.2/video.c:362: undefined reference to `avcodec_open'
/home/anthony/cabrio/cabrio-0.8.2/video.c:385: undefined reference to `avcodec_open'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clReleaseMemObject@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clReleaseCommandQueue@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clCreateBuffer@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clBuildProgram@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clSetKernelArg@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clGetDeviceIDs@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clEnqueueUnmapMemObject@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clGetPlatformInfo@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clCreateProgramWithSource@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clGetDeviceInfo@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clReleaseContext@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clCreateContextFromType@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clCreateCommandQueue@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clEnqueueMapBuffer@OPENCL_1.0'
/usr/lib/gcc/i686-redhat-linux/4.9.2/../../../libavutil.so: undefined reference to `clGetPlatformIDs@OPENCL_1.0'
collect2: error: ld returned 1 exit status
Makefile:15: recipe for target 'cabrio' failed
make: *** [cabrio] Error 1
I can only assume that a lot of the libraries that Cabrio uses have moved on since the last release.