| 1 | //// Encoding part begin ////
|
|---|
| 2 |
|
|---|
| 3 | AVPacket pkt;
|
|---|
| 4 | av_init_packet(&pkt);
|
|---|
| 5 | pkt.data=nullptr;
|
|---|
| 6 | pkt.size=0;
|
|---|
| 7 |
|
|---|
| 8 | avcodec_encode_video2(c, &pkt, m_pictureYUV, &gotPacketPtr);
|
|---|
| 9 |
|
|---|
| 10 | uint8_t mydata[10];
|
|---|
| 11 |
|
|---|
| 12 | uint8_t * currentDataFrame=av_packet_new_side_data(&fm_pkt, AV_PKT_DATA_NEW_EXTRADATA, 10*sizeof(uint8_t));
|
|---|
| 13 |
|
|---|
| 14 | memcpy(currentDataFrame, mydata[10], 10*sizeof(uint8_t));
|
|---|
| 15 |
|
|---|
| 16 | av_packet_merge_side_data(&fm_pkt);
|
|---|
| 17 |
|
|---|
| 18 | av_interleaved_write_frame(m_avFormatContext, &fm_pkt);
|
|---|
| 19 |
|
|---|
| 20 | //// Encoding part end ////
|
|---|
| 21 |
|
|---|
| 22 | //// Decoding part begin ////
|
|---|
| 23 |
|
|---|
| 24 | AVPacket pkt;
|
|---|
| 25 | av_init_packet(&pkt);
|
|---|
| 26 |
|
|---|
| 27 | av_packet_split_side_data(&fm_pkt)
|
|---|
| 28 |
|
|---|
| 29 | uint8_t *currentDataFrame=av_packet_get_side_data(&fm_pkt, AV_PKT_DATA_NEW_EXTRADATA, &size);
|
|---|
| 30 |
|
|---|
| 31 | uint8_t mydata=new uint8_t[size*sizeof(uint8_t);
|
|---|
| 32 |
|
|---|
| 33 | memcpy(mydata, currentDataFrame, size*sizeof(uint8_t));
|
|---|
| 34 |
|
|---|
| 35 | avcodec_decode_video2(m_videoCodecContext, m_currentFrame, &gotPacketPtr, &pkt);
|
|---|
| 36 |
|
|---|
| 37 | //// Decoding part end ////
|
|---|