On Tue, Jan 10, 2012 at 09:31:20AM -0600, Daniel Huang wrote:
>
> --- a/libavformat/mov.c
> +++ b/libavformat/mov.c
> @@ -732,7 +734,7 @@ static int mov_read_mdhd(MOVContext *c, AVIOContext *pb,
> MOVAtom atom)
>
> version = avio_r8(pb);
> if (version > 1)
> - return -1; /* unsupported */
> + return AVERROR_PATCHWELCOME; /* unsupported */
There could be an av_log_missing_feature or av_log_ask_for_sample here.
> @@ -911,13 +913,14 @@ static int mov_read_extradata(MOVContext *c,
> AVIOContext *pb, MOVAtom atom)
> static int mov_read_wave(MOVContext *c, AVIOContext *pb, MOVAtom atom)
> {
> AVStream *st;
> + int ret;
>
> @@ -928,8 +931,8 @@ static int mov_read_wave(MOVContext *c, AVIOContext *pb,
> MOVAtom atom)
> st->codec->extradata_size = atom.size;
> avio_read(pb, st->codec->extradata, atom.size);
> } else if (atom.size > 8) { /* to read frma, esds atoms */
> - if (mov_read_default(c, pb, atom) < 0)
> - return -1;
> + if ((ret = mov_read_default(c, pb, atom)) < 0)
> + return ret;
> } else
> avio_skip(pb, atom.size);
> return 0;
ret can be declared inside the if-block instead.
> @@ -1074,6 +1077,7 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext
> *pb, int entries)
> AVStream *st;
> MOVStreamContext *sc;
> int j, pseudo_stream_id;
> + int ret;
>
> @@ -1338,8 +1342,8 @@ int ff_mov_read_stsd_entries(MOVContext *c, AVIOContext
> *pb, int entries)
> /* this will read extra atoms at the end (wave, alac, damr, avcC,
> SMI ...) */
> a.size = size - (avio_tell(pb) - start_pos);
> if (a.size > 8) {
> - if (mov_read_default(c, pb, a) < 0)
> - return -1;
> + if ((ret = mov_read_default(c, pb, a)) < 0)
> + return ret;
> } else if (a.size > 0)
> avio_skip(pb, a.size);
> }
ditto
> --- a/libavformat/mxfdec.c
> +++ b/libavformat/mxfdec.c
> @@ -311,17 +311,18 @@ static int mxf_decrypt_triplet(AVFormatContext *s,
> AVPacket *pkt, KLVPacket *klv
> static int mxf_read_packet(AVFormatContext *s, AVPacket *pkt)
> {
> KLVPacket klv;
> + int ret;
>
> while (!s->pb->eof_reached) {
> - if (klv_read_packet(&klv, s->pb) < 0)
> - return -1;
> + if ((ret = klv_read_packet(&klv, s->pb)) < 0)
> + return ret;
same
> @@ -362,14 +363,14 @@ static int mxf_read_primer_pack(void *arg, AVIOContext
> *pb, int tag, int size, U
>
> if (item_len != 18) {
> av_log(mxf->fc, AV_LOG_ERROR, "unsupported primer pack item
> length\n");
> - return -1;
> + return AVERROR_INVALIDDATA;
That looks more like PATCHWELCOME
There could be an av_log_missing_feature or av_log_ask_for_sample here.
> @@ -878,9 +879,10 @@ static int mxf_read_local_tags(MXFContext *mxf,
> KLVPacket *klv, MXFMetadataReadF
> AVIOContext *pb = mxf->fc->pb;
> MXFMetadataSet *ctx = ctx_size ? av_mallocz(ctx_size) : mxf;
> uint64_t klv_end = avio_tell(pb) + klv->length;
> + int ret;
>
> if (!ctx)
> - return -1;
> + return AVERROR(ENOMEM);
> while (avio_tell(pb) + 4 < klv_end) {
> int tag = avio_rb16(pb);
> int size = avio_rb16(pb); /* KLV specified by 0x53 */
> @@ -905,8 +907,8 @@ static int mxf_read_local_tags(MXFContext *mxf, KLVPacket
> *klv, MXFMetadataReadF
> }
> if (ctx_size && tag == 0x3C0A)
> avio_read(pb, ctx->uid, 16);
> - else if (read_child(ctx, pb, tag, size, uid) < 0)
> - return -1;
> + else if ((ret = read_child(ctx, pb, tag, size, uid)) < 0)
> + return ret;
The variable declaration can be moved I think.
> @@ -918,18 +920,19 @@ static int mxf_read_header(AVFormatContext *s,
> AVFormatParameters *ap)
> {
> MXFContext *mxf = s->priv_data;
> KLVPacket klv;
> + int ret;
>
> if (!mxf_read_sync(s->pb, mxf_header_partition_pack_key, 14)) {
> av_log(s, AV_LOG_ERROR, "could not find header partition pack
> key\n");
> - return -1;
> + return AVERROR_INVALIDDATA;
> }
> avio_seek(s->pb, -14, SEEK_CUR);
> mxf->fc = s;
> while (!s->pb->eof_reached) {
> const MXFMetadataReadTableEntry *metadata;
>
> - if (klv_read_packet(&klv, s->pb) < 0)
> - return -1;
> + if ((ret = klv_read_packet(&klv, s->pb)) < 0)
> + return ret;
> PRINT_KEY(s, "read header", klv.key);
ret can be declared inside the while block.
Diego
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel