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 | 82 ----------------------------------------- 1 files changed, 0 insertions(+), 82 deletions(-) diff --git a/csrc/wrapper.cpp b/csrc/wrapper.cpp index 5c6ae33..dc511fa 100644 --- a/csrc/wrapper.cpp +++ b/csrc/wrapper.cpp @@ -504,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