[FFmpeg-devel] [PATCH 3/4] lavd/alsa: preliminary support of uncoded frame.
Nicolas George
george at nsup.org
Mon Jan 13 10:23:45 CET 2014
Signed-off-by: Nicolas George <george at nsup.org>
---
libavdevice/alsa-audio-enc.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
Unchanged.
diff --git a/libavdevice/alsa-audio-enc.c b/libavdevice/alsa-audio-enc.c
index 83e1d2f..dbc6786 100644
--- a/libavdevice/alsa-audio-enc.c
+++ b/libavdevice/alsa-audio-enc.c
@@ -113,6 +113,23 @@ static int audio_write_packet(AVFormatContext *s1, AVPacket *pkt)
return 0;
}
+static int audio_write_frame(AVFormatContext *s1, int stream_index,
+ AVFrame *frame, unsigned flags)
+{
+ AlsaData *s = s1->priv_data;
+ AVPacket pkt;
+
+ /* ff_alsa_open() should have accepted only supported formats */
+ if ((flags & AV_WRITE_UNCODED_FRAME_QUERY))
+ return 0;
+ /* set only used fields */
+ pkt.data = frame->data[0];
+ pkt.size = frame->nb_samples * s->frame_size;
+ pkt.dts = frame->pkt_dts;
+ pkt.duration = av_frame_get_pkt_duration(frame);
+ return audio_write_packet(s1, &pkt);
+}
+
static void
audio_get_output_timestamp(AVFormatContext *s1, int stream,
int64_t *dts, int64_t *wall)
@@ -133,6 +150,7 @@ AVOutputFormat ff_alsa_muxer = {
.write_header = audio_write_header,
.write_packet = audio_write_packet,
.write_trailer = ff_alsa_close,
+ .write_uncoded_frame = audio_write_frame,
.get_output_timestamp = audio_get_output_timestamp,
.flags = AVFMT_NOFILE,
};
--
1.8.5.2
More information about the ffmpeg-devel
mailing list