欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

FFmpegav_image_fill_arrays填充AVFrame數(shù)據(jù)緩沖

說明FFmepg3.4版本

創(chuàng)新互聯(lián)秉承實現(xiàn)全網(wǎng)價值營銷的理念,以專業(yè)定制企業(yè)官網(wǎng),成都網(wǎng)站建設、做網(wǎng)站,成都微信小程序,網(wǎng)頁設計制作,移動網(wǎng)站建設,全網(wǎng)營銷推廣幫助傳統(tǒng)企業(yè)實現(xiàn)“互聯(lián)網(wǎng)+”轉(zhuǎn)型升級專業(yè)定制企業(yè)官網(wǎng),公司注重人才、技術(shù)和管理,匯聚了一批優(yōu)秀的互聯(lián)網(wǎng)技術(shù)人才,對客戶都以感恩的心態(tài)奉獻自己的專業(yè)和所長。

需求

????????創(chuàng)建一個BGR24的AVFrame幀,用于YUV420轉(zhuǎn)換BGR24幀


代碼

? AVFrame *pBGRFrame = NULL;
??pBGRFrame = av_frame_alloc();
??uint8_t *pszBGRBuffer = NULL;
??int nBGRFrameSize;
? nBGRFrameSize = av_image_get_buffer_size(AV_PIX_FMT_BGR24, pVideoc->m_pAVCodecContext->width, pVideoc->m_pAVCodecContext->height, 1);
? pszBGRBuffer = (uint8_t*)av_malloc(nBGRFrameSize);
? av_image_fill_arrays(pBGRFrame->data, pBGRFrame->linesize, pszBGRBuffer, AV_PIX_FMT_BGR24, pFrame->width, pFrame->height, 1);

舊版本函數(shù)
int avpicture_fill(AVPicture *picture, uint8_t *ptr,
?????????????????? int pix_fmt, int width, int height);


這個函數(shù)的使用本質(zhì)上是為已經(jīng)分配的空間的結(jié)構(gòu)體AVPicture掛上一段用于保存數(shù)據(jù)的空間,這個結(jié)構(gòu)體中有一個指針數(shù)組data[4],掛在這個數(shù)組里。一般我們這么使用:
1) pFrameRGB=avcodec_alloc_frame();
2) numBytes=avpicture_get_size(PIX_FMT_RGB24, pCodecCtx->width,pCodecCtx->height);
??? buffer=(uint8_t *)av_malloc(numBytes*sizeof(uint8_t));
3) avpicture_fill((AVPicture *)pFrameRGB, buffer, PIX_FMT_RGB24,pCodecCtx->width, pCodecCtx-???????? >height);
以上就是為pFrameRGB掛上buffer。這個buffer是用于存緩沖數(shù)據(jù)的。
好,現(xiàn)在讓我們來看一下tutorials里常出現(xiàn)的pFrame為什么不用fill空間。主要是下面這句:
avcodec_decode_video(pCodecCtx, pFrame, &frameFinished,packet.data, packet.size);


1.int avpicture_fill(AVPicture *picture, const uint8_t *ptr,enum AVPixelFormat pix_fmt, int width, int height);
這個函數(shù)的作用是給 picture掛上存放數(shù)據(jù)的代碼。在對幀數(shù)據(jù)進行scale之前,對于接受數(shù)據(jù)的picture(等同AVFrame)要用av_frame_alloc()初始化,但AVFrame::data需要手動初始化,即掛上內(nèi)存,在scale的時候是直接在data里寫入數(shù)據(jù)的。但在接收解碼數(shù)據(jù)時,只需要av_frame_alloc(),不用手動掛內(nèi)存
2.AVFrame的內(nèi)存釋放問題
在用AVFrame循環(huán)接受視頻的幀數(shù)據(jù)的時候,或者批量讀取圖片量比較大的時候,不釋放AVFrame會報指針越界錯誤,在我添加了av_free()并釋放了AVFrame指針后,發(fā)現(xiàn)報錯時間延后了,但任然有指針越界導致的報錯,調(diào)試后發(fā)現(xiàn),av_free()并沒有釋放AVFrame中data[x]指向的 數(shù)據(jù),僅僅是把data本身指向的數(shù)據(jù)釋放了,但其作為二級指針指向的數(shù)據(jù)跳過了,需要手動釋放,添加 av_free(AVFrame->data[0])后問題解決。
總結(jié)???????
av_free( AVFrame* )????????????????????????????????????????????? 對應??? av_frame_alloc()???
av_free( AVFrame->data[0] )? 或者av_free( ptr* )? 對應?? avpicture_fill 函數(shù)或者 avcodec_encode_video2()
????

當前文章:FFmpegav_image_fill_arrays填充AVFrame數(shù)據(jù)緩沖
URL分享:http://aaarwkj.com/article6/ijphig.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、手機網(wǎng)站建設、定制開發(fā)外貿(mào)網(wǎng)站建設、域名注冊、虛擬主機

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
国产一区免费二区三区四区| 国产成人亚洲精品另类动态| 色偷偷91综合久久噜噜| 午夜视频在线播放一区二区三区| 国产亚洲日本一区二区三区| 亚洲成人高清在线视频| 久久久久久狠狠亚洲综合| 精品人妻二区中文字幕| 亚洲一区二区精品自拍| 欧美一区二区亚洲天堂| 国产精品九九久久精品三级| 亚洲一区二区三区日本在线| 久久精品免费激情视频| 极品少妇一级人妻av| 久久国产精品亚洲欧美| 一区二区亚洲成人精品| 亚洲精品av在线网站| 成人免费在线观看午夜| 日韩欧美一区二区不卡在线| 亚洲欧洲中文字幕一区二区| 欧美中文字幕精在线不卡| 性色av人妻中文一区二区| 欧美日韩国产看片一区二区| 91九色在线精品一区| 亚洲色图熟女激情另类| 久久精品国产亚洲av久一一区| 白浆视频在线免费观看| 国产 亚洲 一区 二区| 黄色一级日本黄色一级| 一区二区日韩激情在线观看视频| 国产精品国产三级国产普通话99| 精品视频中文字幕天码| 一区二区久久精品视频| 国产高潮呻吟久久av| 国产精品综合日韩精| 日本精品av一区二区| 日本精品三级一区二区视频| 国产精品女同久久久久久| 18以下的人禁止看的视频| 粉嫩在线一区二区懂色| 男人天堂一区二区av|