From b7c7b479c278e74955a1a0a6c949a4d3cf32903a Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期二, 16 七月 2019 17:32:07 +0800
Subject: [PATCH] add encoder

---
 libcffmpeg.c |   30 +++++++++++++++++++++++++++++-
 1 files changed, 29 insertions(+), 1 deletions(-)

diff --git a/libcffmpeg.c b/libcffmpeg.c
index cb9edf7..3b3541f 100644
--- a/libcffmpeg.c
+++ b/libcffmpeg.c
@@ -41,6 +41,14 @@
         release_if_err(fn_active_decoder, lib);
         fn_dec_jpeg = (lib_cffmpeg_decode_jpeg)dlsym(lib, "c_ffmpeg_decode_jpeg");
         release_if_err(fn_dec_jpeg, lib);
+
+        fn_create_encoder = (lib_cffmpeg_create_encoder)dlsym(lib, "c_ffmpeg_create_encoder");
+        release_if_err(fn_create_encoder, lib);
+        fn_destroy_encoder = (lib_cffmpeg_destroy_encoder)dlsym(lib, "c_ffmpeg_destroy_encoder");
+        release_if_err(fn_destroy_encoder, lib);
+        fn_encode = (lib_cffmpeg_encode)dlsym(lib, "c_ffmpeg_encode");
+        release_if_err(fn_encode, lib);
+
     }else{
         printf("dlopen - %s\n", dlerror());  
     }
@@ -99,4 +107,24 @@
 
 void* wrap_fn_decode_jpeg(const cffmpeg h, const char* file, int* wid, int* hei){
     return fn_dec_jpeg(h, file, wid, hei);
-}
\ No newline at end of file
+}
+
+// for encoder
+cencoder wrap_fn_create_encoder(const int w, const int h, const int fps, const int br, const int scale_flag, const int gi){
+    return fn_create_encoder(w, h, fps, br, scale_flag, gi);
+}
+
+void wrap_fn_destroy_encoder(const cencoder h){
+    fn_destroy_encoder(h);
+}
+
+void* wrap_fn_encode(cencoder hdl, void *in, const int w, const int h, int *out_size, int *key){
+    uint8_t *out = NULL;
+    const int flag = fn_encode(hdl, (uint8_t*)in, w, h, &out, out_size, key);
+    if (flag > 0 && out != NULL) {
+        return out;
+    }
+    *out_size = 0;
+    *key = 0;
+    return NULL;
+}

--
Gitblit v1.8.0