Statistics
| Branch: | Revision:

ffmpeg / libavcodec / msmpeg4.h @ 2912e87a

History | View | Annotate | Download (2.34 KB)

1
/*
2
 * MSMPEG4 backend for ffmpeg encoder and decoder
3
 * copyright (c) 2007 Aurelien Jacobs <aurel@gnuage.org>
4
 *
5
 * This file is part of Libav.
6
 *
7
 * Libav is free software; you can redistribute it and/or
8
 * modify it under the terms of the GNU Lesser General Public
9
 * License as published by the Free Software Foundation; either
10
 * version 2.1 of the License, or (at your option) any later version.
11
 *
12
 * Libav is distributed in the hope that it will be useful,
13
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15
 * Lesser General Public License for more details.
16
 *
17
 * You should have received a copy of the GNU Lesser General Public
18
 * License along with Libav; if not, write to the Free Software
19
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
 */
21

    
22
/**
23
 * @file
24
 */
25

    
26
#ifndef AVCODEC_MSMPEG4_H
27
#define AVCODEC_MSMPEG4_H
28

    
29
#include "config.h"
30
#include "avcodec.h"
31
#include "dsputil.h"
32
#include "mpegvideo.h"
33

    
34
#define INTER_INTRA_VLC_BITS 3
35
#define MB_NON_INTRA_VLC_BITS 9
36
#define MB_INTRA_VLC_BITS 9
37

    
38
extern VLC ff_mb_non_intra_vlc[4];
39
extern VLC ff_inter_intra_vlc;
40

    
41
void ff_msmpeg4_code012(PutBitContext *pb, int n);
42
void ff_msmpeg4_encode_block(MpegEncContext * s, DCTELEM * block, int n);
43
void ff_msmpeg4_handle_slices(MpegEncContext *s);
44
void ff_msmpeg4_encode_motion(MpegEncContext * s, int mx, int my);
45
int ff_msmpeg4_coded_block_pred(MpegEncContext * s, int n,
46
                                uint8_t **coded_block_ptr);
47
int ff_msmpeg4_decode_motion(MpegEncContext * s, int *mx_ptr, int *my_ptr);
48
int ff_msmpeg4_decode_block(MpegEncContext * s, DCTELEM * block,
49
                            int n, int coded, const uint8_t *scan_table);
50
int ff_wmv2_decode_mb(MpegEncContext *s, DCTELEM block[6][64]);
51

    
52
#define CONFIG_MSMPEG4_DECODER (CONFIG_MSMPEG4V1_DECODER || \
53
                                CONFIG_MSMPEG4V2_DECODER || \
54
                                CONFIG_MSMPEG4V3_DECODER || \
55
                                CONFIG_WMV2_DECODER      || \
56
                                CONFIG_VC1_DECODER)
57
#define CONFIG_MSMPEG4_ENCODER (CONFIG_MSMPEG4V1_ENCODER || \
58
                                CONFIG_MSMPEG4V2_ENCODER || \
59
                                CONFIG_MSMPEG4V3_ENCODER || \
60
                                CONFIG_WMV2_ENCODER)
61

    
62
#endif /* AVCODEC_MSMPEG4_H */