DeaDBeeF-Player / deadbeef

DeaDBeeF Player
https://deadbeef.sourceforge.io/
Other
1.62k stars 176 forks source link

Doesn't build with ffmpeg 0.11 #714

Closed Oleksiy-Yakovenko closed 9 years ago

Oleksiy-Yakovenko commented 9 years ago

Original issue 812 created by Alexey-Yakovenko on 2012-05-29T12:48:50.000Z:

0.5.4 doens't build under Debian unstable with ffmpeg 0.11

See below the build output.

Christian

ffmpeg.c: In function 'ffmpeg_read_metadata_internal': ffmpeg.c:457:5: error: unknown type name 'AVMetadata' ffmpeg.c:457:22: warning: initialization from incompatible pointer type [enabled by default] ffmpeg.c:460:9: error: unknown type name 'AVMetadataTag' ffmpeg.c:462:13: warning: implicit declaration of function 'av_metadata_get' [-Wimplicit-function-declaration] ffmpeg.c:462:53: error: 'AV_METADATA_DONT_STRDUP_KEY' undeclared (first use in this function) ffmpeg.c:462:53: note: each undeclared identifier is reported only once for each function it appears in ffmpeg.c:462:83: error: 'AV_METADATA_DONT_STRDUP_VAL' undeclared (first use in this function) ffmpeg.c:464:60: error: request for member 'value' in something not a structure or union ffmpeg.c: In function 'ffmpeg_insert': ffmpeg.c:504:5: warning: 'av_find_stream_info' is deprecated (declared at /usr/include/libavformat/avformat.h:1357) [-Wdeprecated-declarations] ffmpeg.c:526:9: warning: 'av_close_input_file' is deprecated (declared at /usr/include/libavformat/avformat.h:1533) [-Wdeprecated-declarations] ffmpeg.c:532:5: warning: 'avcodec_open' is deprecated (declared at /usr/include/libavcodec/avcodec.h:3380) [-Wdeprecated-declarations] ffmpeg.c:534:9: warning: 'av_close_input_file' is deprecated (declared at /usr/include/libavformat/avformat.h:1533) [-Wdeprecated-declarations] ffmpeg.c:588:5: warning: 'av_close_input_file' is deprecated (declared at /usr/include/libavformat/avformat.h:1533) [-Wdeprecated-declarations] ffmpeg.c: At top level: ffmpeg.c:605:17: error: unknown type name 'URLContext' ffmpeg.c:630:17: error: unknown type name 'URLContext' ffmpeg.c:638:18: error: unknown type name 'URLContext' ffmpeg.c:644:17: error: unknown type name 'URLContext' ffmpeg.c:662:18: error: unknown type name 'URLContext' ffmpeg.c:669:1: error: unknown type name 'URLProtocol' ffmpeg.c:670:5: error: field name not in record or union initializer ffmpeg.c:670:5: error: (near initialization for 'vfswrapper') ffmpeg.c:670:5: warning: initialization makes integer from pointer without a cast [enabled by default] ffmpeg.c:670:5: warning: (near initialization for 'vfswrapper') [enabled by default] ffmpeg.c:671:5: error: field name not in record or union initializer ffmpeg.c:671:5: error: (near initialization for 'vfswrapper') ffmpeg.c:671:17: error: 'ffmpeg_vfs_open' undeclared here (not in a function) ffmpeg.c:671:5: warning: excess elements in scalar initializer [enabled by default] ffmpeg.c:671:5: warning: (near initialization for 'vfswrapper') [enabled by default] ffmpeg.c:672:5: error: field name not in record or union initializer ffmpeg.c:672:5: error: (near initialization for 'vfswrapper') ffmpeg.c:672:17: error: 'ffmpeg_vfs_read' undeclared here (not in a function) ffmpeg.c:672:5: warning: excess elements in scalar initializer [enabled by default] ffmpeg.c:672:5: warning: (near initialization for 'vfswrapper') [enabled by default] ffmpeg.c:673:5: error: field name not in record or union initializer ffmpeg.c:673:5: error: (near initialization for 'vfswrapper') ffmpeg.c:673:18: error: 'ffmpeg_vfs_write' undeclared here (not in a function) ffmpeg.c:673:5: warning: excess elements in scalar initializer [enabled by default] ffmpeg.c:673:5: warning: (near initialization for 'vfswrapper') [enabled by default] ffmpeg.c:674:5: error: field name not in record or union initializer ffmpeg.c:674:5: error: (near initialization for 'vfswrapper') ffmpeg.c:674:17: error: 'ffmpeg_vfs_seek' undeclared here (not in a function) ffmpeg.c:674:5: warning: excess elements in scalar initializer [enabled by default] ffmpeg.c:674:5: warning: (near initialization for 'vfswrapper') [enabled by default] ffmpeg.c:675:5: error: field name not in record or union initializer ffmpeg.c:675:5: error: (near initialization for 'vfswrapper') ffmpeg.c:675:18: error: 'ffmpeg_vfs_close' undeclared here (not in a function)

