From 92e01d9faf8c02180361ca0a724324a53ac08229 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期三, 13 十一月 2019 15:19:31 +0800
Subject: [PATCH] update
---
csrc/wrapper.cpp | 15 ++++-----------
csrc/wrapper.hpp | 2 +-
cffmpeg.h | 2 +-
goenc.go | 21 +--------------------
libcffmpeg.c | 4 ++--
csrc/cffmpeg.cpp | 4 ++--
libcffmpeg.h | 4 ++--
7 files changed, 13 insertions(+), 39 deletions(-)
diff --git a/cffmpeg.h b/cffmpeg.h
index 258416d..0a7ebd1 100644
--- a/cffmpeg.h
+++ b/cffmpeg.h
@@ -32,7 +32,7 @@
void* c_ffmpeg_decode(const char *file, const int gb, int *wid, int *hei);
// pic encoder
-void *c_ffmpeg_create_encoder(const int w, const int h, const int fps, const int br, const int scale_flag, const int gi, const int fmt, const char *file);
+void *c_ffmpeg_create_encoder(const int w, const int h, const int fps, const int br, const int scale_flag, const int gi);
void c_ffmpeg_destroy_encoder(void *h);
int c_ffmpeg_encode(void *hdl, uint8_t *in, const int w, const int h, uint8_t **out, int *size, int *key);
diff --git a/csrc/cffmpeg.cpp b/csrc/cffmpeg.cpp
index 176e1fb..4cf92da 100644
--- a/csrc/cffmpeg.cpp
+++ b/csrc/cffmpeg.cpp
@@ -115,8 +115,8 @@
}
// pic encoder
-void *c_ffmpeg_create_encoder(const int w, const int h, const int fps, const int br, const int scale_flag, const int gi, const int fmt, const char *file){
- return CreateEncoder(w, h, fps, br, scale_flag, gi, fmt, file);
+void *c_ffmpeg_create_encoder(const int w, const int h, const int fps, const int br, const int scale_flag, const int gi){
+ return CreateEncoder(w, h, fps, br, scale_flag, gi);
}
void c_ffmpeg_destroy_encoder(void *h){
diff --git a/csrc/wrapper.cpp b/csrc/wrapper.cpp
index 803ebac..5c6ae33 100644
--- a/csrc/wrapper.cpp
+++ b/csrc/wrapper.cpp
@@ -370,14 +370,11 @@
int br;
int gi;
int flag;
- int fmt;
cvbridge *bridge;
} PicEncoder;
void *CreateEncoder(const int w, const int h, const int fps, const int br,
- const int scale_flag, const int gi, const int fmt, const char *file){
-
- if (fmt < 0) return NULL;
+ const int scale_flag, const int gi){
PicEncoder *e = (PicEncoder*)malloc(sizeof(PicEncoder));
e->enc = NULL;
@@ -387,7 +384,6 @@
e->br = br;
e->gi = gi;
e->flag = scale_flag;
- e->fmt = fmt;
e->bridge = NULL;
VideoProp prop_;
@@ -397,10 +393,7 @@
prop_.bit_rate_ = br;
gi < 0 ? prop_.gpu_acc_ = false : prop_.gpu_acc_ = true;
- std::string filename("./88.mp4");
- if (file) filename = file;
-
- FormatOut *enc = new FormatOut(prop_, filename.c_str());
+ FormatOut *enc = new FormatOut(prop_, "./88.mp4");
e->enc = enc;
return e;
@@ -425,11 +418,11 @@
if (e->bridge == NULL){
e->bridge = new cvbridge(
- w, h, e->fmt,
+ w, h, AV_PIX_FMT_BGR24,
e->w, e->h, ctx->pix_fmt, e->flag);
}
- AVFrame *bgr_frame = cvbridge::fillFrame(in, w, h, e->fmt);
+ AVFrame *bgr_frame = cvbridge::fillFrame(in, w, h, AV_PIX_FMT_BGR24);
AVFrame *frame = e->bridge->convert2Frame(bgr_frame);
av_frame_free(&bgr_frame);
diff --git a/csrc/wrapper.hpp b/csrc/wrapper.hpp
index 99039b6..045ba10 100644
--- a/csrc/wrapper.hpp
+++ b/csrc/wrapper.hpp
@@ -82,7 +82,7 @@
uint8_t* Decode(const char *file, const int gb, int *w, int *h);
void *CreateEncoder(const int w, const int h, const int fps, const int br,
- const int scale_flag, const int gi, const int fmt, const char *file);
+ const int scale_flag, const int gi);
void DestroyEncoder(void *h);
int Encode(void *hdl, uint8_t *in, const int w, const int h, uint8_t **out, int *size, int *key);
diff --git a/goenc.go b/goenc.go
index 15a24ef..d7a6b43 100644
--- a/goenc.go
+++ b/goenc.go
@@ -21,7 +21,7 @@
}
return &GoEncoder{
- enc: C.wrap_fn_create_encoder(unsafe.Pointer(libcffmpeg), C.int(w), C.int(h), C.int(fps), C.int(br), C.int(sFlag), C.int(gi), C.int(DstFormat), nil),
+ enc: C.wrap_fn_create_encoder(unsafe.Pointer(libcffmpeg), C.int(w), C.int(h), C.int(fps), C.int(br), C.int(sFlag), C.int(gi)),
}
}
@@ -52,23 +52,4 @@
return b, int(size), isKey
}
return nil, 0, false
-}
-
-// NewJpegEncoder encoder
-func NewJpegEncoder(w, h, fps, br, sFlag, gi, fmt int, file string) *GoEncoder {
- if w <= 0 || h <= 0 {
- return nil
- }
-
- cfile := C.CString(file)
- defer C.free(unsafe.Pointer(cfile))
- return &GoEncoder{
- enc: C.wrap_fn_create_encoder(unsafe.Pointer(libcffmpeg), C.int(w), C.int(h), C.int(fps), C.int(br), C.int(sFlag), C.int(gi), C.int(fmt), cfile),
- }
-}
-
-// EncodeJpeg bgr->jpg
-func (e *GoEncoder) EncodeJpeg(bgr []byte, w, h int) ([]byte, error) {
-
- return nil, nil
}
diff --git a/libcffmpeg.c b/libcffmpeg.c
index 7faf09a..9992f2d 100644
--- a/libcffmpeg.c
+++ b/libcffmpeg.c
@@ -153,12 +153,12 @@
}
// for encoder
-cencoder wrap_fn_create_encoder(void *lib, const int w, const int h, const int fps, const int br, const int scale_flag, const int gi, const int fmt, const char *file){
+cencoder wrap_fn_create_encoder(void *lib, const int w, const int h, const int fps, const int br, const int scale_flag, const int gi){
if (!fn_create_encoder){
fn_create_encoder = (lib_cffmpeg_create_encoder)dlsym(lib, "c_ffmpeg_create_encoder");
release_if_err(fn_create_encoder, lib);
}
- return fn_create_encoder(w, h, fps, br, scale_flag, gi, fmt, file);
+ return fn_create_encoder(w, h, fps, br, scale_flag, gi);
}
void wrap_fn_destroy_encoder(void *lib, const cencoder h){
diff --git a/libcffmpeg.h b/libcffmpeg.h
index acf5666..7bc4998 100644
--- a/libcffmpeg.h
+++ b/libcffmpeg.h
@@ -63,7 +63,7 @@
void* wrap_fn_decode(void *lib, const char* file, const int gb, int* wid, int* hei);
// for encoder
typedef void* cencoder;
-typedef cencoder (*lib_cffmpeg_create_encoder)(const int w, const int h, const int fps, const int br, const int scale_flag, const int gi, const int fmt, const char *file);
+typedef cencoder (*lib_cffmpeg_create_encoder)(const int w, const int h, const int fps, const int br, const int scale_flag, const int gi);
typedef void (*lib_cffmpeg_destroy_encoder)(cencoder h);
typedef int (*lib_cffmpeg_encode)(cencoder hdl, uint8_t *in, const int w, const int h, uint8_t **out, int *size, int *key);
@@ -71,7 +71,7 @@
static lib_cffmpeg_destroy_encoder fn_destroy_encoder = NULL;
static lib_cffmpeg_encode fn_encode = NULL;
-cencoder wrap_fn_create_encoder(void *lib, const int w, const int h, const int fps, const int br, const int scale_flag, const int gi, const int fmt, const char *file);
+cencoder wrap_fn_create_encoder(void *lib, const int w, const int h, const int fps, const int br, const int scale_flag, const int gi);
void wrap_fn_destroy_encoder(void *lib, const cencoder h);
void* wrap_fn_encode(void *lib, cencoder hdl, void *in, const int w, const int h, int *out_size, int *key);
--
Gitblit v1.8.0