[FFmpeg-devel] [PATCH] Avoid a few shifts on each frame while decoding mpeg audio.
Clément Bœsch
ubitux
Sun Jan 16 21:53:38 CET 2011
Hi,
The MPEG audio parser seems to do a few useless shifts each time a new
frame is sent for feeding; this patch avoids this (one read instead of 4
shifts). I ran the fate tests locally and it seems it didn't break
anything.
Also, I don't understand the header_count field (in use a few lines below)
so it may be wise to check if it is not related to what I tried to
achieve.
Regards,
--
Cl?ment B.
-------------- next part --------------
>From beb7d21224596d98dd3eebca5fef43c74da5c1ad Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Cl=C3=A9ment=20B=C5=93sch?= <ubitux at gmail.com>
Date: Sun, 16 Jan 2011 21:43:16 +0100
Subject: [PATCH] Avoid a few shifts on each frame while decoding mpeg audio.
---
libavcodec/mpegaudio_parser.c | 6 +++++-
1 files changed, 5 insertions(+), 1 deletions(-)
diff --git a/libavcodec/mpegaudio_parser.c b/libavcodec/mpegaudio_parser.c
index 6d7ab8a..5ced648 100644
--- a/libavcodec/mpegaudio_parser.c
+++ b/libavcodec/mpegaudio_parser.c
@@ -103,7 +103,11 @@ static int mpegaudio_parse(AVCodecParserContext *s1,
while(i<buf_size){
int ret, sr, channels, bit_rate, frame_size;
- state= (state<<8) + buf[i++];
+ if (i == 0 && buf_size >= 4) {
+ state = AV_RB32(buf);
+ i += 4;
+ } else
+ state = (state<<8) + buf[i++];
ret = ff_mpa_decode_header(avctx, state, &sr, &channels, &frame_size, &bit_rate);
if (ret < 4) {
--
1.7.3.5
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 490 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20110116/aa6c6d65/attachment.pgp>
More information about the ffmpeg-devel
mailing list