Commit d8d235ff authored by Michael Niedermayer's avatar Michael Niedermayer

Merge remote-tracking branch 'qatar/master'

* qatar/master:
  lxf: check the nb_streams instead of relying on padding

Conflicts:
	libavformat/lxfdec.c
Merged-by: 's avatarMichael Niedermayer <michaelni@gmx.at>
parents fc424f37 5c349ad0
......@@ -161,7 +161,7 @@ static int get_packet_header(AVFormatContext *s)
break;
case 1:
//audio
if (!s->streams || !(st = s->streams[1])) {
if (s->nb_streams < 2) {
av_log(s, AV_LOG_INFO, "got audio packet, but no audio stream present\n");
break;
}
......@@ -172,6 +172,8 @@ static int get_packet_header(AVFormatContext *s)
channels = bytestream_get_le32(&p);
track_size = bytestream_get_le32(&p);
st = s->streams[1];
//set codec based on specified audio bitdepth
//we only support tightly packed 16-, 20-, 24- and 32-bit PCM at the moment
st->codec->bits_per_coded_sample = (audio_format >> 6) & 0x3F;
......@@ -290,7 +292,6 @@ static int lxf_read_packet(AVFormatContext *s, AVPacket *pkt)
{
LXFDemuxContext *lxf = s->priv_data;
AVIOContext *pb = s->pb;
AVStream *ast = NULL;
uint32_t stream;
int ret, ret2;
......@@ -304,7 +305,7 @@ static int lxf_read_packet(AVFormatContext *s, AVPacket *pkt)
return AVERROR(EAGAIN);
}
if (stream == 1 && !(ast = s->streams[1])) {
if (stream == 1 && s->nb_streams < 2) {
av_log(s, AV_LOG_ERROR, "got audio packet without having an audio stream\n");
return AVERROR_INVALIDDATA;
}
......@@ -319,7 +320,7 @@ static int lxf_read_packet(AVFormatContext *s, AVPacket *pkt)
pkt->stream_index = stream;
if (!ast) {
if (!stream) {
//picture type (0 = closed I, 1 = open I, 2 = P, 3 = B)
if (((lxf->video_format >> 22) & 0x3) < 2)
pkt->flags |= AV_PKT_FLAG_KEY;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment