File: audioencoder.h

package info (click to toggle)
avifile 1%3A0.7.48~20090503.ds-20.1
  • links: PTS
  • area: main
  • in suites: buster
  • size: 8,340 kB
  • sloc: cpp: 57,239; ansic: 56,968; sh: 5,370; perl: 1,548; makefile: 1,263; asm: 569; awk: 234
file content (63 lines) | stat: -rw-r--r-- 1,950 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#ifndef AVIFILE_AUDIOENCODER_H
#define AVIFILE_AUDIOENCODER_H

/********************************************************
 *
 * Audio encoder interface.
 *
 ********************************************************/

#include "infotypes.h"

AVM_BEGIN_NAMESPACE;

/**
 *
 * \warning
 * As of 1/15/2001, the only supported format is MPEG layer-3
 * ( using Lame encoder v. 3.70 ), format id 0x55. Arguments passed
 * to Create() are not checked for correctness. Only 16-bit input
 * is supported.
 *
 */
class AVMEXPORT IAudioEncoder
{
public:
    IAudioEncoder(const CodecInfo& info);
    virtual ~IAudioEncoder();
    /**
     * Finishes conversion. May write some more data
     * ( pass buffer of >10kb size here ).
     */
    virtual int Close(void* out_data, size_t out_size, size_t* size_written) = 0;
    /**
     * Encodes data. Parameters in_size and size_read are measured
     * in samples ( not in bytes ).
     */
    virtual int Convert(const void* in_data, size_t in_size,
			void* out_data, size_t out_size,
			size_t* size_read, size_t* size_written)	= 0;
    virtual const CodecInfo& GetCodecInfo() const;
    /// Reads the format structure. (format == 0 -> query for size)
    virtual size_t GetFormat(void* format = 0, size_t size = 0) const	= 0;
    /// Starts conversion.
    virtual int Start()							= 0;

    /// USE ATTRIBUTES as for video - we want to support a lot of various parameters
    /// Sets bitrate in bytes/second.
    virtual int SetBitrate(int bitrate);
    /// Sets encoding quality ( 1..10 ).
    virtual int SetQuality(int quality);
    /// Sets more extra options
    //virtual int Set(int option, int param) { return -1; }

    /// Queries for the size of structure describing destination format.
    /// \obsolete - just source backward compatible
    size_t GetFormatSize() const { return GetFormat(0, 0); }
protected:
    const CodecInfo& m_Info;
};

AVM_END_NAMESPACE;

#endif // AVIFILE_AUDIOENCODER_H