Recherche avancée

Médias (91)

Autres articles (58)

  • Websites made ​​with MediaSPIP

    2 mai 2011, par

    This page lists some websites based on MediaSPIP.

  • Creating farms of unique websites

    13 avril 2011, par

    MediaSPIP platforms can be installed as a farm, with a single "core" hosted on a dedicated server and used by multiple websites.
    This allows (among other things) : implementation costs to be shared between several different projects / individuals rapid deployment of multiple unique sites creation of groups of like-minded sites, making it possible to browse media in a more controlled and selective environment than the major "open" (...)

  • Les autorisations surchargées par les plugins

    27 avril 2010, par

    Mediaspip core
    autoriser_auteur_modifier() afin que les visiteurs soient capables de modifier leurs informations sur la page d’auteurs

Sur d’autres sites (9313)

  • Problems accessing codecs with ggplot and gganimate

    19 décembre 2016, par noLongerRandom

    Using gganimate. Can’t figure out how to properly access functionality of ffmpeg, specifically I want to change the codec I’m using in the video file I’m outputting.

    # load packages
    library(ggplot)
    library(animation)
    library(gganimate)

    # Here's my data.frame
    myDf <- data.frame(
       year = c(1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971, 1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014),
       bottom50 = c(0.195, 0.191, 0.187, 0.192, 0.196, 0.205, 0.207, 0.210, 0.209, 0.204, 0.203, 0.204, 0.205, 0.203, 0.202, 0.200, 0.200, 0.201, 0.199, 0.195, 0.190, 0.183, 0.179, 0.179, 0.177, 0.172, 0.169, 0.169, 0.168, 0.166, 0.158, 0.159, 0.158, 0.154, 0.151, 0.148, 0.149, 0.148, 0.146, 0.149, 0.148, 0.145, 0.142, 0.138, 0.135, 0.137, 0.137, 0.136, 0.130, 0.127, 0.123, 0.127, 0.125), top1 = c(0.126, 0.127, 0.129, 0.128, 0.126, 0.123, 0.122, 0.115, 0.110, 0.111, 0.111, 0.109, 0.106, 0.105, 0.105, 0.107, 0.108, 0.111, 0.107, 0.110, 0.112, 0.115, 0.125, 0.125, 0.122, 0.133, 0.149, 0.145, 0.145, 0.139, 0.150, 0.146, 0.147, 0.153, 0.160, 0.166, 0.169, 0.177, 0.183, 0.173, 0.171, 0.172, 0.183, 0.194, 0.201, 0.199, 0.195, 0.185, 0.198, 0.196, 0.208, 0.196, 0.202)
    )

    #Basic plot
    p <- ggplot(myDf, aes(x = year, y = bottom50, frame = year)) +
       geom_line(color = "dodgerblue") +
       geom_line(aes(y = top1), color = "darkred")

    The non-animated version gets me what I want :

    enter image description here

    And I get an animation version output to video with :

    gganimate(p, interval = .1, title_frame = FALSE, "income.mp4")

    That’s fine, but I want to change some the output parameters, specifically : alter the dimensions, the frame rate, and use a different codec.

    # change some of the options
    ani.options(ani.height = 1080, ani.width = 1920,
               interval = 0.04166667, other.opts = "-vcodec qtrle -f mov")
    # re-animate
    gganimate(p, title_frame = FALSE, "income.mov")

    That gives me the following error :

    Error in animation_saver(saver, filename) :
     Don't know how to save animation of type mov

    I’m using ’.mov’ as my file extension because I’m trying to change to the Animation codec (so it’s no longer a .mp4 wrapper). I’ve got ffmpeg installed, so this is probably a syntax issue. But the documentation isn’t very clear here ; gganimate doesn’t have any documentation on changing codecs (or outputting any video besides an mp4), and the animation package is light on specifics as well.

  • Why do you need analytics for your WordPress ?

    7 avril 2020, par Joselyn Khor — Analytics Tips, Plugins

    Not many people know this, but having a WordPress analytics tool gives you a competitive advantage. It’s also essential to the growth of your website. For many businesses, websites are the main driver of revenue and sales. In the case of blogs, it’s your first chance to make a lasting impression.

    Now, maybe you’ve heard of Google Analytics or even the privacy-friendly alternative, Matomo Analytics, but have never tried them ? These are analytics platforms that help you understand your website traffic and visitors. (You can find these platforms as plugins in the WordPress directory !)

    They’re important because the insights you get help you determine what changes to make to improve your website. Without them you could face a tougher time figuring out what’s working, what the issues are (and solving them before they get out of hand), and making sure you’re taking your website in the right direction. 

    WordPress analytics gives you an understanding of what’s actually going on.

    How does a WordPress analytics plugin benefit your website ?

    What this means for you is getting a toolkit to learn how to get more sales or followers and subscribers (aka conversions in analytics terms). 

    By getting insights into user behaviour, content performance, and how you can optimise your website, you can reach more of your goals, like increasing sales or growing your audience.

    A WordPress analytics tool helps you get more traffic to your site

    You get a range of features which tell you which acquisition channels are working for you like – social media, search engines, and other websites mentioning you. This helps you make an informed decision on where to focus energies (or spend) to get more of the ideal people coming through to your website. 

    Increase traffic with wordpress analytics

    Example : Looking through your acquisition channels and seeing that Reddit drives a lot of traffic through to your website. Since this channel seems to be working for you, you could then spend more time on Reddit posts to increase traffic.

    But getting more traffic isn’t all there is to it. Once they land on your site, you want them to stay for a little longer so they are intrigued by what you’re offering. Be it a product, or awesome content.

    Which leads us to …

    Increasing engagement by learning about visitor behaviour

    When you get a solid number of visitors on your website, it’s good to then learn about how they behave on your site. A WordPress analytics tool helps with engagement since you’re seeing what’s appealing to them, and what isn’t.

     Increasing engagement is good for a few reasons. 

    • You end up speaking the language of your readers. 
    • You can make a difference with the information you’re putting out. 
    • You get loyal customers and believers in your organisation. 

    With more engaged visitors, you can build trust with them and eventually be able to convince them that your product, service, or blog is needed in their lives.

    WordPress analytics entry pages

    Example : Looking through entry and exit pages to see what first impression is making them stay, and what impression is making them leave. This helps you redirect efforts to give your website a better chance of getting visitors to stay longer.

    Improving your content and engagement can lead to more conversions

    After you get visitors engaged, it’s time to convert. 

    Whether you have an ecommerce site or freelance blog, you’ll need to know how to boost conversions. This simply means getting people to achieve more of the actions you’re wanting them to take on your site. Like subscribing to your newsletter or adding items to a cart.

    With conversion optimization features, you’re finding out how well your website is designed to get buyers through a journey to conversion. 

    Funnels for WordPress analytics

    Example : Say you’ve created a newsletter sign up page, but you’re not getting as many sign ups as you’d like. With a web analytics tool, you can look into it further. A funnels feature could tell you how they’re getting to that page. If people can’t find your page, that could be reason for low conversion rates. Or, maybe you are getting people landing on this page, but you can’t tell why they’re not signing up. Try setting up a heatmap to see how far they’re scrolling down your page to the sign up section. Through these conversion optimization features, you can make tweaks that significantly improve conversions.

    So, how does the Matomo Analytics for WordPress plugin help with all of this ?

    Matomo Analytics for WordPress is a free web analytics plugin that gives you access to all the features mentioned above, right in your own WordPress dashboard. It’s completely free to use and is handy for users of all skill levels. From beginners right through to advanced analysts. 

    You get to move through all the stages to increase traffic, increase engagement, and convert. By using Matomo for WordPress, you put yourself in a better position to track all the needed data from your WordPress website. 

    You have this toolkit to improve your website for free, with a few clicks ! 

    By getting useful insights like visitors, acquisitions, bounce rates etc. you gain a new perspective on how to improve your website so it’s better at doing what you created it to do. Getting these insights also means giving yourself the confidence to do what’s best for your website in a data-driven way. 

    With all this knowledge, you can be competitive, or grow enough that you’re leaving your competitors in the dust. 

  • When I build ndk with .a files it comes like this `error adding symbols : File in wrong format`

    2 avril 2020, par Pradeep Simba

    When I build ndk with .a files it comes like this error adding symbols: File in wrong format.

    



    WORKING_DIR := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_PATH := $(WORKING_DIR)/../third_party/lame/libmp3lame
