GUAC-236: Record internal presentation timestamp in same format as libavcodec.
This commit is contained in:
parent
9eddaeee3d
commit
38c431e8a2
@ -102,7 +102,7 @@ guacenc_video* guacenc_video_alloc(const char* path, const char* codec_name,
|
|||||||
|
|
||||||
/* No frames have been written or prepared yet */
|
/* No frames have been written or prepared yet */
|
||||||
video->last_timestamp = 0;
|
video->last_timestamp = 0;
|
||||||
video->current_time = 0;
|
video->next_pts = 0;
|
||||||
video->next_frame = NULL;
|
video->next_frame = NULL;
|
||||||
|
|
||||||
return video;
|
return video;
|
||||||
@ -146,12 +146,11 @@ static int guacenc_video_flush_frame(guacenc_video* video) {
|
|||||||
packet.data = NULL;
|
packet.data = NULL;
|
||||||
packet.size = 0;
|
packet.size = 0;
|
||||||
|
|
||||||
/* STUB: Write frame to video */
|
/* TODO: Write frame to video */
|
||||||
guacenc_log(GUAC_LOG_DEBUG, "Writing frame @ %" PRId64 "ms",
|
guacenc_log(GUAC_LOG_DEBUG, "Encoding frame #%08" PRId64, video->next_pts);
|
||||||
video->current_time);
|
|
||||||
|
|
||||||
/* Update internal timestamp */
|
/* Update presentation timestamp for next frame */
|
||||||
video->current_time += video->frame_duration;
|
video->next_pts++;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
@ -29,6 +29,8 @@
|
|||||||
#include <guacamole/timestamp.h>
|
#include <guacamole/timestamp.h>
|
||||||
#include <libavcodec/avcodec.h>
|
#include <libavcodec/avcodec.h>
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A video which is actively being encoded. Frames can be added to the video
|
* A video which is actively being encoded. Frames can be added to the video
|
||||||
* as they are generated, along with their associated timestamps, and the
|
* as they are generated, along with their associated timestamps, and the
|
||||||
@ -75,19 +77,18 @@ typedef struct guacenc_video {
|
|||||||
*/
|
*/
|
||||||
guacenc_buffer* next_frame;
|
guacenc_buffer* next_frame;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The presentation timestamp that should be used for the next frame. This
|
||||||
|
* is equivalent to the frame number.
|
||||||
|
*/
|
||||||
|
int64_t next_pts;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The timestamp associated with the last frame, or 0 if no frames have yet
|
* The timestamp associated with the last frame, or 0 if no frames have yet
|
||||||
* been added.
|
* been added.
|
||||||
*/
|
*/
|
||||||
guac_timestamp last_timestamp;
|
guac_timestamp last_timestamp;
|
||||||
|
|
||||||
/**
|
|
||||||
* The relative position within the current video timeline, where 0 is the
|
|
||||||
* first frame of video, in milliseconds. This value will be incremented as
|
|
||||||
* frames are output.
|
|
||||||
*/
|
|
||||||
guac_timestamp current_time;
|
|
||||||
|
|
||||||
} guacenc_video;
|
} guacenc_video;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user