On 21.01.2015 00:10, Michael Niedermayer wrote: > Found-by: kurosu > Signed-off-by: Michael Niedermayer <michae...@gmx.at> > --- > libavformat/flvdec.c | 15 +++++++++------ > 1 file changed, 9 insertions(+), 6 deletions(-) > > diff --git a/libavformat/flvdec.c b/libavformat/flvdec.c > index 572268f..f98cb97 100644 > --- a/libavformat/flvdec.c > +++ b/libavformat/flvdec.c > @@ -482,7 +482,7 @@ static int amf_parse_object(AVFormatContext *s, AVStream > *astream, > 0 <= (int)(num_val * 1024.0)) > acodec->bit_rate = num_val * 1024.0; > else if (!strcmp(key, "datastream")) { > - AVStream *st = create_stream(s, AVMEDIA_TYPE_DATA); > + AVStream *st = create_stream(s, AVMEDIA_TYPE_SUBTITLE); > if (!st) > return AVERROR(ENOMEM); > st->codec->codec_id = AV_CODEC_ID_TEXT; > @@ -749,12 +749,12 @@ static int flv_data_packet(AVFormatContext *s, AVPacket > *pkt, > > for (i = 0; i < s->nb_streams; i++) { > st = s->streams[i]; > - if (st->codec->codec_type == AVMEDIA_TYPE_DATA) > + if (st->codec->codec_type == AVMEDIA_TYPE_SUBTITLE) > break; > } > > if (i == s->nb_streams) { > - st = create_stream(s, AVMEDIA_TYPE_DATA); > + st = create_stream(s, AVMEDIA_TYPE_SUBTITLE); > if (!st) > return AVERROR(ENOMEM); > st->codec->codec_id = AV_CODEC_ID_TEXT;
The changes above seem to be unrelated to those below, so please split. Also there are more occurrences of AVMEDIA_TYPE_DATA in flvdec.c. Why are those not changed as well? > @@ -830,11 +830,14 @@ static int flv_read_packet(AVFormatContext *s, AVPacket > *pkt) > goto skip; > } else if (type == FLV_TAG_TYPE_META) { > stream_type=FLV_STREAM_TYPE_DATA; > - if (size > 13 + 1 + 4 && dts == 0) { // Header-type metadata > stuff > + if (size > 13 + 1 + 4) { // Header-type metadata stuff > + int type; > meta_pos = avio_tell(s->pb); > - if (flv_read_metabody(s, next) <= 0) { > + type = flv_read_metabody(s, next); > + if (type == 0 && dts == 0 || type < 0) { > goto skip; > - } > + } else if (type == TYPE_ONTEXTDATA) > + return flv_data_packet(s, pkt, dts, next); > avio_seek(s->pb, meta_pos, SEEK_SET); > } > } else { > The only difference to my attempt to fix this is the handling of dts == 0. I think it's more correct in this patch, so this part looks good to me. Best regards, Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel