Mercurial > libavcodec.hg
annotate h261.h @ 8130:c45366b01126 libavcodec
ARM: fix j_rev_dct_ARM
This is a bugfix for ARMv4 assembly implementation of 'j_rev_dct'
function.
The problem was in the incorrect partially empty row detection. Even
if the first two coefficients in the row were nonzero, it handled this
just like the case with only the first nonzero coefficient.
Now this function produces exactly the same output as the stripped
down reference C version of 'j_rev_dct' (with the nested checks like
'if (d6) { if (d2) { ...' always evaluated as true, avoiding shortcut
branches).
author | mru |
---|---|
date | Wed, 12 Nov 2008 20:23:36 +0000 |
parents | c4a4495715dd |
children | e9d9d946f213 |
rev | line source |
---|---|
5057
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
1 /* |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
2 * H261 decoder |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
3 * Copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at> |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
4 * Copyright (c) 2004 Maarten Daniels |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
5 * |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
6 * This file is part of FFmpeg. |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
7 * |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
8 * FFmpeg is free software; you can redistribute it and/or |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
9 * modify it under the terms of the GNU Lesser General Public |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
10 * License as published by the Free Software Foundation; either |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
11 * version 2.1 of the License, or (at your option) any later version. |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
12 * |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
13 * FFmpeg is distributed in the hope that it will be useful, |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
16 * Lesser General Public License for more details. |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
17 * |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
18 * You should have received a copy of the GNU Lesser General Public |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
19 * License along with FFmpeg; if not, write to the Free Software |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
20 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
21 */ |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
22 |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
23 /** |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
24 * @file h261.c |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
25 * h261codec. |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
26 */ |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
27 |
7760 | 28 #ifndef AVCODEC_H261_H |
29 #define AVCODEC_H261_H | |
5163 | 30 |
5057
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
31 #include "mpegvideo.h" |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
32 |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
33 /** |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
34 * H261Context |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
35 */ |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
36 typedef struct H261Context{ |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
37 MpegEncContext s; |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
38 |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
39 int current_mba; |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
40 int previous_mba; |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
41 int mba_diff; |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
42 int mtype; |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
43 int current_mv_x; |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
44 int current_mv_y; |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
45 int gob_number; |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
46 int gob_start_code_skipped; // 1 if gob start code is already read before gob header is read |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
47 }H261Context; |
5b63f62602fa
Split the h261.c file into separate files for the encoder, decoder and common stuff.
takis
parents:
diff
changeset
|
48 |
5158
65b1bfb3a74c
move definition of MB_TYPE_H261_FIL to h261.h so h261.c doesn't
mru
parents:
5057
diff
changeset
|
49 #define MB_TYPE_H261_FIL 0x800000 |
5163 | 50 |
7760 | 51 #endif /* AVCODEC_H261_H */ |