diff options
author | Tuomas Virtanen <katajakasa@gmail.com> | 2016-01-08 04:34:15 +0200 |
---|---|---|
committer | Tuomas Virtanen <katajakasa@gmail.com> | 2016-01-08 04:34:15 +0200 |
commit | 1991ace79c784e86d56300d09d6d29053aa5978b (patch) | |
tree | ef1c5e92a5601bafc54a216e1d71b0910ae5e070 /src/kitplayer.c | |
parent | 4d6ea9dfbc311dfd05884076959c2b096528a5d8 (diff) |
Changes on how textures are updated
Diffstat (limited to 'src/kitplayer.c')
-rw-r--r-- | src/kitplayer.c | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/src/kitplayer.c b/src/kitplayer.c index 7736423..f28d718 100644 --- a/src/kitplayer.c +++ b/src/kitplayer.c @@ -377,8 +377,6 @@ int Kit_RefreshTexture(Kit_Player *player, SDL_Texture *texture) { assert(player != NULL); assert(texture != NULL); - int retval = 1; - // Get texture information unsigned int format; int access, w, h; @@ -397,39 +395,30 @@ int Kit_RefreshTexture(Kit_Player *player, SDL_Texture *texture) { return 1; } + // Read a packet from buffer, if one exists. Stop here if not. Kit_VideoPacket *packet = (Kit_VideoPacket*)Kit_ReadBuffer((Kit_Buffer*)player->vbuffer); if(packet == NULL) { return 0; } + // Update textures as required if(format == SDL_PIXELFORMAT_YV12 || format == SDL_PIXELFORMAT_IYUV) { SDL_UpdateYUVTexture( texture, NULL, packet->frame->data[0], packet->frame->linesize[0], packet->frame->data[1], packet->frame->linesize[1], packet->frame->data[2], packet->frame->linesize[2]); - } - else if(access == SDL_TEXTUREACCESS_STREAMING) { - unsigned char *pixels; - int pitch; - - if(SDL_LockTexture(texture, NULL, (void**)&pixels, &pitch) == 0) { - memcpy(pixels, packet->frame->data[0], pitch * h); - SDL_UnlockTexture(texture); - } else { - Kit_SetError("Unable to lock texture for streaming access"); - goto exit_0; - } - } + } else { - Kit_SetError("Incorrect texture access"); - goto exit_0; + SDL_UpdateTexture( + texture, NULL, + packet->frame->data[0], + packet->frame->linesize[0]); } - retval = 0; -exit_0: + // Free the packet _FreeVideoPacket(packet); - return retval; + return 0; } int Kit_GetAudioData(Kit_Player *player, unsigned char *buffer, size_t length) { |