mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-08-06 07:40:00 +08:00
lavfi: add avfilter_fill_frame_from_{audio_,}buffer_ref().
This commit is contained in:

committed by
Clément Bœsch

parent
a84851bef8
commit
a67d9cfa58
@ -56,6 +56,20 @@ AVFilterBufferRef *avfilter_get_video_buffer_ref_from_frame(const AVFrame *frame
|
||||
return picref;
|
||||
}
|
||||
|
||||
int avfilter_fill_frame_from_audio_buffer_ref(AVFrame *frame,
|
||||
const AVFilterBufferRef *samplesref)
|
||||
{
|
||||
if (!samplesref || !samplesref->audio || !frame)
|
||||
return AVERROR(EINVAL);
|
||||
|
||||
memcpy(frame->data, samplesref->data, sizeof(frame->data));
|
||||
frame->pkt_pos = samplesref->pos;
|
||||
frame->format = samplesref->format;
|
||||
frame->nb_samples = samplesref->audio->nb_samples;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int avfilter_fill_frame_from_video_buffer_ref(AVFrame *frame,
|
||||
const AVFilterBufferRef *picref)
|
||||
{
|
||||
@ -73,3 +87,12 @@ int avfilter_fill_frame_from_video_buffer_ref(AVFrame *frame,
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int avfilter_fill_frame_from_buffer_ref(AVFrame *frame,
|
||||
const AVFilterBufferRef *ref)
|
||||
{
|
||||
if (!ref)
|
||||
return AVERROR(EINVAL);
|
||||
return ref->video ? avfilter_fill_frame_from_video_buffer_ref(frame, ref)
|
||||
: avfilter_fill_frame_from_audio_buffer_ref(frame, ref);
|
||||
}
|
||||
|
@ -46,6 +46,17 @@ int avfilter_copy_frame_props(AVFilterBufferRef *dst, const AVFrame *src);
|
||||
*/
|
||||
AVFilterBufferRef *avfilter_get_video_buffer_ref_from_frame(const AVFrame *frame, int perms);
|
||||
|
||||
/**
|
||||
* Fill an AVFrame with the information stored in samplesref.
|
||||
*
|
||||
* @param frame an already allocated AVFrame
|
||||
* @param samplesref an audio buffer reference
|
||||
* @return 0 in case of success, a negative AVERROR code in case of
|
||||
* failure
|
||||
*/
|
||||
int avfilter_fill_frame_from_audio_buffer_ref(AVFrame *frame,
|
||||
const AVFilterBufferRef *samplesref);
|
||||
|
||||
/**
|
||||
* Fill an AVFrame with the information stored in picref.
|
||||
*
|
||||
@ -57,6 +68,17 @@ AVFilterBufferRef *avfilter_get_video_buffer_ref_from_frame(const AVFrame *frame
|
||||
int avfilter_fill_frame_from_video_buffer_ref(AVFrame *frame,
|
||||
const AVFilterBufferRef *picref);
|
||||
|
||||
/**
|
||||
* Fill an AVFrame with information stored in ref.
|
||||
*
|
||||
* @param frame an already allocated AVFrame
|
||||
* @param ref a video or audio buffer reference
|
||||
* @return 0 in case of success, a negative AVERROR code in case of
|
||||
* failure
|
||||
*/
|
||||
int avfilter_fill_frame_from_buffer_ref(AVFrame *frame,
|
||||
const AVFilterBufferRef *ref);
|
||||
|
||||
/**
|
||||
* Add frame data to buffer_src.
|
||||
*
|
||||
|
@ -29,8 +29,8 @@
|
||||
#include "libavutil/avutil.h"
|
||||
|
||||
#define LIBAVFILTER_VERSION_MAJOR 2
|
||||
#define LIBAVFILTER_VERSION_MINOR 65
|
||||
#define LIBAVFILTER_VERSION_MICRO 102
|
||||
#define LIBAVFILTER_VERSION_MINOR 66
|
||||
#define LIBAVFILTER_VERSION_MICRO 100
|
||||
|
||||
#define LIBAVFILTER_VERSION_INT AV_VERSION_INT(LIBAVFILTER_VERSION_MAJOR, \
|
||||
LIBAVFILTER_VERSION_MINOR, \
|
||||
|
Reference in New Issue
Block a user