GUAC-236: Define framerate with macro.

This commit is contained in:
Michael Jumper 2016-03-11 13:35:36 -08:00
parent 38c431e8a2
commit c37eda37fd
3 changed files with 10 additions and 15 deletions

View File

@ -89,7 +89,7 @@ guacenc_display* guacenc_display_alloc() {
/* STUB: Prepare video encoding */
guacenc_video* video = guacenc_video_alloc("/tmp/test.mpg", "mpeg4",
640, 480, 25, 400000);
640, 480, 400000);
if (video == NULL)
return NULL;

View File

@ -36,7 +36,7 @@
#include <stdlib.h>
guacenc_video* guacenc_video_alloc(const char* path, const char* codec_name,
int width, int height, int framerate, int bitrate) {
int width, int height, int bitrate) {
/* Pull codec based on name */
AVCodec* codec = avcodec_find_encoder_by_name(codec_name);
@ -58,7 +58,7 @@ guacenc_video* guacenc_video_alloc(const char* path, const char* codec_name,
context->bit_rate = bitrate;
context->width = width;
context->height = height;
context->time_base = (AVRational) { 1, framerate };
context->time_base = (AVRational) { 1, GUACENC_VIDEO_FRAMERATE };
context->gop_size = 10;
context->max_b_frames = 1;
context->pix_fmt = AV_PIX_FMT_YUV420P;
@ -97,7 +97,6 @@ guacenc_video* guacenc_video_alloc(const char* path, const char* codec_name,
video->frame = frame;
video->width = width;
video->height = height;
video->frame_duration = 1000 / framerate;
video->bitrate = bitrate;
/* No frames have been written or prepared yet */
@ -164,7 +163,7 @@ int guacenc_video_advance_timeline(guacenc_video* video,
/* Calculate the number of frames that should have been written */
int elapsed = (timestamp - video->last_timestamp)
/ video->frame_duration;
* GUACENC_VIDEO_FRAMERATE / 1000;
/* Keep previous timestamp if insufficient time has elapsed */
if (elapsed == 0)

View File

@ -31,6 +31,11 @@
#include <stdint.h>
/**
* The framerate at which video should be encoded, in frames per second.
*/
#define GUACENC_VIDEO_FRAMERATE 25
/**
* 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
@ -60,11 +65,6 @@ typedef struct guacenc_video {
*/
int height;
/**
* The duration of a single frame in milliseconds.
*/
int frame_duration;
/**
* The desired output bitrate of the video, in bits per second.
*/
@ -112,16 +112,12 @@ typedef struct guacenc_video {
* @param height
* The height of the desired video, in pixels.
*
* @param framerate
* The rate at which frames should be encoded within the video, in frames
* per second.
*
* @param bitrate
* The desired overall bitrate of the resulting encoded video, in kilobits
* per second.
*/
guacenc_video* guacenc_video_alloc(const char* path, const char* codec_name,
int width, int height, int framerate, int bitrate);
int width, int height, int bitrate);
/**
* Advances the timeline of the encoding process to the given timestamp, such