MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / encode_write

Function encode_write

doc/examples/vaapi_transcode.c:109–140  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

107}
108
109static int encode_write(AVPacket *enc_pkt, AVFrame *frame)
110{
111 int ret = 0;
112
113 av_packet_unref(enc_pkt);
114
115 if ((ret = avcodec_send_frame(encoder_ctx, frame)) < 0) {
116 fprintf(stderr, "Error during encoding. Error code: %s\n", av_err2str(ret));
117 goto end;
118 }
119 while (1) {
120 ret = avcodec_receive_packet(encoder_ctx, enc_pkt);
121 if (ret)
122 break;
123
124 enc_pkt->stream_index = 0;
125 av_packet_rescale_ts(enc_pkt, ifmt_ctx->streams[video_stream]->time_base,
126 ofmt_ctx->streams[0]->time_base);
127 ret = av_interleaved_write_frame(ofmt_ctx, enc_pkt);
128 if (ret < 0) {
129 fprintf(stderr, "Error during writing data to output file. "
130 "Error code: %s\n", av_err2str(ret));
131 return -1;
132 }
133 }
134
135end:
136 if (ret == AVERROR_EOF)
137 return 0;
138 ret = ((ret == AVERROR(EAGAIN)) ? 0:-1);
139 return ret;
140}
141
142static int dec_enc(AVPacket *pkt, const AVCodec *enc_codec)
143{

Callers 2

dec_encFunction · 0.70
mainFunction · 0.70

Calls 5

av_packet_unrefFunction · 0.85
avcodec_send_frameFunction · 0.85
avcodec_receive_packetFunction · 0.85
av_packet_rescale_tsFunction · 0.85

Tested by

no test coverage detected