MP3 Streaming Calculator v0.1

This site uses cookies. By continuing to browse this site, you are agreeing to our use of cookies. More details

  • MP3 Streaming Calculator v0.1

    Hier ein spotanes Tool um auszurechnen, wie lang man CIRCA das streamen von MP3 Dateien bei seinem monatlichen Datenvolumen betreiben kann.

    ACHTUNG: Quick & Dirty Implementation. Diese Variante rechnet unter gcc/clang Unix/Mac korrekt, unter anderen Compilern/Betriebssystemen können fehlerhafte Ergebnisse auftreten. Man müsste das Plattformunabhängiger über die in C gesetzten Konstanten für die Datentypen regeln, um zu garantieren, dass die gewünschte Breite verwendet wird.


    UPDATE 10.10 : Kleiner Fix mit den Datentypen bei versch. Compilern (siehe Bemerkung oben)

    C Source Code

    1. #include <stdlib.h>
    2. #include <stdio.h>
    3. #if defined(_MSC_VER)
    4. typedef long long int64;
    5. #else /* __GNUC__ etc. */
    6. typedef long int64;
    7. #endif
    8. // Makros
    9. #define MB2KBIT(x) ((int64)((int64)((int64)(x << 10) << 10) << 3) >> 10)
    10. #define SECTOTIME(x) printf("Stream-Runtime: \"%02d:%02d:%02d\"\n", (x / 3600), ((x % 3600) / 60), (x % 60))
    11. // Funktionsprototypen
    12. void getStreamingRuntime(short, int);
    13. int main(int argc, char **argv)
    14. {
    15. printf("\t..:: MP3 Streaming Calculator v0.1 ::..\n\n");
    16. getStreamingRuntime(96, 750);
    17. return EXIT_SUCCESS;
    18. }
    19. /**
    20. Calculate the runtime of the mp3 stream
    21. with the given bitrate and your free mb limit.
    22. ----------------------------------------------
    23. @param short kbit - the kilobits per second of the stream
    24. @param int volume - the upper limit of megabytes you can afford
    25. */
    26. void getStreamingRuntime(short kbit, int volume)
    27. {
    28. printf("Streaming-Quality: %d Kbit/s\nData-Volume per Month: %d MegaBytes\n", kbit, volume);
    29. int64 kilobitsVolume = MB2KBIT(volume);
    30. SECTOTIME((int)(kilobitsVolume / kbit));
    31. }
    Display All

    ..:: AUSGABE ::..