Opened 5 years ago

Closed 5 years ago

Last modified 5 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 follow-up: Changed 5 years ago by cehoyos

  • Keywords vdpau added
  • Version changed from unspecified to git-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.)

comment:2 in reply to: ↑ 1 ; follow-up: Changed 5 years ago by 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) 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 ?

comment:3 in reply to: ↑ 2 Changed 5 years ago by cehoyos

  • Analyzed by developer set
  • Status changed from new to open

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 Changed 5 years ago by cehoyos

  • Resolution set to fixed
  • Status changed from open to closed

Should be fixed (but untested).

comment:5 Changed 5 years ago by EricV

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 Changed 5 years ago by cehoyos

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.