Browse Source

Use new function put_nbyte() to speed up padding.

Patch by Anssi Hannula, anssi d hannula a iki d fi

Originally committed as revision 26194 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/n0.8
Anssi Hannula Carl Eugen Hoyos 14 years ago
parent
commit
febd72be65
1 changed files with 2 additions and 3 deletions
  1. +2
    -3
      libavformat/spdifenc.c

+ 2
- 3
libavformat/spdifenc.c View File

@@ -347,7 +347,7 @@ static int spdif_write_packet(struct AVFormatContext *s, AVPacket *pkt)
if (!ctx->pkt_offset) if (!ctx->pkt_offset)
return 0; return 0;


padding = (ctx->pkt_offset - ctx->use_preamble * BURST_HEADER_SIZE - ctx->out_bytes) >> 1;
padding = (ctx->pkt_offset - ctx->use_preamble * BURST_HEADER_SIZE - ctx->out_bytes) & ~1;
if (padding < 0) { if (padding < 0) {
av_log(s, AV_LOG_ERROR, "bitrate is too high\n"); av_log(s, AV_LOG_ERROR, "bitrate is too high\n");
return AVERROR(EINVAL); return AVERROR(EINVAL);
@@ -373,8 +373,7 @@ static int spdif_write_packet(struct AVFormatContext *s, AVPacket *pkt)
if (ctx->out_bytes & 1) if (ctx->out_bytes & 1)
put_be16(s->pb, ctx->out_buf[ctx->out_bytes - 1]); put_be16(s->pb, ctx->out_buf[ctx->out_bytes - 1]);


for (; padding > 0; padding--)
put_be16(s->pb, 0);
put_nbyte(s->pb, 0, padding);


av_log(s, AV_LOG_DEBUG, "type=%x len=%i pkt_offset=%i\n", av_log(s, AV_LOG_DEBUG, "type=%x len=%i pkt_offset=%i\n",
ctx->data_type, ctx->out_bytes, ctx->pkt_offset); ctx->data_type, ctx->out_bytes, ctx->pkt_offset);


Loading…
Cancel
Save