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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5830
diff changeset
28 #ifndef AVCODEC_H261_H
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5830
diff changeset
29 #define AVCODEC_H261_H
5163
9ecbfc0c82bf add multiple inclusion guards to headers
mru
parents: 5158
diff changeset
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
9ecbfc0c82bf add multiple inclusion guards to headers
mru
parents: 5158
diff changeset
50
7760
c4a4495715dd Globally rename the header inclusion guard names.
stefano
parents: 5830
diff changeset
51 #endif /* AVCODEC_H261_H */