mirror of https://git.ffmpeg.org/ffmpeg.git
lavf/dv: forward errors from avformat_new_stream()
This commit is contained in:
parent
f0283f278a
commit
b2e1d1443c
|
@ -268,11 +268,13 @@ static int dv_extract_audio_info(DVDemuxContext *c, const uint8_t *frame)
|
|||
ach = 2;
|
||||
|
||||
/* Dynamic handling of the audio streams in DV */
|
||||
c->ach = 0;
|
||||
for (i = 0; i < ach; i++) {
|
||||
if (!c->ast[i]) {
|
||||
c->ast[i] = avformat_new_stream(c->fctx, NULL);
|
||||
if (!c->ast[i])
|
||||
break;
|
||||
return AVERROR(ENOMEM);
|
||||
|
||||
avpriv_set_pts_info(c->ast[i], 64, c->sys->time_base.num, c->sys->time_base.den);
|
||||
c->ast[i]->codecpar->codec_type = AVMEDIA_TYPE_AUDIO;
|
||||
c->ast[i]->codecpar->codec_id = AV_CODEC_ID_PCM_S16LE;
|
||||
|
@ -290,7 +292,7 @@ static int dv_extract_audio_info(DVDemuxContext *c, const uint8_t *frame)
|
|||
c->ast[i]->codecpar->bit_rate = 2 * dv_audio_frequency[freq] * 16;
|
||||
c->ast[i]->start_time = 0;
|
||||
}
|
||||
c->ach = i;
|
||||
c->ach = ach;
|
||||
|
||||
return (c->sys->audio_min_samples[freq] + smpls) * 4; /* 2ch, 2bytes */
|
||||
}
|
||||
|
@ -410,6 +412,9 @@ int avpriv_dv_produce_packet(DVDemuxContext *c, AVPacket *pkt,
|
|||
/* Queueing audio packet */
|
||||
/* FIXME: in case of no audio/bad audio we have to do something */
|
||||
size = dv_extract_audio_info(c, buf);
|
||||
if (size < 0)
|
||||
return size;
|
||||
|
||||
for (i = 0; i < c->ach; i++) {
|
||||
c->audio_pkt[i].pos = pos;
|
||||
c->audio_pkt[i].size = size;
|
||||
|
|
Loading…
Reference in New Issue