это функция, взятая из примера ffmpeg. Как мне заполнить фрейм моим буфером данных ( const uchar * data, int Length )?
AVFrame *frame = OutputStreamAudio.pAVFrameTemp;
int j, i, v;
int16_t *q = (int16_t*)frame->data[0];
/* check if we want to generate more frames */
if (av_compare_ts(OutputStreamAudio.next_pts, OutputStreamAudio.pAVCodecContext->time_base, STREAM_DURATION, (AVRational){ 1, 1 }) >= 0) return NULL;
for (j = 0; j <frame->nb_samples; j++) {
v = (int)(sin(OutputStreamAudio.t) * 10000);
for (i = 0; i < OutputStreamAudio.pAVCodecContext->channels; i++) *q++ = v;
OutputStreamAudio.t += OutputStreamAudio.tincr;
OutputStreamAudio.tincr += OutputStreamAudio.tincr2;
}
frame->pts = OutputStreamAudio.next_pts;
OutputStreamAudio.next_pts += frame->nb_samples;
return frame;