Mercurial > libavformat.hg
comparison txd.c @ 5898:cda7add41fbb libavformat
Use more appropriate return values in txd demuxer.
| author | reimar |
|---|---|
| date | Sat, 27 Mar 2010 19:10:24 +0000 |
| parents | d4f4eb9ce54f |
| children | 536e5527c1e0 |
comparison
equal
deleted
inserted
replaced
| 5897:d7f41380f52c | 5898:cda7add41fbb |
|---|---|
| 60 id = get_le32(pb); | 60 id = get_le32(pb); |
| 61 chunk_size = get_le32(pb); | 61 chunk_size = get_le32(pb); |
| 62 marker = get_le32(pb); | 62 marker = get_le32(pb); |
| 63 | 63 |
| 64 if (url_feof(s->pb)) | 64 if (url_feof(s->pb)) |
| 65 return AVERROR(EIO); | 65 return AVERROR_EOF; |
| 66 if (marker != TXD_MARKER && marker != TXD_MARKER2) { | 66 if (marker != TXD_MARKER && marker != TXD_MARKER2) { |
| 67 av_log(s, AV_LOG_ERROR, "marker does not match\n"); | 67 av_log(s, AV_LOG_ERROR, "marker does not match\n"); |
| 68 return AVERROR(EIO); | 68 return AVERROR_INVALIDDATA; |
| 69 } | 69 } |
| 70 | 70 |
| 71 switch (id) { | 71 switch (id) { |
| 72 case TXD_INFO: | 72 case TXD_INFO: |
| 73 if (chunk_size > 100) | 73 if (chunk_size > 100) |
| 77 case TXD_FILE: | 77 case TXD_FILE: |
| 78 case TXD_TEXTURE: | 78 case TXD_TEXTURE: |
| 79 goto next_chunk; | 79 goto next_chunk; |
| 80 default: | 80 default: |
| 81 av_log(s, AV_LOG_ERROR, "unknown chunk id %i\n", id); | 81 av_log(s, AV_LOG_ERROR, "unknown chunk id %i\n", id); |
| 82 return AVERROR(EIO); | 82 return AVERROR_INVALIDDATA; |
| 83 } | 83 } |
| 84 | 84 |
| 85 ret = av_get_packet(s->pb, pkt, chunk_size); | 85 ret = av_get_packet(s->pb, pkt, chunk_size); |
| 86 if (ret < 0) | |
| 87 return ret; | |
| 86 pkt->stream_index = 0; | 88 pkt->stream_index = 0; |
| 87 | 89 |
| 88 return ret <= 0 ? AVERROR(EIO) : ret; | 90 return 0; |
| 89 } | 91 } |
| 90 | 92 |
| 91 AVInputFormat txd_demuxer = | 93 AVInputFormat txd_demuxer = |
| 92 { | 94 { |
| 93 "txd", | 95 "txd", |
