49
50
case AVMEDIA_TYPE_AUDIO: {
50
51
RawAudioDemuxerContext *s1 = s->priv_data;
52
#if FF_API_FORMAT_PARAMETERS
54
st->codec->sample_rate = ap->sample_rate;
56
st->codec->channels = ap->channels;
57
else st->codec->channels = 1;
53
st->codec->channels = 1;
55
if (id == CODEC_ID_ADPCM_G722)
56
st->codec->sample_rate = 16000;
58
if (s1 && s1->sample_rate)
61
59
st->codec->sample_rate = s1->sample_rate;
60
if (s1 && s1->channels)
63
61
st->codec->channels = s1->channels;
65
63
st->codec->bits_per_coded_sample = av_get_bits_per_sample(st->codec->codec_id);
66
64
assert(st->codec->bits_per_coded_sample > 0);
67
65
st->codec->block_align = st->codec->bits_per_coded_sample*st->codec->channels/8;
68
av_set_pts_info(st, 64, 1, st->codec->sample_rate);
66
avpriv_set_pts_info(st, 64, 1, st->codec->sample_rate);
71
69
case AVMEDIA_TYPE_VIDEO: {
87
85
av_log(s, AV_LOG_ERROR, "Could not parse framerate: %s.\n", s1->framerate);
90
#if FF_API_FORMAT_PARAMETERS
96
pix_fmt = ap->pix_fmt;
97
if (ap->time_base.num)
98
framerate = (AVRational){ap->time_base.den, ap->time_base.num};
100
av_set_pts_info(st, 64, framerate.den, framerate.num);
88
avpriv_set_pts_info(st, 64, framerate.den, framerate.num);
101
89
st->codec->width = width;
102
90
st->codec->height = height;
103
91
st->codec->pix_fmt = pix_fmt;
170
159
av_log(s, AV_LOG_ERROR, "Could not parse framerate: %s.\n", s1->framerate);
173
#if FF_API_FORMAT_PARAMETERS
174
if (ap->time_base.num)
175
framerate = (AVRational){ap->time_base.den, ap->time_base.num};
178
st->codec->time_base = (AVRational){framerate.den, framerate.num};
179
av_set_pts_info(st, 64, 1, 1200000);
163
st->r_frame_rate = st->avg_frame_rate = framerate;
164
avpriv_set_pts_info(st, 64, 1, 1200000);
185
170
/* Note: Do not forget to add new entries to the Makefile as well. */
187
static const AVOption audio_options[] = {
188
{ "sample_rate", "", offsetof(RawAudioDemuxerContext, sample_rate), FF_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
189
{ "channels", "", offsetof(RawAudioDemuxerContext, channels), FF_OPT_TYPE_INT, {.dbl = 0}, 0, INT_MAX, AV_OPT_FLAG_DECODING_PARAM },
193
const AVClass ff_rawaudio_demuxer_class = {
194
.class_name = "rawaudio demuxer",
195
.item_name = av_default_item_name,
196
.option = audio_options,
197
.version = LIBAVUTIL_VERSION_INT,
200
172
#define OFFSET(x) offsetof(FFRawVideoDemuxerContext, x)
201
173
#define DEC AV_OPT_FLAG_DECODING_PARAM
202
static const AVOption video_options[] = {
203
{ "video_size", "A string describing frame size, such as 640x480 or hd720.", OFFSET(video_size), FF_OPT_TYPE_STRING, {.str = NULL}, 0, 0, DEC },
204
{ "pixel_format", "", OFFSET(pixel_format), FF_OPT_TYPE_STRING, {.str = "yuv420p"}, 0, 0, DEC },
205
{ "framerate", "", OFFSET(framerate), FF_OPT_TYPE_STRING, {.str = "25"}, 0, 0, DEC },
174
const AVOption ff_rawvideo_options[] = {
175
{ "framerate", "", OFFSET(framerate), AV_OPT_TYPE_STRING, {.str = "25"}, 0, 0, DEC},
211
const AVClass ff_rawvideo_demuxer_class = {
212
.class_name = "rawvideo demuxer",
213
.item_name = av_default_item_name,
214
.option = video_options,
215
.version = LIBAVUTIL_VERSION_INT,
218
179
#if CONFIG_G722_DEMUXER
219
180
AVInputFormat ff_g722_demuxer = {
221
NULL_IF_CONFIG_SMALL("raw G.722"),
222
sizeof(RawAudioDemuxerContext),
225
ff_raw_read_partial_packet,
182
.long_name = NULL_IF_CONFIG_SMALL("raw G.722"),
183
.read_header = ff_raw_read_header,
184
.read_packet = ff_raw_read_partial_packet,
226
185
.flags= AVFMT_GENERIC_INDEX,
227
186
.extensions = "g722,722",
228
187
.value = CODEC_ID_ADPCM_G722,
229
.priv_class = &ff_rawaudio_demuxer_class,
233
#if CONFIG_GSM_DEMUXER
234
AVInputFormat ff_gsm_demuxer = {
236
NULL_IF_CONFIG_SMALL("raw GSM"),
239
ff_raw_audio_read_header,
240
ff_raw_read_partial_packet,
191
#if CONFIG_LATM_DEMUXER
192
AVInputFormat ff_latm_demuxer = {
194
.long_name = NULL_IF_CONFIG_SMALL("raw LOAS/LATM"),
195
.read_header = ff_raw_audio_read_header,
196
.read_packet = ff_raw_read_partial_packet,
241
197
.flags= AVFMT_GENERIC_INDEX,
243
.value = CODEC_ID_GSM,
198
.extensions = "latm",
199
.value = CODEC_ID_AAC_LATM,
265
219
#if CONFIG_TRUEHD_DEMUXER
266
220
AVInputFormat ff_truehd_demuxer = {
268
NULL_IF_CONFIG_SMALL("raw TrueHD"),
271
ff_raw_audio_read_header,
272
ff_raw_read_partial_packet,
222
.long_name = NULL_IF_CONFIG_SMALL("raw TrueHD"),
223
.read_header = ff_raw_audio_read_header,
224
.read_packet = ff_raw_read_partial_packet,
273
225
.flags= AVFMT_GENERIC_INDEX,
274
226
.extensions = "thd",
275
227
.value = CODEC_ID_TRUEHD,
279
231
#if CONFIG_SHORTEN_DEMUXER
280
232
AVInputFormat ff_shorten_demuxer = {
282
NULL_IF_CONFIG_SMALL("raw Shorten"),
285
ff_raw_audio_read_header,
286
ff_raw_read_partial_packet,
287
.flags= AVFMT_GENERIC_INDEX,
234
.long_name = NULL_IF_CONFIG_SMALL("raw Shorten"),
235
.read_header = ff_raw_audio_read_header,
236
.read_packet = ff_raw_read_partial_packet,
237
.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK,
288
238
.extensions = "shn",
289
239
.value = CODEC_ID_SHORTEN,