LOCAL_MODULE    := lame
LOCAL_C_INCLUDES := $(WORKING_DIR)/../third_party/lame/libmp3lame \
                $(WORKING_DIR)/../third_party/lame/include
LOCAL_CFLAGS := -DSTDC_HEADERS -std=c99
LOCAL_ARM_MODE := arm
APP_OPTIM := release

LOCAL_SRC_FILES := VbrTag.c \
               bitstream.c \
               encoder.c \
               fft.c \
               gain_analysis.c \
               id3tag.c \
               lame.c \
               mpglib_interface.c \
               newmdct.c \
               presets.c \
               psymodel.c \
               quantize.c \
               quantize_pvt.c \
               reservoir.c \
               set_get.c \
               tables.c \
               takehiro.c \
               util.c \
               vbrquantize.c \
               version.c


#include $(BUILD_STATIC_LIBRARY)

include $(BUILD_STATIC_LIBRARY)

#include $(CLEAR_VARS)
#LOCAL_MODULE  := mp3lame_a
#LOCAL_STATIC_LIBRARIES := lame

#include $(BUILD_EXECUTABLE) 

include $(CLEAR_VARS)
LOCAL_PATH := $(WORKING_DIR)
LOCAL_MODULE    := ffmpeg
LOCAL_CFLAGS := -DHAVE_AV_CONFIG_H -std=c99 -D__STDC_CONSTANT_MACROS -DSTDC_HEADERS -Wno-deprecated-declarations
LOCAL_SRC_FILES := ffmpeg-jni.c
LOCAL_C_INCLUDES := $(WORKING_DIR)/libavcodec $(WORKING_DIR)/libavcodec/arm      $(WORKING_DIR)/libavformat $(WORKING_DIR)/libavutil $(WORKING_DIR)/libavutil/arm

