Merge remote-tracking branch 'qatar/master'

* qatar/master:
  configure: add POWER[5-7] support
  arm: intreadwrite: revert 16-bit load asm to old version for gcc < 4.6
  vqavideo: return error if image size is not a multiple of block size
  cosmetics: indentation
  avformat: only fill-in interpolated timestamps if duration is non-zero
  avformat: remove a workaround for broken timestamps

Conflicts:
	libavformat/utils.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
pull/30/merge
Michael Niedermayer 13 years ago
commit bce42e95d1
  1. 5
      configure
  2. 10
      libavcodec/vqavideo.c
  3. 9
      libavformat/utils.c
  4. 4
      libavutil/arm/intreadwrite.h

5
configure vendored

@ -2481,9 +2481,12 @@ elif enabled ppc; then
74*|ppc74*|powerpc74*) 74*|ppc74*|powerpc74*)
cpuflags="-mcpu=7400 -mpowerpc-gfxopt" cpuflags="-mcpu=7400 -mpowerpc-gfxopt"
;; ;;
g5|970|ppc970|powerpc970|power4*) g5|970|ppc970|powerpc970)
cpuflags="-mcpu=970 -mpowerpc-gfxopt -mpowerpc64" cpuflags="-mcpu=970 -mpowerpc-gfxopt -mpowerpc64"
;; ;;
power[3-7]*)
cpuflags="-mcpu=$cpu -mpowerpc-gfxopt -mpowerpc64"
;;
cell) cell)
cpuflags="-mcpu=cell" cpuflags="-mcpu=cell"
enable ldbrx enable ldbrx

@ -155,6 +155,11 @@ static av_cold int vqa_decode_init(AVCodecContext *avctx)
return -1; return -1;
} }
if (s->width % s->vector_width || s->height % s->vector_height) {
av_log(avctx, AV_LOG_ERROR, "Image size not multiple of block size\n");
return AVERROR_INVALIDDATA;
}
/* allocate codebooks */ /* allocate codebooks */
s->codebook_size = MAX_CODEBOOK_SIZE; s->codebook_size = MAX_CODEBOOK_SIZE;
s->codebook = av_malloc(s->codebook_size); s->codebook = av_malloc(s->codebook_size);
@ -164,11 +169,6 @@ static av_cold int vqa_decode_init(AVCodecContext *avctx)
if (!s->next_codebook_buffer) if (!s->next_codebook_buffer)
goto fail; goto fail;
if (s->width % s->vector_width || s->height % s->vector_height) {
av_log(avctx, AV_LOG_ERROR, "Picture dimensions are not a multiple of the vector size\n");
goto fail;
}
/* allocate decode buffer */ /* allocate decode buffer */
s->decode_buffer_size = (s->width / s->vector_width) * s->decode_buffer_size = (s->width / s->vector_width) *
(s->height / s->vector_height) * 2; (s->height / s->vector_height) * 2;

@ -1082,13 +1082,14 @@ static void compute_pkt_fields(AVFormatContext *s, AVStream *st,
} }
/* presentation is not delayed : PTS and DTS are the same */ /* presentation is not delayed : PTS and DTS are the same */
if(pkt->pts == AV_NOPTS_VALUE) if (pkt->pts == AV_NOPTS_VALUE)
pkt->pts = pkt->dts; pkt->pts = pkt->dts;
update_initial_timestamps(s, pkt->stream_index, pkt->pts, pkt->pts); update_initial_timestamps(s, pkt->stream_index, pkt->pts,
if(pkt->pts == AV_NOPTS_VALUE) pkt->pts);
if (pkt->pts == AV_NOPTS_VALUE)
pkt->pts = st->cur_dts; pkt->pts = st->cur_dts;
pkt->dts = pkt->pts; pkt->dts = pkt->pts;
if(pkt->pts != AV_NOPTS_VALUE) if (pkt->pts != AV_NOPTS_VALUE)
st->cur_dts = pkt->pts + duration; st->cur_dts = pkt->pts + duration;
} }
} }

@ -30,7 +30,9 @@ static av_always_inline unsigned AV_RN16(const void *p)
{ {
const uint8_t *q = p; const uint8_t *q = p;
unsigned v; unsigned v;
#ifdef __thumb__ #if !AV_GCC_VERSION_AT_LEAST(4,6)
__asm__ ("ldrh %0, %1" : "=r"(v) : "m"(*(const uint16_t *)q));
#elif defined __thumb__
__asm__ ("ldrh %0, %1" : "=r"(v) : "m"(q[0]), "m"(q[1])); __asm__ ("ldrh %0, %1" : "=r"(v) : "m"(q[0]), "m"(q[1]));
#else #else
__asm__ ("ldrh %0, %1" : "=r"(v) : "Uq"(q[0]), "m"(q[1])); __asm__ ("ldrh %0, %1" : "=r"(v) : "Uq"(q[0]), "m"(q[1]));

Loading…
Cancel
Save