~ubuntu-branches/ubuntu/trusty/libav/trusty-proposed

« back to all changes in this revision

Viewing changes to libavdevice/pulse.c

  • Committer: Package Import Robot
  • Author(s): Reinhard Tartler
  • Date: 2013-10-22 23:24:08 UTC
  • mfrom: (1.3.36 sid)
  • Revision ID: package-import@ubuntu.com-20131022232408-b8tvvn4pyzri9mi3
Tags: 6:9.10-1ubuntu1
* Build all -extra flavors from this source package, as libav got demoted
  from main to universe, cf LP: #1243235
* Simplify debian/rules to follow exactly the code that debian executes
* New upstream (LP: #1180288) fixes lots of security issues (LP: #1242802)
* Merge from unstable, remaining changes:
  - build-depend on libtiff5-dev rather than libtiff4-dev,
    avoids FTBFS caused by imlib
  - follow the regular debian codepaths

Show diffs side-by-side

added added

removed removed

Lines of Context:
33
33
#include "libavformat/internal.h"
34
34
#include "libavutil/opt.h"
35
35
 
36
 
#define DEFAULT_CODEC_ID AV_NE(CODEC_ID_PCM_S16BE, CODEC_ID_PCM_S16LE)
 
36
#define DEFAULT_CODEC_ID AV_NE(AV_CODEC_ID_PCM_S16BE, AV_CODEC_ID_PCM_S16LE)
37
37
 
38
38
typedef struct PulseData {
39
39
    AVClass *class;
51
51
 
52
52
static pa_sample_format_t codec_id_to_pulse_format(int codec_id) {
53
53
    switch (codec_id) {
54
 
    case CODEC_ID_PCM_U8:    return PA_SAMPLE_U8;
55
 
    case CODEC_ID_PCM_ALAW:  return PA_SAMPLE_ALAW;
56
 
    case CODEC_ID_PCM_MULAW: return PA_SAMPLE_ULAW;
57
 
    case CODEC_ID_PCM_S16LE: return PA_SAMPLE_S16LE;
58
 
    case CODEC_ID_PCM_S16BE: return PA_SAMPLE_S16BE;
59
 
    case CODEC_ID_PCM_F32LE: return PA_SAMPLE_FLOAT32LE;
60
 
    case CODEC_ID_PCM_F32BE: return PA_SAMPLE_FLOAT32BE;
61
 
    case CODEC_ID_PCM_S32LE: return PA_SAMPLE_S32LE;
62
 
    case CODEC_ID_PCM_S32BE: return PA_SAMPLE_S32BE;
63
 
    case CODEC_ID_PCM_S24LE: return PA_SAMPLE_S24LE;
64
 
    case CODEC_ID_PCM_S24BE: return PA_SAMPLE_S24BE;
 
54
    case AV_CODEC_ID_PCM_U8:    return PA_SAMPLE_U8;
 
55
    case AV_CODEC_ID_PCM_ALAW:  return PA_SAMPLE_ALAW;
 
56
    case AV_CODEC_ID_PCM_MULAW: return PA_SAMPLE_ULAW;
 
57
    case AV_CODEC_ID_PCM_S16LE: return PA_SAMPLE_S16LE;
 
58
    case AV_CODEC_ID_PCM_S16BE: return PA_SAMPLE_S16BE;
 
59
    case AV_CODEC_ID_PCM_F32LE: return PA_SAMPLE_FLOAT32LE;
 
60
    case AV_CODEC_ID_PCM_F32BE: return PA_SAMPLE_FLOAT32BE;
 
61
    case AV_CODEC_ID_PCM_S32LE: return PA_SAMPLE_S32LE;
 
62
    case AV_CODEC_ID_PCM_S32BE: return PA_SAMPLE_S32BE;
 
63
    case AV_CODEC_ID_PCM_S24LE: return PA_SAMPLE_S24LE;
 
64
    case AV_CODEC_ID_PCM_S24BE: return PA_SAMPLE_S24BE;
65
65
    default:                 return PA_SAMPLE_INVALID;
66
66
    }
67
67
}
68
68
 
69
 
static av_cold int pulse_read_header(AVFormatContext *s,
70
 
                                     AVFormatParameters *ap)
 
69
static av_cold int pulse_read_header(AVFormatContext *s)
71
70
{
72
71
    PulseData *pd = s->priv_data;
73
72
    AVStream *st;
74
73
    char *device = NULL;
75
74
    int ret;
76
 
    enum CodecID codec_id =
77
 
        s->audio_codec_id == CODEC_ID_NONE ? DEFAULT_CODEC_ID : s->audio_codec_id;
 
75
    enum AVCodecID codec_id =
 
76
        s->audio_codec_id == AV_CODEC_ID_NONE ? DEFAULT_CODEC_ID : s->audio_codec_id;
78
77
    const pa_sample_spec ss = { codec_id_to_pulse_format(codec_id),
79
78
                                pd->sample_rate,
80
79
                                pd->channels };
165
164
    { "server",        "pulse server name",                              OFFSET(server),        AV_OPT_TYPE_STRING, {.str = NULL},     0, 0, D },
166
165
    { "name",          "application name",                               OFFSET(name),          AV_OPT_TYPE_STRING, {.str = "libav"},  0, 0, D },
167
166
    { "stream_name",   "stream description",                             OFFSET(stream_name),   AV_OPT_TYPE_STRING, {.str = "record"}, 0, 0, D },
168
 
    { "sample_rate",   "sample rate in Hz",                              OFFSET(sample_rate),   AV_OPT_TYPE_INT,    {.dbl = 48000},    1, INT_MAX, D },
169
 
    { "channels",      "number of audio channels",                       OFFSET(channels),      AV_OPT_TYPE_INT,    {.dbl = 2},        1, INT_MAX, D },
170
 
    { "frame_size",    "number of bytes per frame",                      OFFSET(frame_size),    AV_OPT_TYPE_INT,    {.dbl = 1024},     1, INT_MAX, D },
171
 
    { "fragment_size", "buffering size, affects latency and cpu usage",  OFFSET(fragment_size), AV_OPT_TYPE_INT,    {.dbl = -1},      -1, INT_MAX, D },
 
167
    { "sample_rate",   "sample rate in Hz",                              OFFSET(sample_rate),   AV_OPT_TYPE_INT,    {.i64 = 48000},    1, INT_MAX, D },
 
168
    { "channels",      "number of audio channels",                       OFFSET(channels),      AV_OPT_TYPE_INT,    {.i64 = 2},        1, INT_MAX, D },
 
169
    { "frame_size",    "number of bytes per frame",                      OFFSET(frame_size),    AV_OPT_TYPE_INT,    {.i64 = 1024},     1, INT_MAX, D },
 
170
    { "fragment_size", "buffering size, affects latency and cpu usage",  OFFSET(fragment_size), AV_OPT_TYPE_INT,    {.i64 = -1},      -1, INT_MAX, D },
172
171
    { NULL },
173
172
};
174
173