LOCAL_STATIC_LIBRARIES := lame

LOCAL_LDLIBS := -llog -lm -lz $(WORKING_DIR)/../third_party/lib/libavformat.a $(WORKING_DIR)/../third_party/lib/libavcodec.a $(WORKING_DIR)/../third_party/lib/libavfilter.a $(WORKING_DIR)/../third_party/lib/libavresample.a $(WORKING_DIR)/../third_party/lib/libswscale.a $(WORKING_DIR)/../third_party/lib/libavutil.a $(WORKING_DIR)/../third_party/lib/libx264.a $(WORKING_DIR)/../third_party/lib/libpostproc.a $(WORKING_DIR)/../third_party/lib/libswresample.a $(WORKING_DIR)/../third_party/lib/libfdk-aac.a

APP_OPTIM := release

include $(BUILD_SHARED_LIBRARY)


    



    enter image description here
enter image description here
enter image description here

    



    When I build ndk the error occurs

    



    enter image description here

    



    Microsoft Windows [Version 10.0.18363.418]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\prade>d:

D:\>cd D:\Github\n

D:\Github\n>ndk-build
Android NDK: APP_PLATFORM not set. Defaulting to minimum supported version android-16.
Android NDK: WARNING:jni/Android.mk:ffmpeg: non-system libraries in linker flags: jni/../third_party/lib/libavformat.a jni/../third_party/lib/libavcodec.a jni/../third_party/lib/libavfilter.a jni/../third_party/lib/libavresample.a jni/../third_party/lib/libswscale.a jni/../third_party/lib/libavutil.a jni/../third_party/lib/libx264.a jni/../third_party/lib/libpostproc.a jni/../third_party/lib/libswresample.a jni/../third_party/lib/libfdk-aac.a
Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK:     current module
Android NDK: WARNING:jni/Android.mk:ffmpeg: non-system libraries in linker flags: jni/../third_party/lib/libavformat.a jni/../third_party/lib/libavcodec.a jni/../third_party/lib/libavfilter.a jni/../third_party/lib/libavresample.a jni/../third_party/lib/libswscale.a jni/../third_party/lib/libavutil.a jni/../third_party/lib/libx264.a jni/../third_party/lib/libpostproc.a jni/../third_party/lib/libswresample.a jni/../third_party/lib/libfdk-aac.a
Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK:     current module
Android NDK: WARNING:jni/Android.mk:ffmpeg: non-system libraries in linker flags: jni/../third_party/lib/libavformat.a jni/../third_party/lib/libavcodec.a jni/../third_party/lib/libavfilter.a jni/../third_party/lib/libavresample.a jni/../third_party/lib/libswscale.a jni/../third_party/lib/libavutil.a jni/../third_party/lib/libx264.a jni/../third_party/lib/libpostproc.a jni/../third_party/lib/libswresample.a jni/../third_party/lib/libfdk-aac.a
Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK:     current module
Android NDK: WARNING:jni/Android.mk:ffmpeg: non-system libraries in linker flags: jni/../third_party/lib/libavformat.a jni/../third_party/lib/libavcodec.a jni/../third_party/lib/libavfilter.a jni/../third_party/lib/libavresample.a jni/../third_party/lib/libswscale.a jni/../third_party/lib/libavutil.a jni/../third_party/lib/libx264.a jni/../third_party/lib/libpostproc.a jni/../third_party/lib/libswresample.a jni/../third_party/lib/libfdk-aac.a
Android NDK:     This is likely to result in incorrect builds. Try using LOCAL_STATIC_LIBRARIES
Android NDK:     or LOCAL_SHARED_LIBRARIES instead to list the library dependencies of the
Android NDK:     current module
[arm64-v8a] Compile        : ffmpeg <= ffmpeg-jni.c
jni/ffmpeg-jni.c:248:16: warning: initializing 'const jbyte *' (aka 'const signed char *') with an expression of type
  'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
