From f238d052479dbbe0a8d97e231ff74984bf748903 Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期二, 19 十一月 2019 09:13:11 +0800
Subject: [PATCH] update

---
 csrc/wrapper.cpp |   97 ++----------------------------------------------
 1 files changed, 4 insertions(+), 93 deletions(-)

diff --git a/csrc/wrapper.cpp b/csrc/wrapper.cpp
index 803ebac..dc511fa 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);
 
@@ -511,87 +504,5 @@
         free(c);
     }
 
-// mjpeg av pix fmt yuv420p
-
-    static int save2PIC(uint8_t *data, const int w, const int h, const char *filename){
-        AVPixelFormat src_fmt = AV_PIX_FMT_BGR24;
-        AVPixelFormat dst_fmt = AV_PIX_FMT_YUV420P;
-
-        cvbridge *bridge = new cvbridge(w, h, src_fmt, w, h, dst_fmt, 16);
-
-        AVFrame *bgr_frame = cvbridge::fillFrame(data, w, h, src_fmt);
-        AVFrame *frame_jpeg = bridge->convert2Frame(bgr_frame);
-        av_frame_free(&bgr_frame);
-
-        AVFormatContext *ctx = avformat_alloc_context();
-        ctx->oformat = av_guess_format("mjpeg", NULL, NULL);
-        if( avio_open(&ctx->pb, filename, AVIO_FLAG_READ_WRITE) < 0) {
-            printf("Couldn't open output file."); 
-            avformat_free_context(ctx);
-
-            delete bridge;
-            return -1; 
-        }
-        AVStream* pAVStream = avformat_new_stream(ctx, 0);
-        if( pAVStream == NULL ){
-            delete bridge;
-            return -1;
-        }
-        AVCodecContext* pCodecCtx = pAVStream->codec; 
-        pCodecCtx->codec_id = ctx->oformat->video_codec;
-        pCodecCtx->codec_type = AVMEDIA_TYPE_VIDEO; 
-        pCodecCtx->pix_fmt = dst_fmt; 
-        pCodecCtx->width = w; 
-        pCodecCtx->height = h; 
-        pCodecCtx->time_base.num = 1; 
-        pCodecCtx->time_base.den = 25;
-        AVCodec* pCodec = avcodec_find_encoder(pCodecCtx->codec_id); 
-        if( !pCodec ) { 
-            printf("Codec not found.");             
-            avformat_free_context(ctx);
-
-            delete bridge;
-            return -1; 
-        } 
-        if( avcodec_open2(pCodecCtx, pCodec, NULL) < 0 ){
-            printf("Could not open codec.");
-            avformat_free_context(ctx);
-            avio_close(ctx->pb); 
-            delete bridge;
-            return -1;
-        }
-        avformat_write_header(ctx, NULL); 
-        int y_size = pCodecCtx->width * pCodecCtx->height; 
-        AVPacket pkt; 
-        av_new_packet(&pkt, y_size * 3); 
-        int got_picture = 0; 
-        int ret = avcodec_encode_video2(pCodecCtx, &pkt, frame_jpeg, &got_picture); 
-        av_frame_free(&frame_jpeg);
-        delete bridge;
-        if( ret < 0 ) { 
-            printf("Encode Error.\n"); 
-            avformat_free_context(ctx);
-            if( pAVStream ) { 
-                avcodec_close(pAVStream->codec); 
-            } 
-            avio_close(ctx->pb); 
-
-            return -1; 
-        }
-        if( got_picture == 1 ) { 
-            pkt.stream_index = pAVStream->index; 
-            ret = av_write_frame(ctx, &pkt); 
-            avio_flush(ctx->pb);
-        } 
-        av_free_packet(&pkt); 
-        //Write Trailer 
-        av_write_trailer(ctx); 
-        if( pAVStream ) { 
-            avcodec_close(pAVStream->codec); 
-        } 
-        avio_close(ctx->pb); 
-        avformat_free_context(ctx);
-        return 0;
-    }
 }
 

--
Gitblit v1.8.0