提交 5c470b91 编写于 作者: R Ronald S. Bultje 提交者: Benoit Fouet

Split ac3 byte swapping into a separate function.

Patch by Ronald S. Bultje: rsbultje gmail com
Original thread: Re: [FFmpeg-devel] [PATCH 4/6] rmdec.c: rm_ac3_swap_bytes()
Date: 11/05/2007 09:27 PM

Originally committed as revision 10964 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 d4d1b5fb
...@@ -535,6 +535,21 @@ static int rm_assemble_video_frame(AVFormatContext *s, RMContext *rm, AVPacket * ...@@ -535,6 +535,21 @@ static int rm_assemble_video_frame(AVFormatContext *s, RMContext *rm, AVPacket *
return 1; return 1;
} }
static inline void
rm_ac3_swap_bytes (AVStream *st, AVPacket *pkt)
{
uint8_t *ptr;
int j;
if (st->codec->codec_id == CODEC_ID_AC3) {
ptr = pkt->data;
for (j=0;j<pkt->size;j+=2) {
FFSWAP(int, ptr[0], ptr[1]);
ptr += 2;
}
}
}
static int static int
ff_rm_parse_packet (AVFormatContext *s, AVStream *st, int len, AVPacket *pkt, ff_rm_parse_packet (AVFormatContext *s, AVStream *st, int len, AVPacket *pkt,
int *seq, int *flags, int64_t *timestamp) int *seq, int *flags, int64_t *timestamp)
...@@ -658,9 +673,8 @@ static int rm_read_packet(AVFormatContext *s, AVPacket *pkt) ...@@ -658,9 +673,8 @@ static int rm_read_packet(AVFormatContext *s, AVPacket *pkt)
RMContext *rm = s->priv_data; RMContext *rm = s->priv_data;
ByteIOContext *pb = &s->pb; ByteIOContext *pb = &s->pb;
AVStream *st; AVStream *st;
int i, len, j; int i, len;
int64_t timestamp, pos; int64_t timestamp, pos;
uint8_t *ptr;
int flags; int flags;
if (rm->audio_pkt_cnt) { if (rm->audio_pkt_cnt) {
...@@ -710,14 +724,7 @@ resync: ...@@ -710,14 +724,7 @@ resync:
} }
} }
/* for AC3, needs to swap bytes */ rm_ac3_swap_bytes(st, pkt);
if (st->codec->codec_id == CODEC_ID_AC3) {
ptr = pkt->data;
for(j=0;j<pkt->size;j+=2) {
FFSWAP(int, ptr[0], ptr[1]);
ptr += 2;
}
}
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册