const jbyte *url = (*env)->GetStringUTFChars(env, rtmp_url, NULL);
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/ffmpeg-jni.c:252:37: warning: passing 'const jbyte *' (aka 'const signed char *') to parameter of type
  'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
if (avio_open(&fmt_context->pb, url, URL_WRONLY) < 0) {
                                ^~~
jni/libavformat/avio.h:391:44: note: passing argument to parameter 'url' here
 int avio_open(AVIOContext **s, const char *url, int flags);
                                       ^
jni/ffmpeg-jni.c:257:48: warning: passing 'const jbyte *' (aka 'const signed char *') to parameter of type
  'const char *' converts between pointers to integer types with different sign [-Wpointer-sign]
(*env)->ReleaseStringUTFChars(env, rtmp_url, url);
                                           ^~~
jni/ffmpeg-jni.c:297:18: warning: initializing 'unsigned char *' with an expression of type 'jbyte *'
  (aka 'signed char *') converts between pointers to integer types with different sign [-Wpointer-sign]
 unsigned char *yuv_data = (*env)->GetByteArrayElements(env, yuv_image, 0);
             ^          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 jni/ffmpeg-jni.c:330:52: warning: passing 'unsigned char *' to parameter of type 'jbyte *' (aka 'signed char *')
  converts between pointers to integer types with different sign [-Wpointer-sign]
 (*env)->ReleaseByteArrayElements(env, yuv_image, yuv_data, 0);
                                               ^~~~~~~~
5 warnings generated.
[arm64-v8a] Compile        : lame <= VbrTag.c
jni/../third_party/lame/libmp3lame/VbrTag.c:263:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[0], 8u, 0xffu);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:265:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[1], 3u, 7);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:266:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[1], 1u, (gfp->out_samplerate < 16000) ? 0 : 1);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:267:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[1], 1u, gfp->version);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:268:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[1], 2u, 4 - 3);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:269:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[1], 1u, (!gfp->error_protection) ? 1 : 0);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:271:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[2], 4u, gfc->bitrate_index);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:272:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[2], 2u, gfc->samplerate_index);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:273:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[2], 1u, 0);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:274:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[2], 1u, gfp->extension);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:276:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[3], 2u, gfp->mode);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:277:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[3], 2u, gfc->mode_ext);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:278:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[3], 1u, gfp->copyright);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:279:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[3], 1u, gfp->original);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:280:5: warning: shifting a negative signed value is undefined
  [-Wshift-negative-value]
