[FFmpeg-trac] #6932(avcodec:open): Cross-compile fails in "libavcodec/libx264.c: In function ‘X264_frame’"

FFmpeg trac at avcodec.org
Tue Dec 26 07:15:59 EET 2017


#6932: Cross-compile fails in "libavcodec/libx264.c: In function ‘X264_frame’"
------------------------------------+-----------------------------------
             Reporter:  hydra3333   |                    Owner:
                 Type:  defect      |                   Status:  open
             Priority:  normal      |                Component:  avcodec
              Version:  git-master  |               Resolution:
             Keywords:              |               Blocked By:
             Blocking:              |  Reproduced by developer:  0
Analyzed by developer:  0           |
------------------------------------+-----------------------------------

Comment (by hydra3333):

 This seems to be related to the error message and possibly may be more
 than an API change ? Just wondering.

 http://git.videolan.org/?p=x264.git;a=commit;h=71ed44c7312438fac7c5c5301e45522e57127db4
 "Drop the 'x264_bit_depth' global variable."


 Unify 8-bit and 10-bit CLI and libraries

 Add 'i_bitdepth' to x264_param_t with the corresponding '--output-depth'
 CLI
 option to set the bit depth at runtime.

 Drop the 'x264_bit_depth' global variable. Rather than hardcoding it to an
 incorrect value, it's preferable to induce a linking failure. If
 applications
 relies on this symbol this will make it more obvious where the problem is.

 Add Makefile rules that compiles modules with different bit depths.
 Assembly
 on x86 is prefixed with the 'private_prefix' define, while all other archs
 modify their function prefix internally.

 Templatize the main C library, x86/x86_64 assembly, ARM assembly, AARCH64
 assembly, PowerPC assembly, and MIPS assembly.

 The depth and cache CLI filters heavily depend on bit depth size, so they
 need to be duplicated for each value. This means having to rename these
 filters, and adjust the callers to use the right version.

 Unfortunately the threaded input CLI module inherits a common.h dependency
 (input/frame -> common/threadpool -> common/frame -> common/common) which
 is extremely complicated to address in a sensible way. Instead duplicate
 the module and select the appropriate one at run time.

 Each bitdepth needs different checkasm compilation rules, so split the
 main
 checkasm target into two executables.

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6932#comment:4>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list