summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTuomas Virtanen <katajakasa@gmail.com>2016-01-16 17:55:06 +0200
committerTuomas Virtanen <katajakasa@gmail.com>2016-01-16 17:57:00 +0200
commit90f295b584a4c4396d054e25b266791796d17965 (patch)
tree8044d12764ade60cbdd9d321f637418759fff2c8
parent20bfdbb781575fd6ee3c6e8624a09e314b65a162 (diff)
Audio & video example fixes
-rw-r--r--examples/example_video.c29
-rw-r--r--src/kitplayer.c20
2 files changed, 29 insertions, 20 deletions
diff --git a/examples/example_video.c b/examples/example_video.c
index 49725d2..327a9b0 100644
--- a/examples/example_video.c
+++ b/examples/example_video.c
@@ -140,21 +140,25 @@ int main(int argc, char *argv[]) {
}
fprintf(stderr, "Media information:\n");
- fprintf(stderr, " * Audio: %s (%s), %dHz, %dch, %db, %s\n",
- pinfo.acodec,
- pinfo.acodec_name,
- pinfo.audio.samplerate,
- pinfo.audio.channels,
- pinfo.audio.bytes,
- pinfo.audio.is_signed ? "signed" : "unsigned");
+ if(pinfo.audio.is_enabled) {
+ fprintf(stderr, " * Audio: %s (%s), %dHz, %dch, %db, %s\n",
+ pinfo.acodec,
+ pinfo.acodec_name,
+ pinfo.audio.samplerate,
+ pinfo.audio.channels,
+ pinfo.audio.bytes,
+ pinfo.audio.is_signed ? "signed" : "unsigned");
+ }
fprintf(stderr, " * Video: %s (%s), %dx%d\n",
pinfo.vcodec,
pinfo.vcodec_name,
pinfo.video.width,
pinfo.video.height);
- fprintf(stderr, " * Subtitle: %s (%s)\n",
- pinfo.vcodec,
- pinfo.vcodec_name);
+ if(pinfo.subtitle.is_enabled) {
+ fprintf(stderr, " * Subtitle: %s (%s)\n",
+ pinfo.scodec,
+ pinfo.scodec_name);
+ }
fprintf(stderr, "Duration: %f seconds\n", Kit_GetPlayerDuration(player));
// Init audio
@@ -208,20 +212,25 @@ int main(int argc, char *argv[]) {
run = false;
}
if(event.key.keysym.sym == SDLK_q) {
+ // Start or unpause the video
Kit_PlayerPlay(player);
}
if(event.key.keysym.sym == SDLK_w) {
+ // Pause playback
Kit_PlayerPause(player);
}
if(event.key.keysym.sym == SDLK_e) {
+ // Stop playback (will close the window)
Kit_PlayerStop(player);
}
if(event.key.keysym.sym == SDLK_RIGHT) {
+ // Skip 10 seconds forwards or to the end of the file
if(Kit_PlayerSeek(player, 10.0) != 0) {
fprintf(stderr, "%s\n", Kit_GetError());
}
}
if(event.key.keysym.sym == SDLK_LEFT) {
+ // Seek 10 seconds backwards or to the start of the file
if(Kit_PlayerSeek(player, -10.0) != 0) {
fprintf(stderr, "%s\n", Kit_GetError());
}
diff --git a/src/kitplayer.c b/src/kitplayer.c
index f8fb2fc..7d5ddd5 100644
--- a/src/kitplayer.c
+++ b/src/kitplayer.c
@@ -215,11 +215,11 @@ static enum AVPixelFormat _FindAVPixelFormat(unsigned int fmt) {
}
}
-static enum AVSampleFormat _FindAVSampleFormat(int bytes) {
- switch(bytes) {
- case 1: return AV_SAMPLE_FMT_U8;
- case 2: return AV_SAMPLE_FMT_S16;
- case 3: return AV_SAMPLE_FMT_S32;
+static enum AVSampleFormat _FindAVSampleFormat(int format) {
+ switch(format) {
+ case AUDIO_U8: return AV_SAMPLE_FMT_U8;
+ case AUDIO_S16SYS: return AV_SAMPLE_FMT_S16;
+ case AUDIO_S32SYS: return AV_SAMPLE_FMT_S32;
default:
return AV_SAMPLE_FMT_NONE;
}
@@ -381,7 +381,7 @@ static void _HandleAudioPacket(Kit_Player *player, AVPacket *packet) {
&dst_linesize,
player->aformat.channels,
dst_nb_samples,
- _FindAVSampleFormat(player->aformat.bytes),
+ _FindAVSampleFormat(player->aformat.format),
0);
len2 = swr_convert(
@@ -395,7 +395,7 @@ static void _HandleAudioPacket(Kit_Player *player, AVPacket *packet) {
&dst_linesize,
player->aformat.channels,
len2,
- _FindAVSampleFormat(player->aformat.bytes), 1);
+ _FindAVSampleFormat(player->aformat.format), 1);
// Get pts
double pts = 0;
@@ -602,7 +602,7 @@ Kit_Player* Kit_CreatePlayer(const Kit_Source *src) {
player->swr = swr_alloc_set_opts(
NULL,
_FindAVChannelLayout(player->aformat.channels), // Target channel layout
- _FindAVSampleFormat(player->aformat.bytes), // Target fmt
+ _FindAVSampleFormat(player->aformat.format), // Target fmt
player->aformat.samplerate, // Target samplerate
acodec_ctx->channel_layout, // Source channel layout
acodec_ctx->sample_fmt, // Source fmt
@@ -1013,8 +1013,8 @@ void Kit_GetPlayerInfo(const Kit_Player *player, Kit_PlayerInfo *info) {
memcpy(&info->video, &player->vformat, sizeof(Kit_VideoFormat));
}
if(scodec_ctx != NULL) {
- strncpy(info->scodec, scodec_ctx->codec->name, KIT_CODECMAX);
- strncpy(info->scodec_name, scodec_ctx->codec->long_name, KIT_CODECNAMEMAX);
+ strncpy(info->scodec, scodec_ctx->codec->name, KIT_CODECMAX-1);
+ strncpy(info->scodec_name, scodec_ctx->codec->long_name, KIT_CODECNAMEMAX-1);
memcpy(&info->subtitle, &player->sformat, sizeof(Kit_SubtitleFormat));
}
}