mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2025-01-08 13:22:53 +02:00
lavd/alsa: preliminary support of uncoded frame.
This commit is contained in:
parent
1b05ac220e
commit
62106fcc23
@ -113,6 +113,24 @@ 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 av_sample_fmt_is_planar(s1->streams[stream_index]->codec->sample_fmt) ?
|
||||
AVERROR(EINVAL) : 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 +151,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,
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user