Oleksiy-Yakovenko commented 9 years ago

Comment #1 originally posted by Alexey-Yakovenko on 2012-05-29T12:58:53.000Z:

it's not possible to make deadbeef 0.5.4 to build with ffmpeg-0.11, because the problem is not in deadbeef, but in ffmpeg breaking their APIs.

you have 4 options

  1. use statically-linked official build from here: http://deadbeef.sourceforge.net/download.html
  2. downgrade ffmpeg to an older version
  3. fix it yourself
  4. wait until we adopt to the new ffmpeg APIs and release a new version
Oleksiy-Yakovenko commented 9 years ago

Comment #2 originally posted by Alexey-Yakovenko on 2012-05-30T21:30:32.000Z:

i forgot to mention.. if you don't need ffmpeg support -- you can disable it with ./configure --disable-ffmpeg most features will still work fine, you'll lose wma and alac support though.

Oleksiy-Yakovenko commented 9 years ago

Comment #3 originally posted by Alexey-Yakovenko on 2012-07-22T10:32:36.000Z:

Issue 846 has been merged into this issue.

Oleksiy-Yakovenko commented 9 years ago

Comment #4 originally posted by Alexey-Yakovenko on 2012-07-22T13:34:22.000Z:

[U] media-video/ffmpeg Available versions: 0.10.2

[I] media-sound/deadbeef [1] Available versions: (~)0.5.1-r3!m

Oleksiy-Yakovenko commented 9 years ago

Comment #5 originally posted by Alexey-Yakovenko on 2012-07-22T14:05:45.000Z:

jinleileiking, what am i supposed to answer to that?

Oleksiy-Yakovenko commented 9 years ago

Comment #6 originally posted by Alexey-Yakovenko on 2012-07-23T00:56:44.000Z:

I just add my env to reproduce the problem. If I have time, I will fix that

Oleksiy-Yakovenko commented 9 years ago

Comment #7 originally posted by Alexey-Yakovenko on 2012-08-02T20:37:53.000Z:

i tried to make the plugin compatible with ffmpeg-0.11, but it didn't work, so i made a separate ALAC plugin instead. available on git master branch. it's probably still a little buggy, but better than nothing. RIP ffmpeg.

Oleksiy-Yakovenko commented 9 years ago

Comment #8 originally posted by Alexey-Yakovenko on 2012-09-06T13:31:10.000Z:

Issue 877 has been merged into this issue.

Oleksiy-Yakovenko commented 9 years ago

Comment #9 originally posted by Alexey-Yakovenko on 2012-09-11T16:35:00.000Z:

Issue 880 has been merged into this issue.

Oleksiy-Yakovenko commented 9 years ago

Comment #10 originally posted by Alexey-Yakovenko on 2012-09-12T08:35:24.000Z:

Does libav has same problems as ffmpeg? Can we switch from ffmeg to libav?

Oleksiy-Yakovenko commented 9 years ago

Comment #11 originally posted by Alexey-Yakovenko on 2012-09-12T10:41:57.000Z:

libav has the same problems.

Oleksiy-Yakovenko commented 9 years ago

Comment #12 originally posted by Alexey-Yakovenko on 2012-12-21T09:14:17.000Z:

yeah indeed the ffmpeg1.0.1 also has lots of problems it breaks the build of the DirectFB library.

Oleksiy-Yakovenko commented 9 years ago

Comment #13 originally posted by Alexey-Yakovenko on 2012-12-21T09:42:55.000Z:

I solve problem when use ffmpeg-compat-devel instead of ffmpeg-devel to build deadbeef if Fedora 18.

Oleksiy-Yakovenko commented 9 years ago

Comment #14 originally posted by Alexey-Yakovenko on 2012-12-21T09:46:49.000Z:

when we have native wma plugin in deadbeef (soonish, hopefully), we won't need ffmpeg custom URIProtocol support, and i'll be able to support ffmpeg>=0.11.

still, this will take some time.

Oleksiy-Yakovenko commented 9 years ago

Comment #15 originally posted by Alexey-Yakovenko on 2013-07-12T22:46:23.000Z:

just commited ffmpeg 2.0 support onto devel branch. not sure if it compiles with all the intermediate ffmpeg releases from 0.11 up to 2.0, but it should.