Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#762 closed defect (fixed)

ff_vdpau* symbols are missing in libavocdec shared library

Reported by: marillat Owned by:
Priority: normal Component: build system
Version: git-master Keywords: vdpau
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: yes

Description

Hi,

Context : Debian unstable ffmpeg git 484b1cdd5303771447e15d0067a2034b0c17fdc8
same problem in 0.9 but not in 0.8.7

Build with only --enable-shared

At least all ff_vdpau* symbols are gone :

objdump -T libavcodec/libavcodec.so.53 | grep ff_vdpau

return nothing.

Christian

Change History (6)

comment:1 by Carl Eugen Hoyos, 10 years ago

Keywords: vdpau added
Version: unspecifiedgit-master

Why should they be exported?
(They do not show up in libavcodec/vdpau.h and I believe they are intended only to be used internally by the decoders.)

in reply to:  1 ; comment:2 by marillat, 10 years ago

Replying to cehoyos:

Why should they be exported?
(They do not show up in libavcodec/vdpau.h and I believe they are intended only to be used internally by the decoders.)

I don't understand because up to now these functions was in libavcodec53 (confirmed in 0.8.7) and XBMC check for ff_vdpau_vc1_decode_picture() in libavcodec to detect if VDPAU is enabled or not.

Then what is the best way to detect VDPAU presence in libavcodec ?

in reply to:  2 comment:3 by Carl Eugen Hoyos, 10 years ago

Analyzed by developer: set
Status: newopen

Replying to marillat:

Replying to cehoyos:

Why should they be exported?
(They do not show up in libavcodec/vdpau.h and I believe they are intended only to be used internally by the decoders.)

I don't understand because up to now these functions was in libavcodec53 (confirmed in 0.8.7)

Since the function does not appear in any installed header, I don't think this is a good argument.

and XBMC check for ff_vdpau_vc1_decode_picture() in libavcodec to detect if VDPAU is enabled or not.

Untested patch sent to ffmpeg-devel.

Then what is the best way to detect VDPAU presence in libavcodec ?

Why is it tested in configure at all?
After all, you can configure libavcodec with --disable-decoder=h264 and xbmc will still accept the library although it won't work as expected.

Thank you for the report!

XBMC configure:
https://github.com/xbmc/xbmc/blob/f587ca90e1c6b5fbbcb80bdc04048a4e0ca278de/configure.in#L1251

comment:4 by Carl Eugen Hoyos, 10 years ago

Resolution: fixed
Status: openclosed

Should be fixed (but untested).

comment:5 by EricV, 10 years ago

Thanks for readding the needed symbol. Don't you think a better global could be used for detection. vdapu.h does not offer any external symbol so what about:

extern int ffmpeg_vdpau_support_enabled or something like that?

comment:6 by Carl Eugen Hoyos, 10 years ago

Please explain why you believe this "detection" makes any sense?
Do you test if the h264 decoder is enabled when detecting libavcodec?
(Apart from the fact that adding a symbol would obviously mean you cannot detect older versions of libavcodec.)

Note: See TracTickets for help on using tickets.