GUAC-236: Perform codec lookup via libavcodec.
This commit is contained in:
parent
d94915c515
commit
a8cba53537
@ -88,8 +88,8 @@ cairo_operator_t guacenc_display_cairo_operator(guac_composite_mode mask) {
|
|||||||
guacenc_display* guacenc_display_alloc() {
|
guacenc_display* guacenc_display_alloc() {
|
||||||
|
|
||||||
/* STUB: Prepare video encoding */
|
/* STUB: Prepare video encoding */
|
||||||
guacenc_video* video =
|
guacenc_video* video = guacenc_video_alloc("/tmp/test.mpg", "mpeg4",
|
||||||
guacenc_video_alloc("/tmp/test.mpg", 640, 480, 25, 400000);
|
640, 480, 25, 400000);
|
||||||
if (video == NULL)
|
if (video == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
@ -25,6 +25,8 @@
|
|||||||
#include "encode.h"
|
#include "encode.h"
|
||||||
#include "log.h"
|
#include "log.h"
|
||||||
|
|
||||||
|
#include <libavcodec/avcodec.h>
|
||||||
|
|
||||||
int main(int argc, char* argv[]) {
|
int main(int argc, char* argv[]) {
|
||||||
|
|
||||||
int i;
|
int i;
|
||||||
@ -39,6 +41,9 @@ int main(int argc, char* argv[]) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Prepare libavcodec */
|
||||||
|
avcodec_register_all();
|
||||||
|
|
||||||
/* Track number of overall failures */
|
/* Track number of overall failures */
|
||||||
int total_files = argc - 1;
|
int total_files = argc - 1;
|
||||||
int failures = 0;
|
int failures = 0;
|
||||||
|
@ -22,22 +22,32 @@
|
|||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "buffer.h"
|
#include "buffer.h"
|
||||||
|
#include "log.h"
|
||||||
#include "video.h"
|
#include "video.h"
|
||||||
|
|
||||||
|
#include <libavcodec/avcodec.h>
|
||||||
|
#include <guacamole/client.h>
|
||||||
#include <guacamole/timestamp.h>
|
#include <guacamole/timestamp.h>
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
|
||||||
guacenc_video* guacenc_video_alloc(const char* path, int width, int height,
|
guacenc_video* guacenc_video_alloc(const char* path, const char* codec_name,
|
||||||
int framerate, int bitrate) {
|
int width, int height, int framerate, int bitrate) {
|
||||||
|
|
||||||
/* Allocate video structure */
|
/* Allocate video structure */
|
||||||
guacenc_video* video = malloc(sizeof(guacenc_video));
|
guacenc_video* video = malloc(sizeof(guacenc_video));
|
||||||
if (video == NULL)
|
if (video == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
|
AVCodec* codec = avcodec_find_encoder_by_name(codec_name);
|
||||||
|
if (codec == NULL) {
|
||||||
|
guacenc_log(GUAC_LOG_ERROR, "Failed to locate codec: \"%s\"",
|
||||||
|
codec_name);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/* Init properties of video */
|
/* Init properties of video */
|
||||||
video->width = width;
|
video->width = width;
|
||||||
video->height = height;
|
video->height = height;
|
||||||
|
@ -88,6 +88,10 @@ typedef struct guacenc_video {
|
|||||||
* @param path
|
* @param path
|
||||||
* The full path to the file in which encoded video should be written.
|
* The full path to the file in which encoded video should be written.
|
||||||
*
|
*
|
||||||
|
* @param codec_name
|
||||||
|
* The name of the codec to use for the video encoding, as defined by
|
||||||
|
* ffmpeg / libavcodec.
|
||||||
|
*
|
||||||
* @param width
|
* @param width
|
||||||
* The width of the desired video, in pixels.
|
* The width of the desired video, in pixels.
|
||||||
*
|
*
|
||||||
@ -102,8 +106,8 @@ typedef struct guacenc_video {
|
|||||||
* The desired overall bitrate of the resulting encoded video, in kilobits
|
* The desired overall bitrate of the resulting encoded video, in kilobits
|
||||||
* per second.
|
* per second.
|
||||||
*/
|
*/
|
||||||
guacenc_video* guacenc_video_alloc(const char* path, int width, int height,
|
guacenc_video* guacenc_video_alloc(const char* path, const char* codec_name,
|
||||||
int framerate, int bitrate);
|
int width, int height, int framerate, int bitrate);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advances the timeline of the encoding process to the given timestamp, such
|
* Advances the timeline of the encoding process to the given timestamp, such
|
||||||
|
Loading…
Reference in New Issue
Block a user