
Recherche avancée
Médias (1)
-
Revolution of Open-source and film making towards open film making
6 octobre 2011, par
Mis à jour : Juillet 2013
Langue : English
Type : Texte
Autres articles (46)
-
La file d’attente de SPIPmotion
28 novembre 2010, parUne file d’attente stockée dans la base de donnée
Lors de son installation, SPIPmotion crée une nouvelle table dans la base de donnée intitulée spip_spipmotion_attentes.
Cette nouvelle table est constituée des champs suivants : id_spipmotion_attente, l’identifiant numérique unique de la tâche à traiter ; id_document, l’identifiant numérique du document original à encoder ; id_objet l’identifiant unique de l’objet auquel le document encodé devra être attaché automatiquement ; objet, le type d’objet auquel (...) -
Submit bugs and patches
13 avril 2011Unfortunately a software is never perfect.
If you think you have found a bug, report it using our ticket system. Please to help us to fix it by providing the following information : the browser you are using, including the exact version as precise an explanation as possible of the problem if possible, the steps taken resulting in the problem a link to the site / page in question
If you think you have solved the bug, fill in a ticket and attach to it a corrective patch.
You may also (...) -
Contribute to documentation
13 avril 2011Documentation is vital to the development of improved technical capabilities.
MediaSPIP welcomes documentation by users as well as developers - including : critique of existing features and functions articles contributed by developers, administrators, content producers and editors screenshots to illustrate the above translations of existing documentation into other languages
To contribute, register to the project users’ mailing (...)
Sur d’autres sites (7705)
-
Building C library (FFmpeg) with Android NDK r17 : undefined reference to '__mulodi4'
14 mai 2018, par fpsulli3My problem happens to be with FFmpeg but I suspect that this would happen with almost any C library.
Problem Description
My app uses FFmpeg that is compiled with NDK r10e. I am trying to update everything to NDK r17, while also switching to clang, since Google prefers us to use that over gcc.
My first step is to just build FFmpeg.
To that end, I have used the
make_standalone_toolchain.py
script to create a stand-alone toolchain for the x86 architecture, like so :make_standalone_toolchain.py --arch x86 --api 21 --install-dir ~/Development/ndk-toolchains/x86
Then I configure the FFmpeg build as follows :
TOOLCHAIN_DIR=~/Development/ndk-toolchains/x86
./configure \
--prefix=$(pwd)/android/x86 \
--cross-prefix=$TOOLCHAIN_DIR/bin/i686-linux-android- \
--target-os=android \
--arch=x86 \
--enable-cross-compile \
--disable-asm \
--toolchain=clang-usan \
--disable-stripping \
--extra-cflags="-m32" \
--sysroot=$TOOLCHAIN_DIR/sysroot/And then I build it as follows :
make clean
make -j4
make installEverything seems to compile fine, but I get several linker errors that all say the same thing :
undefined reference to ’__mulodi4’
Solutions I’ve tried
1. Linking against libclang_rt.builtins*
I found a few places around the Web which suggested that this is caused by the fact that libgcc doesn’t provide
__mulodi4
. A github user named sitsofe was nice enough to post a work-around here. However, I am sure where to find thislibclang_rt.builtins-i686.a
library. Here is what I was able to find in my standalone toolchain directory :./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-x86_64.a
./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-i386.a
./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-aarch64-android.a
./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-mips64-android.a
./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-x86_64-android.a
./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-i686-android.a
./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-arm-android.a
./lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-mips-android.aThe
libclang_rt.builtins-i686-android.a
library looks close but (I think) no cigar. When I try to link to it, I get the same error :undefined reference to ’__mulodi4’
Here is my new FFmpeg build config command :
./configure \
--prefix=$(pwd)/android/x86 \
--cross-prefix=$TOOLCHAIN_DIR/bin/i686-linux-android- \
--target-os=android \
--arch=x86 \
--enable-cross-compile \
--disable-asm \
--toolchain=clang-usan \
--disable-stripping \
--extra-cflags="-m32" \
--extra-ldflags="-L${TOOLCHAIN_DIR}/lib64/clang/6.0.2/lib/linux/libclang_rt.builtins-i686-android.a" \
--sysroot=$TOOLCHAIN_DIR/sysroot/I checked with
-v
to make sure that this line was added to the linker flags, and it was. However, I have no idea if this library should even be expected to work, let alone whether I’m adding it to the linker flags correctly. In any case, what I’m doing here doesn’t work.2. Switching to a different sanitizer
Instead of using the undefined sanitizer, I tried switching to the address sanitizer. This is (frankly) a total stab in the dark, based on a vague mention of asan being available in r17 at Google I/O this week.
In this case, FFmpeg builds just fine !
However, when I try to pull FFmpeg into my test project (a simple AAR w/ C++ support, that just has one jni method that calls
av_gettime()
, I get a ton of linker errors :Error:error : undefined reference to ’__asan_option_detect_stack_use_after_return’
Error:error : undefined reference to ’__asan_stack_malloc_0’
Error:error : undefined reference to ’__asan_report_load4’
Error:error : undefined reference to ’__asan_report_load4’
Error:error : undefined reference to ’__asan_shadow_memory_dynamic_address’
Error:error : undefined reference to ’__asan_option_detect_stack_use_after_return’
Error:error : undefined reference to ’__asan_stack_malloc_0’
Error:error : undefined reference to ’__asan_report_load4’
Error:error : undefined reference to ’__asan_report_load4’
Error:error : undefined reference to ’__asan_shadow_memory_dynamic_address’
Error:error : undefined reference to ’__asan_option_detect_stack_use_after_return’
Error:error : undefined reference to ’__asan_stack_malloc_0’
Error:error : undefined reference to ’__asan_report_store4’
Error:error : undefined reference to ’__asan_report_store4’
Error:error : undefined reference to ’__asan_init’
Error:error : undefined reference to ’__asan_version_mismatch_check_v9’So it seems to find the FFmpeg library just fine, indicating that that part of my CMake file is correct, but it can’t locate any of these asan references.
This seems to be a common problem that people are running into, but I can’t see to find a work-around that actually works for me.
-
AVFrame : How to get/replace plane data buffer(s) and size ?
19 juillet 2018, par user10099431I’m working on gstreamer1.0-libav (1.6.3), trying to port custom FPGA based H264 video acceleration from gstreamer 0.10.
The data planes (YUV) used to be allocated by a simple malloc back in gstreamer 0.10, so we simply replaced the AVFrame.data[i] pointers by pointers to memory in our video acceleration core. It seems to be MUCH more complicated in gstreamer 1.12.
For starters, I tried copying the YUV planes from AVFrame.data[i] to a separate buffer - which worked fine ! Since I haven’t seen an immediate way to obtain the size of AVFrame.data[i] and I recognized that data[0], data[1], data[2] seem to be in a single continuous buffer, I simply used (data[1] - data [0]) for the size of the Y plane and (data[2] - data[1]) for the sizes of the U/V planes respectively. This works fine, expect for one scenario :
- Input H264 stream with resolution of 800x600 or greater
- The camera is covered (jacket, hand, ...)
This causes a SEGFAULT in the memcpy of the V plane (data[2]) using the sizes determined as described above. Before covering the camera, the stream is displayed completely fine ... so for some reason the dark screen changes the plane sizes ?
My ultimate goal is replacing the data[i] pointers allocated by gstreamer by my custom memory allocation (for futher processing) ... where exactly are these buffers assigned, can I change them and how can I obtain the size of each plane (data[0], data[1], data[2]) ?
-
Trying to tonemap 14-bit grayscale video
12 janvier 2018, par TrevorI’m trying to generate h.264 video from raw 2-byte gray video (14-bit range encoded in 16-bit values). I can do something like :
ffmpeg -f rawvideo -pix_fmt gray16le -s:v 1280x720 -r 60 -i input.raw -c:v libx264 output.mp4
And I get video but it’s pretty dark, not sure if it’s clipping, doing a linear remap, or storing the 16-bit data and VLC is doing the remap. ffprobe is reporting
Video: h264 (High 4:4:4 Predictive) (avc1 / 0x31637661), yuvj444p(pc), 1280x720, 108 kb/s, 60 fps, 60 tbr, 15360 tbn, 120 tbc
I was figuring I’d use the tonemap filter to make a better mapping. I added a filter before the output file with
-vf
.tonemap=hable
errorsImpossible to convert between the formats supported by the filter 'graph 0 input from stream 0:0' and the filter 'auto_scaler_0'
zscale=transfer=linear,tonemap=hable
errorsImpossible to convert between the formats supported by the filter 'Parsed_tonemap_1' and the filter 'auto_scaler_1'
zscale=transfer=linear,tonemap=hable,zscale=transfer=bt709,format=yuvj444p
errorscode 3074: no path between colorspaces
I’m not sure where to proceed from here...