Merge commit 'a4472ac01e86f9fae5adb9034f2777b86a9c5480'

* commit 'a4472ac01e86f9fae5adb9034f2777b86a9c5480':
  Add informative messages to av_log_ask_for_sample calls lacking them
  anm: Get rid of some very silly goto statements

Conflicts:
	libavformat/anm.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
pull/12/merge
Michael Niedermayer 12 years ago
commit 849f015406
  1. 5
      libavcodec/h264.c
  2. 9
      libavformat/anm.c
  3. 3
      libavformat/spdifenc.c
  4. 6
      libavformat/xwma.c

@ -3484,9 +3484,8 @@ static int decode_slice_header(H264Context *h, H264Context *h0)
h->droppable = last_pic_droppable;
return AVERROR_INVALIDDATA;
} else if (last_pic_droppable != h->droppable) {
av_log(h->avctx, AV_LOG_ERROR,
"Cannot combine reference and non-reference fields in the same frame\n");
av_log_ask_for_sample(h->avctx, NULL);
av_log_ask_for_sample(h->avctx,
"Found reference and non-reference fields in the same frame.\n");
h->picture_structure = last_pic_structure;
h->droppable = last_pic_droppable;
return AVERROR_PATCHWELCOME;

@ -134,9 +134,9 @@ static int read_header(AVFormatContext *s)
/* color cycling and palette data */
st->codec->extradata_size = 16*8 + 4*256;
st->codec->extradata = av_mallocz(st->codec->extradata_size + FF_INPUT_BUFFER_PADDING_SIZE);
if (!st->codec->extradata)
if (!st->codec->extradata) {
return AVERROR(ENOMEM);
}
ret = avio_read(pb, st->codec->extradata, st->codec->extradata_size);
if (ret < 0)
return ret;
@ -155,14 +155,15 @@ static int read_header(AVFormatContext *s)
/* find page of first frame */
anm->page = find_record(anm, 0);
if (anm->page < 0)
if (anm->page < 0) {
return anm->page;
}
anm->record = -1;
return 0;
invalid:
av_log_ask_for_sample(s, NULL);
av_log_ask_for_sample(s, "Invalid header element encountered.\n");
return AVERROR_PATCHWELCOME;
}

@ -412,8 +412,7 @@ static int spdif_header_truehd(AVFormatContext *s, AVPacket *pkt)
if (pkt->size > TRUEHD_FRAME_OFFSET - mat_code_length) {
/* if such frames exist, we'd need some more complex logic to
* distribute the TrueHD frames in the MAT frame */
av_log(s, AV_LOG_ERROR, "TrueHD frame too big, %d bytes\n", pkt->size);
av_log_ask_for_sample(s, NULL);
av_log_ask_for_sample(s, "TrueHD frame too big, %d bytes\n", pkt->size);
return AVERROR_PATCHWELCOME;
}

@ -85,9 +85,8 @@ static int xwma_read_header(AVFormatContext *s)
* anyway.
*/
if (st->codec->codec_id != AV_CODEC_ID_WMAV2) {
av_log(s, AV_LOG_WARNING, "unexpected codec (tag 0x04%x; id %d)\n",
av_log_ask_for_sample(s, "unexpected codec (tag 0x04%x; id %d)\n",
st->codec->codec_tag, st->codec->codec_id);
av_log_ask_for_sample(s, NULL);
} else {
/* In all xWMA files I have seen, there is no extradata. But the WMA
* codecs require extradata, so we provide our own fake extradata.
@ -101,9 +100,8 @@ static int xwma_read_header(AVFormatContext *s)
* if it will work, but just go on and try it, after asking
* the user for a sample.
*/
av_log(s, AV_LOG_WARNING, "unexpected extradata (%d bytes)\n",
av_log_ask_for_sample(s, "unexpected extradata (%d bytes)\n",
st->codec->extradata_size);
av_log_ask_for_sample(s, NULL);
} else {
st->codec->extradata_size = 6;
st->codec->extradata = av_mallocz(6 + FF_INPUT_BUFFER_PADDING_SIZE);

Loading…
Cancel
Save