[FFmpeg-cvslog] lavfi: implement avfilter_get_audio_buffer_ref_from_frame.

Nicolas George git at videolan.org
Fri May 4 23:46:06 CEST 2012


ffmpeg | branch: master | Nicolas George <nicolas.george at normalesup.org> | Sat Apr 28 13:05:09 2012 +0200| [32094285adea48eb2ad5a23f94fc289ac225a3b7] | committer: Nicolas George

lavfi: implement avfilter_get_audio_buffer_ref_from_frame.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=32094285adea48eb2ad5a23f94fc289ac225a3b7
---

 libavfilter/avcodec.c |   14 ++++++++++++++
 libavfilter/avcodec.h |   10 ++++++++++
 2 files changed, 24 insertions(+), 0 deletions(-)

diff --git a/libavfilter/avcodec.c b/libavfilter/avcodec.c
index 3581aef..e5f2bc3 100644
--- a/libavfilter/avcodec.c
+++ b/libavfilter/avcodec.c
@@ -56,6 +56,20 @@ AVFilterBufferRef *avfilter_get_video_buffer_ref_from_frame(const AVFrame *frame
     return picref;
 }
 
+AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_frame(const AVFrame *frame,
+                                                            int perms)
+{
+    AVFilterBufferRef *picref =
+        avfilter_get_audio_buffer_ref_from_arrays((uint8_t **)frame->data, (int *)frame->linesize, perms,
+                                                  frame->nb_samples, frame->format,
+                                                  av_frame_get_channel_layout(frame),
+                                                  av_sample_fmt_is_planar(frame->format));
+    if (!picref)
+        return NULL;
+    avfilter_copy_frame_props(picref, frame);
+    return picref;
+}
+
 int avfilter_fill_frame_from_audio_buffer_ref(AVFrame *frame,
                                               const AVFilterBufferRef *samplesref)
 {
diff --git a/libavfilter/avcodec.h b/libavfilter/avcodec.h
index 64773a6..1aa8b9c 100644
--- a/libavfilter/avcodec.h
+++ b/libavfilter/avcodec.h
@@ -46,6 +46,16 @@ int avfilter_copy_frame_props(AVFilterBufferRef *dst, const AVFrame *src);
  */
 AVFilterBufferRef *avfilter_get_video_buffer_ref_from_frame(const AVFrame *frame, int perms);
 
+
+/**
+ * Create and return a picref reference from the data and properties
+ * contained in frame.
+ *
+ * @param perms permissions to assign to the new buffer reference
+ */
+AVFilterBufferRef *avfilter_get_audio_buffer_ref_from_frame(const AVFrame *frame,
+                                                            int perms);
+
 /**
  * Fill an AVFrame with the information stored in samplesref.
  *



More information about the ffmpeg-cvslog mailing list