SHIFT_IN_BITS_VALUE(buffer[3], 2u, gfp->emphasis);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
jni/../third_party/lame/libmp3lame/VbrTag.c:255:68: note: expanded from macro 'SHIFT_IN_BITS_VALUE'
#define SHIFT_IN_BITS_VALUE(x,n,v) ( x = (x << (n)) | ( (v) & ~(-1 << (n)) ) )
                                                            ~~ ^
jni/../third_party/lame/libmp3lame/VbrTag.c:421:23: warning: comparison of array 'pTagData->toc' not equal to a null
  pointer is always true [-Wtautological-pointer-compare]
    if (pTagData->toc != NULL) {
        ~~~~~~~~~~^~~    ~~~~
16 warnings generated.
[arm64-v8a] Compile        : lame <= bitstream.c
[arm64-v8a] Compile        : lame <= encoder.c
[arm64-v8a] Compile        : lame <= fft.c
[arm64-v8a] Compile        : lame <= gain_analysis.c
[arm64-v8a] Compile        : lame <= id3tag.c
[arm64-v8a] Compile        : lame <= lame.c
jni/../third_party/lame/libmp3lame/lame.c:603:13: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
    if (EQ(gfp->compression_ratio, 0))
        ^
jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
(fabs(a) > fabs(b)) \
       ^
jni/../third_party/lame/libmp3lame/lame.c:603:13: note: use function 'abs' instead
jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
(fabs(a) > fabs(b)) \
       ^
jni/../third_party/lame/libmp3lame/lame.c:603:13: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
    if (EQ(gfp->compression_ratio, 0))
        ^
jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
: (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
jni/../third_party/lame/libmp3lame/lame.c:603:13: note: use function 'abs' instead
jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
: (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
jni/../third_party/lame/libmp3lame/lame.c:1559:9: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
if (NEQ(gfp->scale, 0) && NEQ(gfp->scale, 1.0)) {
    ^
jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
#define NEQ(a,b) (!EQ(a,b))
               ^
jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
(fabs(a) > fabs(b)) \
       ^
jni/../third_party/lame/libmp3lame/lame.c:1559:9: note: use function 'abs' instead
jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
#define NEQ(a,b) (!EQ(a,b))
               ^
jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
(fabs(a) > fabs(b)) \
       ^
jni/../third_party/lame/libmp3lame/lame.c:1559:9: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
if (NEQ(gfp->scale, 0) && NEQ(gfp->scale, 1.0)) {
    ^
jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
#define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 jni/../third_party/lame/libmp3lame/lame.c:1559:9: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
  jni/../third_party/lame/libmp3lame/lame.c:1568:9: warning: using floating point absolute value function 'fabs' when
   argument is of integer type [-Wabsolute-value]
 if (NEQ(gfp->scale_left, 0) && NEQ(gfp->scale_left, 1.0)) {
    ^
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
 (fabs(a) > fabs(b)) \
       ^
 jni/../third_party/lame/libmp3lame/lame.c:1568:9: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
 (fabs(a) > fabs(b)) \
       ^
 jni/../third_party/lame/libmp3lame/lame.c:1568:9: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 if (NEQ(gfp->scale_left, 0) && NEQ(gfp->scale_left, 1.0)) {
    ^
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 jni/../third_party/lame/libmp3lame/lame.c:1568:9: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 jni/../third_party/lame/libmp3lame/lame.c:1575:9: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 if (NEQ(gfp->scale_right, 0) && NEQ(gfp->scale_right, 1.0)) {
    ^
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
 (fabs(a) > fabs(b)) \
       ^
 jni/../third_party/lame/libmp3lame/lame.c:1575:9: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
 (fabs(a) > fabs(b)) \
       ^
 jni/../third_party/lame/libmp3lame/lame.c:1575:9: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 if (NEQ(gfp->scale_right, 0) && NEQ(gfp->scale_right, 1.0)) {
    ^
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 jni/../third_party/lame/libmp3lame/lame.c:1575:9: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:175:20: note: expanded from macro 'NEQ'
 #define NEQ(a,b) (!EQ(a,b))
               ^
 jni/ ../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 8 warnings generated.
 [arm64-v8a] Compile        : lame <= mpglib_interface.c
 [arm64-v8a] Compile        : lame <= newmdct.c
 [arm64-v8a] Compile        : lame <= presets.c
 jni/../third_party/lame/libmp3lame/presets.c:145:5: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 SET_OPTION(quant_comp, set->quant_comp, -1);
 ^
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:145:5: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:146:5: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 SET_OPTION(quant_comp_short, set->quant_comp_s, -1);
 ^
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:146:5: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:259:5: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 SET_OPTION(quant_comp, abr_switch_map[r].quant_comp, -1);
 ^
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:259:5: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:260:5: warning: using floating point absolute value function 'fabs' when
  argument is of integer type [-Wabsolute-value]
 SET_OPTION(quant_comp_short, abr_switch_map[r].quant_comp_s, -1);
 ^
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 jni/../third_party/lame/libmp3lame/presets.c:260:5: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/presets.c:36:16: note: expanded from macro 'SET_OPTION'
 else if (!(fabs(lame_get_##opt(gfp) - def) > 0)) \
           ^
 4 warnings generated.
 [arm64-v8a] Compile        : lame <= psymodel.c
 [arm64-v8a] Compile        : lame <= quantize.c
 [arm64-v8a] Compile        : lame <= quantize_pvt.c
 jni/../third_party/lame/libmp3lame/quantize_pvt.c:664:23: warning: using floating point absolute value function 'fabs'
  when argument is of integer type [-Wabsolute-value]
    while (k-- && EQ(xr[k], 0)) {
                  ^
 jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
 (fabs(a) > fabs(b)) \
       ^
 jni/../third_party/lame/libmp3lame/quantize_pvt.c:664:23: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:168:12: note: expanded from macro 'EQ'
 (fabs(a) > fabs(b)) \
       ^
 jni/../third_party/lame/libmp3lame/quantize_pvt.c:664:23: warning: using floating point absolute value function 'fabs'
  when argument is of integer type [-Wabsolute-value]
    while (k-- && EQ(xr[k], 0)) {
                  ^
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 :  (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 jni/../third_party/lame/libmp3lame/quantize_pvt.c:664:23: note: use function 'abs' instead
 jni/../third_party/lame/libmp3lame/machine.h:170:23: note: expanded from macro 'EQ'
 : (fabs((a)-(b)) <= (fabs(b) * 1e-6f)))
                  ^
 2 warnings generated.
 [arm64-v8a] Compile        : lame <= reservoir.c
 [arm64-v8a] Compile        : lame <= set_get.c
 [arm64-v8a] Compile        : lame <= tables.c
 [arm64-v8a] Compile        : lame <= takehiro.c
 [arm64-v8a] Compile        : lame <= util.c
 [arm64-v8a] Compile        : lame <= vbrquantize.c
 [arm64-v8a] Compile        : lame <= version.c
 [ arm64-v8a] StaticLibrary  : liblame.a
 [ arm64-v8a] SharedLibrary  : libffmpeg.so
 jni/../third_party/lib/libavformat.a: error adding symbols: File in wrong format
 clang++: error: linker command failed with exit code 1 (use -v to see invocation)
 make: *** [D:/install/sdk/ndk/21.0.6113669/build//../build/core/build-binary.mk:725: obj/local/arm64-v8a/libffmpeg.so] Error 1

  D:\Github\n>


    



    How can I solve this ?