Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Ffmpeg 32 bits vs 64 bits limitation


Sujet :

C

  1. #1
    Membre régulier
    Ffmpeg 32 bits vs 64 bits limitation
    Bonjour à tous,

    Je suis un peu embête par une limitation du logiciel FFMPEG. En effet, j'utilise l'option -start_number qui limite le nombre à 2 147 483 648 soit la valeur max d'un INT.

    En C, peut-on avec le même programme source utiliser le format "int" pour les processeurs 32 bits et "long long" pour les processeurs 64 bits?

    Merci

  2. #2
    Membre régulier
    Bonjour,

    oui, de plusieurs façons en fait.
    Sous Linux par exemple, le plus simple est simplement d'utiliser le type long int. En effet, sur un linux32 long int est de la taille d'un int (soit 4 bytes) et sur un linux64 long int est de la taille d'un long long int (soit 8 bytes). Il faudrait vérifier le cas Linux X32 …
    Sinon en passant par des typedef et le préprocesseur, un peu comme cela :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    #if MSVC
        #ifdef _M_X86
            #define ARCH_X86
        #endif
    #endif
     
    #if GCC
        #ifdef __i386__
            #define ARCH_X86
        #endif
    #endif
     
    #ifdef ARCH_X86
        typedef int MyNumberType;
        #define PRINT_MY_NUMBER "d"
    #else
        typedef long long int MyNumberType;
        #define PRINT_MY_NUMBER "ll"
    #endif

    Mais c'est un peu plus lourd et il y a beaucoup de cas à vérifier suivant le processeur, le compilateur, l'architecture, etc ...
    Des infos sur les macros prédéfinies : https://sourceforge.net/p/predef/wiki/Home/

  3. #3
    Rédacteur/Modérateur

    Sur leur site ils ont des versions 64 bits pour Windows, Mac et Linux.
    Si ça suffit pas, c'est une limitation du programme, et à part le recompiler tu pourras pas grand chose.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

###raw>template_hook.ano_emploi###