Ability to disable console and logos. Logos added. Audio buffer reduced.
This commit is contained in:
parent
21596d97ec
commit
675e54462b
12 changed files with 140 additions and 22 deletions
1
.gitattributes
vendored
1
.gitattributes
vendored
|
@ -1 +1,2 @@
|
||||||
*.png filter=lfs diff=lfs merge=lfs -text
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xcf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
|
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -37,3 +37,5 @@ build/
|
||||||
singe/source.inc.sh
|
singe/source.inc.sh
|
||||||
singe/font.h
|
singe/font.h
|
||||||
singe/icon.h
|
singe/icon.h
|
||||||
|
singe/kangarooPunchLogo.h
|
||||||
|
singe/singeLogo.h
|
||||||
|
|
BIN
singe/kangarooPunchLogo.png
(Stored with Git LFS)
Normal file
BIN
singe/kangarooPunchLogo.png
(Stored with Git LFS)
Normal file
Binary file not shown.
19
singe/main.c
19
singe/main.c
|
@ -78,19 +78,20 @@ void showUsage(char *name, char *message) {
|
||||||
utilSay(" -v, --framefile=FILENAME use an alternate video file");
|
utilSay(" -v, --framefile=FILENAME use an alternate video file");
|
||||||
utilSay(" -d, --datadir=PATHNAME alternate location for written files");
|
utilSay(" -d, --datadir=PATHNAME alternate location for written files");
|
||||||
utilSay(" -m, --nomouse disable mouse");
|
utilSay(" -m, --nomouse disable mouse");
|
||||||
utilSay(" -n, --noserversend do not send usage statistics");
|
//utilSay(" -n, --noserversend do not send usage statistics");
|
||||||
utilSay(" -s, --nosound, --mutesound mutes all sound");
|
utilSay(" -s, --nosound, --mutesound mutes all sound");
|
||||||
utilSay(" -f, --fullscreen run in full screen mode");
|
utilSay(" -f, --fullscreen run in full screen mode");
|
||||||
utilSay(" -w, --fullscreen_window run in windowed full screen mode");
|
utilSay(" -w, --fullscreen_window run in windowed full screen mode");
|
||||||
utilSay(" -l, --volume_vldp=PERCENT specify laserdisc volume in percent");
|
utilSay(" -l, --volume_vldp=PERCENT specify laserdisc volume in percent");
|
||||||
utilSay(" -e, --volume_nonvldp=PERCENT specify sound effects volume in percent");
|
utilSay(" -e, --volume_nonvldp=PERCENT specify sound effects volume in percent");
|
||||||
utilSay(" -z, --scalefactor=PERCENT reduce screen size for overscan compensation");
|
//utilSay(" -o, --scalefactor=PERCENT reduce screen size for overscan compensation");
|
||||||
utilSay(" -a, --aspect=N:D force aspect ratio");
|
utilSay(" -a, --aspect=N:D force aspect ratio");
|
||||||
utilSay(" -u, --stretch use ugly stretched video");
|
utilSay(" -u, --stretch use ugly stretched video");
|
||||||
utilSay(" -x, --xresolution=VALUE specify horizontal resolution");
|
utilSay(" -x, --xresolution=VALUE specify horizontal resolution");
|
||||||
utilSay(" -y, --yresolution=VALUE specify vertical resolution");
|
utilSay(" -y, --yresolution=VALUE specify vertical resolution");
|
||||||
utilSay(" -t, --trace trace script execution to screen and file");
|
utilSay(" -t, --trace trace script execution to screen and file");
|
||||||
utilSay(" -c, --showcalculated show calculated framefile values for debugging");
|
utilSay(" -c, --showcalculated show calculated framefile values for debugging");
|
||||||
|
utilSay(" -z, --noconsole zero console output, no splash screens");
|
||||||
utilSay(" -h, --help this display");
|
utilSay(" -h, --help this display");
|
||||||
utilSay("");
|
utilSay("");
|
||||||
if (message) {
|
if (message) {
|
||||||
|
@ -126,7 +127,7 @@ int main(int argc, char *argv[]) {
|
||||||
SDL_DisplayMode mode;
|
SDL_DisplayMode mode;
|
||||||
static struct option options[] = {
|
static struct option options[] = {
|
||||||
{ "nomouse", no_argument, NULL, 'm' },
|
{ "nomouse", no_argument, NULL, 'm' },
|
||||||
{ "noserversend", no_argument, NULL, 'n' },
|
// { "noserversend", no_argument, NULL, 'n' },
|
||||||
{ "nosound", no_argument, NULL, 's' },
|
{ "nosound", no_argument, NULL, 's' },
|
||||||
{ "mutesound", no_argument, NULL, 's' },
|
{ "mutesound", no_argument, NULL, 's' },
|
||||||
{ "fullscreen", no_argument, NULL, 'f' },
|
{ "fullscreen", no_argument, NULL, 'f' },
|
||||||
|
@ -136,13 +137,14 @@ int main(int argc, char *argv[]) {
|
||||||
{ "framefile", optional_argument, NULL, 'v' },
|
{ "framefile", optional_argument, NULL, 'v' },
|
||||||
{ "volume_vldp", optional_argument, NULL, 'l' },
|
{ "volume_vldp", optional_argument, NULL, 'l' },
|
||||||
{ "volume_nonlvdp", optional_argument, NULL, 'e' },
|
{ "volume_nonlvdp", optional_argument, NULL, 'e' },
|
||||||
{ "scalefactor", optional_argument, NULL, 'z' },
|
// { "scalefactor", optional_argument, NULL, 'o' },
|
||||||
{ "aspect", optional_argument, NULL, 'a' },
|
{ "aspect", optional_argument, NULL, 'a' },
|
||||||
{ "xresolution", optional_argument, NULL, 'x' },
|
{ "xresolution", optional_argument, NULL, 'x' },
|
||||||
{ "yresolution", optional_argument, NULL, 'y' },
|
{ "yresolution", optional_argument, NULL, 'y' },
|
||||||
{ "help", no_argument, NULL, 'h' },
|
{ "help", no_argument, NULL, 'h' },
|
||||||
{ "trace", no_argument, NULL, 't' },
|
{ "trace", no_argument, NULL, 't' },
|
||||||
{ "showcalculated", no_argument, NULL, 'c' },
|
{ "showcalculated", no_argument, NULL, 'c' },
|
||||||
|
{ "noconsole", no_argument, NULL, 'z' },
|
||||||
{ NULL, 0, NULL, 0 }
|
{ NULL, 0, NULL, 0 }
|
||||||
};
|
};
|
||||||
static ModeT modes[] = {
|
static ModeT modes[] = {
|
||||||
|
@ -240,8 +242,8 @@ int main(int argc, char *argv[]) {
|
||||||
_confVolumeNonVldp = atoi(optarg);
|
_confVolumeNonVldp = atoi(optarg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
// Zoom
|
// Overscan Zoom
|
||||||
case 'z':
|
case 'o':
|
||||||
_confScaleFactor = atoi(optarg);
|
_confScaleFactor = atoi(optarg);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
@ -271,6 +273,11 @@ int main(int argc, char *argv[]) {
|
||||||
tracing = true;
|
tracing = true;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
// No console output or splash screens
|
||||||
|
case 'z':
|
||||||
|
_confNoConsole = true;
|
||||||
|
break;
|
||||||
|
|
||||||
// Show Calculated Frame File Values
|
// Show Calculated Frame File Values
|
||||||
case 'c':
|
case 'c':
|
||||||
_confShowCalculated = true;
|
_confShowCalculated = true;
|
||||||
|
|
|
@ -408,3 +408,13 @@ createEmbeddedBinary font.png font.h FONT_H
|
||||||
|
|
||||||
# === Window Icon ===
|
# === Window Icon ===
|
||||||
createEmbeddedBinary icon.png icon.h ICON_H
|
createEmbeddedBinary icon.png icon.h ICON_H
|
||||||
|
|
||||||
|
# === Kangaroo Punch Logo ===
|
||||||
|
createEmbeddedBinary kangarooPunchLogo.png kangarooPunchLogo.h KANGAROOPUNCHLOGO_H
|
||||||
|
|
||||||
|
# === Singe Logo ===
|
||||||
|
if [[ ! -e singeLogo.h ]]; then
|
||||||
|
xcf2png singeLogo.xcf -o singeLogo.png
|
||||||
|
createEmbeddedBinary singeLogo.png singeLogo.h SINGELOGO_H
|
||||||
|
rm singeLogo.png
|
||||||
|
fi
|
||||||
|
|
|
@ -38,6 +38,8 @@
|
||||||
#include "videoPlayer.h"
|
#include "videoPlayer.h"
|
||||||
#include "singe.h"
|
#include "singe.h"
|
||||||
#include "font.h"
|
#include "font.h"
|
||||||
|
#include "kangarooPunchLogo.h"
|
||||||
|
#include "singeLogo.h"
|
||||||
|
|
||||||
|
|
||||||
#define AUDIO_MAX_VOLUME 63
|
#define AUDIO_MAX_VOLUME 63
|
||||||
|
@ -154,6 +156,7 @@ bool _confNoSound = false;
|
||||||
bool _confFullScreen = false;
|
bool _confFullScreen = false;
|
||||||
bool _confFullScreenWindow = false;
|
bool _confFullScreenWindow = false;
|
||||||
bool _confShowCalculated = false;
|
bool _confShowCalculated = false;
|
||||||
|
bool _confNoConsole = false;
|
||||||
int32_t _confVolumeVldp = 100;
|
int32_t _confVolumeVldp = 100;
|
||||||
int32_t _confVolumeNonVldp = 100;
|
int32_t _confVolumeNonVldp = 100;
|
||||||
int32_t _confScaleFactor = 100;
|
int32_t _confScaleFactor = 100;
|
||||||
|
@ -304,6 +307,7 @@ int32_t apiSingeQuit(lua_State *L);
|
||||||
int32_t apiSingeVersion(lua_State *L);
|
int32_t apiSingeVersion(lua_State *L);
|
||||||
int32_t apiSingeSetGameName(lua_State *L);
|
int32_t apiSingeSetGameName(lua_State *L);
|
||||||
int32_t apiSingeGetScriptPath(lua_State *L);
|
int32_t apiSingeGetScriptPath(lua_State *L);
|
||||||
|
void doLogos(void);
|
||||||
void callLua(const char *func, const char *sig, ...);
|
void callLua(const char *func, const char *sig, ...);
|
||||||
void channelFinished(int channel);
|
void channelFinished(int channel);
|
||||||
void luaDie(lua_State *L, char *method, char *fmt, ...);
|
void luaDie(lua_State *L, char *method, char *fmt, ...);
|
||||||
|
@ -1843,6 +1847,74 @@ void channelFinished(int channel) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void doLogos(void) {
|
||||||
|
int32_t i = 0;
|
||||||
|
int32_t w = 0;
|
||||||
|
int32_t h = 0;
|
||||||
|
SDL_Surface *surfKangaroo = NULL;
|
||||||
|
SDL_Surface *surfSinge = NULL;
|
||||||
|
SDL_Texture *texKangaroo = NULL;
|
||||||
|
SDL_Texture *texSinge = NULL;
|
||||||
|
|
||||||
|
SDL_RenderGetLogicalSize(_renderer, &w, &h);
|
||||||
|
|
||||||
|
surfKangaroo = IMG_LoadPNG_RW(SDL_RWFromMem(kangarooPunchLogo_png, kangarooPunchLogo_png_len));
|
||||||
|
if (!surfKangaroo) utilDie("%s", IMG_GetError());
|
||||||
|
surfSinge = IMG_LoadPNG_RW(SDL_RWFromMem(singeLogo_png, singeLogo_png_len));
|
||||||
|
if (!surfSinge) utilDie("%s", IMG_GetError());
|
||||||
|
|
||||||
|
texKangaroo = SDL_CreateTextureFromSurface(_renderer, surfKangaroo);
|
||||||
|
if (!texKangaroo) utilDie("%s", SDL_GetError());
|
||||||
|
texSinge = SDL_CreateTextureFromSurface(_renderer, surfSinge);
|
||||||
|
if (!texSinge) utilDie("%s", SDL_GetError());
|
||||||
|
|
||||||
|
// Fade in to white with Kangaroo logo
|
||||||
|
SDL_RenderSetLogicalSize(_renderer, surfKangaroo->w, surfKangaroo->h);
|
||||||
|
for (i=0; i<256; i++) {
|
||||||
|
SDL_SetRenderDrawColor(_renderer, i, i, i, 255);
|
||||||
|
SDL_RenderClear(_renderer);
|
||||||
|
SDL_SetTextureAlphaMod(texKangaroo, i);
|
||||||
|
SDL_RenderCopy(_renderer, texKangaroo, NULL, NULL);
|
||||||
|
SDL_RenderPresent(_renderer);
|
||||||
|
SDL_Delay(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_Delay(1000);
|
||||||
|
|
||||||
|
// Cross fade to Singe logo
|
||||||
|
for (i=0; i<256; i++) {
|
||||||
|
SDL_RenderClear(_renderer);
|
||||||
|
SDL_SetTextureAlphaMod(texKangaroo, 255 - i);
|
||||||
|
SDL_RenderCopy(_renderer, texKangaroo, NULL, NULL);
|
||||||
|
SDL_SetTextureAlphaMod(texSinge, i);
|
||||||
|
SDL_RenderCopy(_renderer, texSinge, NULL, NULL);
|
||||||
|
SDL_RenderPresent(_renderer);
|
||||||
|
SDL_Delay(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_Delay(1000);
|
||||||
|
|
||||||
|
// Fade to black
|
||||||
|
SDL_RenderSetLogicalSize(_renderer, surfSinge->w, surfSinge->h);
|
||||||
|
for (i=255; i>=0; i--) {
|
||||||
|
SDL_SetRenderDrawColor(_renderer, i, i, i, 255);
|
||||||
|
SDL_RenderClear(_renderer);
|
||||||
|
SDL_SetTextureAlphaMod(texSinge, i);
|
||||||
|
SDL_RenderCopy(_renderer, texSinge, NULL, NULL);
|
||||||
|
SDL_RenderPresent(_renderer);
|
||||||
|
SDL_Delay(5);
|
||||||
|
}
|
||||||
|
|
||||||
|
SDL_DestroyTexture(texSinge);
|
||||||
|
SDL_DestroyTexture(texKangaroo);
|
||||||
|
|
||||||
|
SDL_FreeSurface(surfSinge);
|
||||||
|
SDL_FreeSurface(surfKangaroo);
|
||||||
|
|
||||||
|
SDL_RenderSetLogicalSize(_renderer, w, h);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void luaDie(lua_State *L, char *method, char *fmt, ...) {
|
void luaDie(lua_State *L, char *method, char *fmt, ...) {
|
||||||
va_list args;
|
va_list args;
|
||||||
lua_Debug ar;
|
lua_Debug ar;
|
||||||
|
@ -2002,6 +2074,10 @@ void singe(SDL_Window *window, SDL_Renderer *renderer) {
|
||||||
_window = window;
|
_window = window;
|
||||||
_renderer = renderer;
|
_renderer = renderer;
|
||||||
|
|
||||||
|
if (!_confNoConsole) {
|
||||||
|
doLogos();
|
||||||
|
}
|
||||||
|
|
||||||
// Start Lua
|
// Start Lua
|
||||||
_luaContext = luaL_newstate();
|
_luaContext = luaL_newstate();
|
||||||
luaL_openlibs(_luaContext);
|
luaL_openlibs(_luaContext);
|
||||||
|
@ -2305,10 +2381,10 @@ void singe(SDL_Window *window, SDL_Renderer *renderer) {
|
||||||
if (_refreshDisplay || _discStopped) {
|
if (_refreshDisplay || _discStopped) {
|
||||||
if (_discStopped) {
|
if (_discStopped) {
|
||||||
// Stopped discs display blue like the good old days
|
// Stopped discs display blue like the good old days
|
||||||
SDL_SetRenderTarget(renderer, _videoTexture);
|
SDL_SetRenderTarget(_renderer, _videoTexture);
|
||||||
SDL_SetRenderDrawColor(renderer, 0, 0, 255, 255);
|
SDL_SetRenderDrawColor(_renderer, 0, 0, 255, 255);
|
||||||
SDL_RenderClear(renderer);
|
SDL_RenderClear(_renderer);
|
||||||
SDL_SetRenderTarget(renderer, NULL);
|
SDL_SetRenderTarget(_renderer, NULL);
|
||||||
}
|
}
|
||||||
SDL_RenderCopy(_renderer, _videoTexture, NULL, NULL);
|
SDL_RenderCopy(_renderer, _videoTexture, NULL, NULL);
|
||||||
overlayTexture = SDL_CreateTextureFromSurface(_renderer, _overlay);
|
overlayTexture = SDL_CreateTextureFromSurface(_renderer, _overlay);
|
||||||
|
|
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
// Don't forget to update singe.rc!
|
// Don't forget to update singe.rc!
|
||||||
#define SINGE_VERSION 2.00
|
#define SINGE_VERSION 2.00
|
||||||
#define VERSION_STRING "v2.00b6"
|
#define VERSION_STRING "v2.00b7"
|
||||||
#define COPYRIGHT_END_YEAR "2020"
|
#define COPYRIGHT_END_YEAR "2020"
|
||||||
|
|
||||||
|
|
||||||
|
@ -47,6 +47,7 @@ extern bool _confNoSound;
|
||||||
extern bool _confFullScreen;
|
extern bool _confFullScreen;
|
||||||
extern bool _confFullScreenWindow;
|
extern bool _confFullScreenWindow;
|
||||||
extern bool _confShowCalculated;
|
extern bool _confShowCalculated;
|
||||||
|
extern bool _confNoConsole;
|
||||||
extern int32_t _confVolumeVldp;
|
extern int32_t _confVolumeVldp;
|
||||||
extern int32_t _confVolumeNonVldp;
|
extern int32_t _confVolumeNonVldp;
|
||||||
extern int32_t _confScaleFactor;
|
extern int32_t _confScaleFactor;
|
||||||
|
|
|
@ -89,7 +89,9 @@ HEADERS += \
|
||||||
videoPlayer.h \
|
videoPlayer.h \
|
||||||
singe.h \
|
singe.h \
|
||||||
extensions.h \
|
extensions.h \
|
||||||
font.h
|
font.h \
|
||||||
|
singeLogo.h \
|
||||||
|
kangarooPunchLogo.h
|
||||||
|
|
||||||
SOURCES += \
|
SOURCES += \
|
||||||
$$MANYMOUSE_SOURCES \
|
$$MANYMOUSE_SOURCES \
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
101 ICON "/tmp/icon.ico"
|
101 ICON "/tmp/icon.ico"
|
||||||
1 VERSIONINFO
|
1 VERSIONINFO
|
||||||
FILEVERSION 2,0,0,6
|
FILEVERSION 2,0,0,7
|
||||||
PRODUCTVERSION 2,0,0,6
|
PRODUCTVERSION 2,0,0,7
|
||||||
BEGIN
|
BEGIN
|
||||||
BLOCK "StringFileInfo"
|
BLOCK "StringFileInfo"
|
||||||
BEGIN
|
BEGIN
|
||||||
|
@ -9,12 +9,12 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "Kangaroo Punch Studios"
|
VALUE "CompanyName", "Kangaroo Punch Studios"
|
||||||
VALUE "FileDescription", "Somewhat Interactive Nostalgic Game Emulator"
|
VALUE "FileDescription", "Somewhat Interactive Nostalgic Game Emulator"
|
||||||
VALUE "FileVersion", "2.00b6"
|
VALUE "FileVersion", "2.00b7"
|
||||||
VALUE "InternalName", "Singe"
|
VALUE "InternalName", "Singe"
|
||||||
VALUE "LegalCopyright", "Copyright 2006-2020 Scott C. Duensing"
|
VALUE "LegalCopyright", "Copyright 2006-2020 Scott C. Duensing"
|
||||||
VALUE "OriginalFilename", "singe.exe"
|
VALUE "OriginalFilename", "singe.exe"
|
||||||
VALUE "ProductName", "Singe"
|
VALUE "ProductName", "Singe"
|
||||||
VALUE "ProductVersion", "2.00b6"
|
VALUE "ProductVersion", "2.00b7"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
BIN
singe/singeLogo.xcf
(Stored with Git LFS)
Normal file
BIN
singe/singeLogo.xcf
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -37,6 +37,9 @@ static const int CONSOLE_LINES = 1000;
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
|
|
||||||
|
extern bool _confNoConsole;
|
||||||
|
|
||||||
|
|
||||||
FILE *utilTraceFile = NULL;
|
FILE *utilTraceFile = NULL;
|
||||||
|
|
||||||
|
|
||||||
|
@ -77,11 +80,13 @@ void utilDie(char *fmt, ...) {
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
vfprintf(stderr, fmt, args);
|
vfprintf(stderr, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
if (!_confNoConsole) {
|
||||||
printf("\n");
|
printf("\n");
|
||||||
fflush(stderr);
|
fflush(stderr);
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
getchar();
|
getchar();
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -288,9 +293,11 @@ void utilSay(char *fmt, ...) {
|
||||||
va_start(args, fmt);
|
va_start(args, fmt);
|
||||||
vfprintf(stdout, fmt, args);
|
vfprintf(stdout, fmt, args);
|
||||||
va_end(args);
|
va_end(args);
|
||||||
|
if (!_confNoConsole) {
|
||||||
printf("\n");
|
printf("\n");
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void utilTrace(char *fmt, ...) {
|
void utilTrace(char *fmt, ...) {
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
#include "videoPlayer.h"
|
#include "videoPlayer.h"
|
||||||
|
|
||||||
|
|
||||||
#define AUDIO_STREAM_LOW_WATERMARK (32 * 1024)
|
#define AUDIO_STREAM_LOW_WATERMARK (24 * 1024)
|
||||||
#define AUDIO_SAMPLE_PREREAD 1024
|
#define AUDIO_SAMPLE_PREREAD 1024
|
||||||
#define AUDIO_SILENCE_SECONDS 2
|
#define AUDIO_SILENCE_SECONDS 2
|
||||||
|
|
||||||
|
@ -110,6 +110,8 @@ void _dequeueVideoAudio(int channel, void *stream, int bytes, void *udata) { /
|
||||||
remainder = bytesToCopy % v->audioSampleSize;
|
remainder = bytesToCopy % v->audioSampleSize;
|
||||||
bytesToCopy -= remainder;
|
bytesToCopy -= remainder;
|
||||||
|
|
||||||
|
//utilSay("B: %d R: %d W: %ld", bytes, remainder, SDL_AudioStreamAvailable(v->audioStream));
|
||||||
|
|
||||||
// Read audio data
|
// Read audio data
|
||||||
bytesRead = SDL_AudioStreamGet(v->audioStream, stream, bytesToCopy);
|
bytesRead = SDL_AudioStreamGet(v->audioStream, stream, bytesToCopy);
|
||||||
if (bytesRead < 0) utilDie("%s", SDL_GetError());
|
if (bytesRead < 0) utilDie("%s", SDL_GetError());
|
||||||
|
@ -593,6 +595,10 @@ int32_t videoUpdate(int32_t playerHandle, SDL_Texture **texture) {
|
||||||
if (FFMS_GetAudio(v->audioSource, v->audioBuffer, v->audioPosition, count, &v->errInfo)) utilDie("%s", v->errInfo.Buffer);
|
if (FFMS_GetAudio(v->audioSource, v->audioBuffer, v->audioPosition, count, &v->errInfo)) utilDie("%s", v->errInfo.Buffer);
|
||||||
// Feed it to the mixer stream
|
// Feed it to the mixer stream
|
||||||
if (SDL_AudioStreamPut(v->audioStream, v->audioBuffer, (int32_t)(count * v->audioSampleSize)) < 0) utilDie("%s", SDL_GetError());
|
if (SDL_AudioStreamPut(v->audioStream, v->audioBuffer, (int32_t)(count * v->audioSampleSize)) < 0) utilDie("%s", SDL_GetError());
|
||||||
|
|
||||||
|
//int64_t temp = (int64_t)((double)(v->timestamp * 0.001) * (double)v->audioProps->SampleRate);
|
||||||
|
//utilSay("A: %ld C: %ld D: %ld W: %ld", v->audioPosition, temp, v->audioPosition - temp, SDL_AudioStreamAvailable(v->audioStream));
|
||||||
|
|
||||||
v->audioPosition += count;
|
v->audioPosition += count;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue