
Recherche avancée
Médias (1)
-
Bug de détection d’ogg
22 mars 2013, par
Mis à jour : Avril 2013
Langue : français
Type : Video
Autres articles (97)
-
Pas question de marché, de cloud etc...
10 avril 2011Le vocabulaire utilisé sur ce site essaie d’éviter toute référence à la mode qui fleurit allègrement
sur le web 2.0 et dans les entreprises qui en vivent.
Vous êtes donc invité à bannir l’utilisation des termes "Brand", "Cloud", "Marché" etc...
Notre motivation est avant tout de créer un outil simple, accessible à pour tout le monde, favorisant
le partage de créations sur Internet et permettant aux auteurs de garder une autonomie optimale.
Aucun "contrat Gold ou Premium" n’est donc prévu, aucun (...) -
Récupération d’informations sur le site maître à l’installation d’une instance
26 novembre 2010, parUtilité
Sur le site principal, une instance de mutualisation est définie par plusieurs choses : Les données dans la table spip_mutus ; Son logo ; Son auteur principal (id_admin dans la table spip_mutus correspondant à un id_auteur de la table spip_auteurs)qui sera le seul à pouvoir créer définitivement l’instance de mutualisation ;
Il peut donc être tout à fait judicieux de vouloir récupérer certaines de ces informations afin de compléter l’installation d’une instance pour, par exemple : récupérer le (...) -
Emballe médias : à quoi cela sert ?
4 février 2011, parCe plugin vise à gérer des sites de mise en ligne de documents de tous types.
Il crée des "médias", à savoir : un "média" est un article au sens SPIP créé automatiquement lors du téléversement d’un document qu’il soit audio, vidéo, image ou textuel ; un seul document ne peut être lié à un article dit "média" ;
Sur d’autres sites (6247)
-
doc : Link to "Resampler Options" in the aresample documentation.
2 mars 2017, par Carl Eugen Hoyos -
Cant link against ffmpeg static build
24 mars 2017, par David BarishevI have build ffmpeg libraries statically for x86 android using a custom configuration.Now i wanted to add them in my android project.
Im using ffmpeg 3.2.git, android studio 2.3.
I created a folder named distribution which had my binaries, and the minimum headers i needed for it to not tell me about missing header (Except for the avutil- i just included them all), located the root of my project.
Here is a file tree :distribution
├── libavcodec
│ ├── lib
│ │ └── x86
│ │ └── libavcodec.a
│ ├── avcodec.h
│ └── version.h
├── libavfilter
│ ├── lib
│ │ └── x86
│ │ └── libavfilter.a
│ ├── avfiltergraph.h
│ └── avfilter.h
├── libavformat
│ ├── lib
│ │ └── x86
│ │ └── libavformat.a
│ ├── avformat.h
│ ├── avio.h
│ └── version.h
├── libavutil
│ ├── lib
│ │ └── x86
│ │ └── libavutil.a
│ ├── attributes.h
│ ├── avconfig.h
│ ├── avutil.h
│ ├── buffer.h
│ ├── buffer_internal.h
│ ├── camellia.h
│ ├── cast5.h
│ ├── channel_layout.h
│ ├── colorspace.h
│ ├── color_utils.h
│ ├── common.h
│ ├── cpu.h
│ ├── cpu_internal.h
│ ├── crc.h
│ ├── des.h
│ ├── dict.h
│ ├── display.h
│ ├── downmix_info.h
│ ├── dynarray.h
│ ├── error.h
│ ├── eval.h
│ ├── ffmath.h
│ ├── ffversion.h
│ ├── fifo.h
│ ├── file.h
│ ├── fixed_dsp.h
│ ├── float_dsp.h
│ ├── frame.h
│ ├── hash.h
│ ├── hmac.h
│ ├── hwcontext_cuda.h
│ ├── hwcontext_cuda_internal.h
│ ├── hwcontext_dxva2.h
│ ├── hwcontext.h
│ ├── hwcontext_internal.h
│ ├── hwcontext_qsv.h
│ ├── hwcontext_vaapi.h
│ ├── hwcontext_vdpau.h
│ ├── imgutils.h
│ ├── integer.h
│ ├── internal.h
│ ├── intfloat.h
│ ├── intmath.h
│ ├── intreadwrite.h
│ ├── lfg.h
│ ├── libm.h
│ ├── lls.h
│ ├── log.h
│ ├── lzo.h
│ ├── macros.h
│ ├── mastering_display_metadata.h
│ ├── mathematics.h
│ ├── md5.h
│ ├── mem.h
│ ├── mem_internal.h
│ ├── motion_vector.h
│ ├── murmur3.h
│ ├── opencl.h
│ ├── opencl_internal.h
│ ├── opt.h
│ ├── parseutils.h
│ ├── pca.h
│ ├── pixdesc.h
│ ├── pixelutils.h
│ ├── pixfmt.h
│ ├── qsort.h
│ ├── random_seed.h
│ ├── rational.h
│ ├── rc4.h
│ ├── replaygain.h
│ ├── reverse.h
│ ├── ripemd.h
│ ├── samplefmt.h
│ ├── sha512.h
│ ├── sha.h
│ ├── softfloat.h
│ ├── softfloat_ieee754.h
│ ├── softfloat_tables.h
│ ├── spherical.h
│ ├── stereo3d.h
│ ├── tablegen.h
│ ├── tea.h
│ ├── thread.h
│ ├── threadmessage.h
│ ├── timecode.h
│ ├── time.h
│ ├── time_internal.h
│ ├── timer.h
│ ├── timestamp.h
│ ├── tree.h
│ ├── twofish.h
│ └── version.h
└── libswresample
├── lib
│ └── x86
│ └── libswresample.a
├── swresample.h
└── swresample_internal.hI edited my cmake to include the libraries :
add_library(
native-lib
SHARED
src/main/cpp/native-lib.cpp )
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../distribution)
add_library(lib_avcodec STATIC IMPORTED)
set_target_properties(lib_avcodec PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavcodec/lib/${ANDROID_ABI}/libavcodec.a)
add_library(lib_avfilter STATIC IMPORTED)
set_target_properties(lib_avfilter PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavfilter/lib/${ANDROID_ABI}/libavfilter.a)
add_library(lib_avformat STATIC IMPORTED)
set_target_properties(lib_avformat PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavformat/lib/${ANDROID_ABI}/libavformat.a)
add_library(lib_avutil STATIC IMPORTED)
set_target_properties(lib_avutil PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavutil/lib/${ANDROID_ABI}/libavutil.a)
add_library(lib_swresample STATIC IMPORTED)
set_target_properties(lib_swresample PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libswresample/lib/${ANDROID_ABI}/libswresample.a)
include_directories(
${distribution_DIR}
)
target_link_libraries(
native-lib
lib_avcodec
lib_avfilter
lib_avformat
lib_avutil
lib_swresample
)I also restricted the build to only x86, in my app build.gradle :
ndk {
// Specifies the ABI configurations of your native
// libraries Gradle should build and package with your APK.
abiFilters 'x86'
}The project gradle sync worked successfully.
I wrote the following code in my cpp file :#include
extern "C"{
#include "libavformat/avformat.h"
}
JNIEXPORT void JNICALL
Java_com_example_david_testffmpegcpp_MainActivity_stringFromJNI(
JNIEnv *env,
jobject /* this */) {
av_register_all ();
avformat_network_init ();
}Just to check if the library works, but i cant seem to link against the libraries correctly. It complains about undefined symbols.
What did i do wrong ?Error :
[2/2] Linking CXX shared library
..\..\..\..\build\intermediates\cmake\debug\obj\x86\libnative-lib.so
FAILED: cmd.exe /C "cd . && D:\AndroidSDK\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=i686-none-linux-android --gcc-toolchain=D:/AndroidSDK/ndk-bundle/toolchains/x86-4.9/prebuilt/windows-x86_64 --sysroot=D:/AndroidSDK/ndk-bundle/platforms/android-16/arch-x86 -fPIC -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security -O0 -fno-limit-debug-info -O0 -fno-limit-debug-info -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o ..\..\..\..\build\intermediates\cmake\debug\obj\x86\libnative-lib.so CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o -llog ../../../../../distribution/libavcodec/lib/x86/libavcodec.a ../../../../../distribution/libavfilter/lib/x86/libavfilter.a ../../../../../distribution/libavformat/lib/x86/libavformat.a ../../../../../distribution/libavutil/lib/x86/libavutil.a ../../../../../distribution/libswresample/lib/x86/libswresample.a -lm "D:/AndroidSDK/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/libgnustl_static.a" && cd ."
src/libavformat/allformats.c:51: error: undefined reference to 'avcodec_register_all'
src/libavformat/id3v2.c:1009: error: undefined reference to 'uncompress'
src/libavformat/id3v2.c:1153: error: undefined reference to 'av_init_packet'
src/libavformat/matroskadec.c:1393: error: undefined reference to 'inflateInit_'
src/libavformat/matroskadec.c:1408: error: undefined reference to 'inflate'
src/libavformat/matroskadec.c:1401: error: undefined reference to 'inflateEnd'
src/libavformat/matroskadec.c:1411: error: undefined reference to 'inflateEnd'
src/libavformat/matroskadec.c:3113: error: undefined reference to 'av_new_packet'
src/libavformat/matroskadec.c:3134: error: undefined reference to 'av_packet_new_side_data'
src/libavformat/matroskadec.c:2855: error: undefined reference to 'av_new_packet'
src/libavformat/matroskadec.c:3147: error: undefined reference to 'av_packet_new_side_data'
src/libavformat/matroskadec.c:3022: error: undefined reference to 'av_new_packet'
src/libavformat/matroskadec.c:3031: error: undefined reference to 'av_packet_new_side_data'
src/libavformat/matroskadec.c:3042: error: undefined reference to 'av_packet_new_side_data'
src/libavformat/matroskadec.c:3151: error: undefined reference to 'av_packet_unref'
src/libavformat/matroskadec.c:2680: error: undefined reference to 'av_packet_unref'
src/libavformat/matroskadec.c:963: error: undefined reference to 'av_fast_padded_malloc'
src/libavformat/matroskadec.c:2163: error: undefined reference to 'av_get_codec_tag_string'
src/libavformat/matroskadec.c:2680: error: undefined reference to 'av_packet_unref'
src/libavformat/matroskadec.c:2579: error: undefined reference to 'av_init_packet'
src/libavformat/matroskadec.c:2580: error: undefined reference to 'av_new_packet'
src/libavformat/matroskadec.c:1715: error: undefined reference to 'avpriv_mpeg4audio_sample_rates'
src/libavformat/matroskadec.c:1715: error: undefined reference to 'avpriv_mpeg4audio_sample_rates'
src/libavformat/matroskadec.c:1715: error: undefined reference to 'avpriv_mpeg4audio_sample_rates'
src/libavformat/matroskadec.c:1866: error: undefined reference to 'avcodec_chroma_pos_to_enum'
src/libavformat/matroskadec.c:2680: error: undefined reference to 'av_packet_unref'
src/libavformat/matroskaenc.c:2482: error: undefined reference to 'avcodec_get_type'
src/libavformat/matroskaenc.c:646: error: undefined reference to 'avpriv_split_xiph_headers'
src/libavformat/matroskaenc.c:1066: error: undefined reference to 'av_get_bits_per_sample'
src/libavformat/matroskaenc.c:723: error: undefined reference to 'avpriv_mpeg4audio_get_config'
src/libavformat/matroskaenc.c:875: error: undefined reference to 'avcodec_enum_to_chroma_pos'
src/libavformat/matroskaenc.c:813: error: undefined reference to 'avcodec_get_name'
src/libavformat/matroskaenc.c:806: error: undefined reference to 'avcodec_get_name'
src/libavformat/matroskaenc.c:824: error: undefined reference to 'avcodec_get_name'
..... -
Cant link against ffmpeg with openssl using cmake
24 mars 2017, par David BarishevI have build ffmpeg libraries statically for x86 android using a custom configuration.Now i wanted to add them in my android project.
Im using ffmpeg 3.2.git, android studio 2.3.
I created a folder named distribution which had my binaries, and the minimum headers i needed for it to not tell me about missing header (Except for the avutil- i just included them all), located the root of my project.
I edited my cmake to include the libraries :add_library(
native-lib
SHARED
src/main/cpp/native-lib.cpp )
set(distribution_DIR ${CMAKE_SOURCE_DIR}/../distribution)
add_library(lib_avcodec STATIC IMPORTED)
set_target_properties(lib_avcodec PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavcodec/lib/${ANDROID_ABI}/libavcodec.a)
add_library(lib_avfilter STATIC IMPORTED)
set_target_properties(lib_avfilter PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavfilter/lib/${ANDROID_ABI}/libavfilter.a)
add_library(lib_avformat STATIC IMPORTED)
set_target_properties(lib_avformat PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavformat/lib/${ANDROID_ABI}/libavformat.a)
add_library(lib_avutil STATIC IMPORTED)
set_target_properties(lib_avutil PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libavutil/lib/${ANDROID_ABI}/libavutil.a)
add_library(lib_swresample STATIC IMPORTED)
set_target_properties(lib_swresample PROPERTIES IMPORTED_LOCATION
${distribution_DIR}/libswresample/lib/${ANDROID_ABI}/libswresample.a)
include_directories(
${distribution_DIR}
)
find_library( # Sets the name of the path variable.
z-lib
# Specifies the name of the NDK library that
# you want CMake to locate.
z )
target_link_libraries(
native-lib
${z-lib}
lib_crypto
lib_ssl
lib_avfilter
lib_avformat
lib_avcodec
lib_swresample
lib_avutil
)I also restricted the build to only x86, in my app build.gradle :
ndk {
// Specifies the ABI configurations of your native
// libraries Gradle should build and package with your APK.
abiFilters 'x86'
}The project gradle sync worked successfully.
I wrote the following code in my cpp file :#include
extern "C"{
#include "libavformat/avformat.h"
}
JNIEXPORT void JNICALL
Java_com_example_david_testffmpegcpp_MainActivity_stringFromJNI(
JNIEnv *env,
jobject /* this */) {
av_register_all ();
avformat_network_init ();
}Just to check if the library works, but i cant seem to link against the libraries correctly. It complains about undefined symbols.
What did i do wrong ?EDIT :
I changed the order of the linked libraries, and was able to remove all error for ffmpeg’s library functions not found, and i added zlib,that removed some more.
The only error left are those how are related to openssl, its logical since i compiled my ffmpeg libraries with openssl.
I tried linking my openssl static libraries that i used for compiling ffmpeg like this :
set(ssl_dir ${CMAKE_SOURCE_DIR}/../../../FFmpegBuild/Openssl/output_19/android)
add_library(lib_ssl STATIC IMPORTED)
set_target_properties(lib_ssl PROPERTIES IMPORTED_LOCATION
${ssl_dir}/openssl-${ANDROID_ABI}/lib/libssl.a)
add_library(lib_crypto STATIC IMPORTED)
set_target_properties(lib_crypto PROPERTIES IMPORTED_LOCATION
${ssl_dir}/openssl-${ANDROID_ABI}/lib/libcrypto.a)
include_directories( ${ssl_dir}/openssl-${ANDROID_ABI}/include
${distribution_DIR}
)And linked against them :
target_link_libraries( # Specifies the target library.
native-lib
${z-lib}
lib_ssl
lib_crypto
lib_avfilter
lib_avformat
lib_avcodec
lib_swresample
lib_avutil
)But i’m still getting the error that i state below.
My question is why ? Also if i already built ffmpeg in static mode, how come i need to relink openssl again ?Error :
Error while executing process D:\AndroidSDK\cmake\3.6.3155560\bin\cmake.exe with arguments {--build D:\AndroidApps\TestFFmpegCpp\app\.externalNativeBuild\cmake\debug\x86 --target native-lib}
[1/1] Linking CXX shared library ..\..\..\..\build\intermediates\cmake\debug\obj\x86\libnative-lib.so
FAILED: cmd.exe /C "cd . && D:\AndroidSDK\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe --target=i686-none-linux-android --gcc-toolchain=D:/AndroidSDK/ndk-bundle/toolchains/x86-4.9/prebuilt/windows-x86_64 --sysroot=D:/AndroidSDK/ndk-bundle/platforms/android-19/arch-x86 -fPIC -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -mstackrealign -Wa,--noexecstack -Wformat -Werror=format-security -O0 -fno-limit-debug-info -O0 -fno-limit-debug-info -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -Wl,--build-id -Wl,--warn-shared-textrel -Wl,--fatal-warnings -Wl,--no-undefined -Wl,-z,noexecstack -Qunused-arguments -Wl,-z,relro -Wl,-z,now -shared -Wl,-soname,libnative-lib.so -o ..\..\..\..\build\intermediates\cmake\debug\obj\x86\libnative-lib.so CMakeFiles/native-lib.dir/src/main/cpp/native-lib.cpp.o -lz ../../../../../../../FFmpegBuild/Openssl/output_19/android/openssl-x86/lib/libcrypto.a ../../../../../../../FFmpegBuild/Openssl/output_19/android/openssl-x86/lib/libssl.a ../../../../../distribution/libavfilter/lib/x86/libavfilter.a ../../../../../distribution/libavformat/lib/x86/libavformat.a ../../../../../distribution/libavcodec/lib/x86/libavcodec.a ../../../../../distribution/libswresample/lib/x86/libswresample.a ../../../../../distribution/libavutil/lib/x86/libavutil.a -lm "D:/AndroidSDK/ndk-bundle/sources/cxx-stl/gnu-libstdc++/4.9/libs/x86/libgnustl_static.a" && cd ."
src/libavformat/tls_openssl.c:125: error: undefined reference to 'BIO_clear_flags'
src/libavformat/tls_openssl.c:102: error: undefined reference to 'BIO_clear_flags'
src/libavformat/tls_openssl.c:116: error: undefined reference to 'BIO_clear_flags'
src/libavformat/tls_openssl.c:116: error: undefined reference to 'BIO_clear_flags'
src/libavformat/tls_openssl.c:309: error: undefined reference to 'SSL_read'
src/libavformat/tls_openssl.c:200: error: undefined reference to 'ERR_get_error'
src/libavformat/tls_openssl.c:200: error: undefined reference to 'ERR_error_string'
src/libavformat/tls_openssl.c:320: error: undefined reference to 'SSL_write'
src/libavformat/tls_openssl.c:200: error: undefined reference to 'ERR_get_error'
src/libavformat/tls_openssl.c:200: error: undefined reference to 'ERR_error_string'
src/libavformat/tls_openssl.c:154: error: undefined reference to 'SSL_library_init'
src/libavformat/tls_openssl.c:155: error: undefined reference to 'SSL_load_error_strings'
src/libavformat/tls_openssl.c:157: error: undefined reference to 'CRYPTO_get_locking_callback'
src/libavformat/tls_openssl.c:159: error: undefined reference to 'CRYPTO_num_locks'
src/libavformat/tls_openssl.c:165: error: undefined reference to 'CRYPTO_num_locks'
src/libavformat/tls_openssl.c:167: error: undefined reference to 'CRYPTO_set_locking_callback'
src/libavformat/tls_openssl.c:186: error: undefined reference to 'CRYPTO_get_locking_callback'
src/libavformat/tls_openssl.c:188: error: undefined reference to 'CRYPTO_set_locking_callback'
src/libavformat/tls_openssl.c:189: error: undefined reference to 'CRYPTO_num_locks'
src/libavformat/tls_openssl.c:208: error: undefined reference to 'SSL_shutdown'
src/libavformat/tls_openssl.c:209: error: undefined reference to 'SSL_free'
src/libavformat/tls_openssl.c:212: error: undefined reference to 'SSL_CTX_free'
src/libavformat/tls_openssl.c:240: error: undefined reference to 'SSLv23_client_method'
src/libavformat/tls_openssl.c:240: error: undefined reference to 'SSL_CTX_new'
src/libavformat/tls_openssl.c:246: error: undefined reference to 'SSL_CTX_ctrl'
src/libavformat/tls_openssl.c:248: error: undefined reference to 'SSL_CTX_load_verify_locations'
src/libavformat/tls_openssl.c:251: error: undefined reference to 'SSL_CTX_use_certificate_chain_file'
src/libavformat/tls_openssl.c:257: error: undefined reference to 'SSL_CTX_use_PrivateKey_file'
src/libavformat/tls_openssl.c:267: error: undefined reference to 'SSL_new'
src/libavformat/tls_openssl.c:284: error: undefined reference to 'BIO_new'
src/libavformat/tls_openssl.c:287: error: undefined reference to 'SSL_set_bio'
src/libavformat/tls_openssl.c:290: error: undefined reference to 'SSL_accept'
src/libavformat/tls_openssl.c:240: error: undefined reference to 'SSLv23_server_method'
src/libavformat/tls_openssl.c:258: error: undefined reference to 'ERR_get_error'
src/libavformat/tls_openssl.c:258: error: undefined reference to 'ERR_error_string'
src/libavformat/tls_openssl.c:208: error: undefined reference to 'SSL_shutdown'
src/libavformat/tls_openssl.c:209: error: undefined reference to 'SSL_free'
src/libavformat/tls_openssl.c:212: error: undefined reference to 'SSL_CTX_free'
src/libavformat/tls_openssl.c:290: error: undefined reference to 'SSL_connect'
src/libavformat/tls_openssl.c:200: error: undefined reference to 'ERR_get_error'
src/libavformat/tls_openssl.c:200: error: undefined reference to 'ERR_error_string'
src/libavformat/tls_openssl.c:266: error: undefined reference to 'SSL_CTX_set_verify'
src/libavformat/tls_openssl.c:289: error: undefined reference to 'SSL_ctrl'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.