decoder/mp4ff: merge code into mp4ff_input_stream_open()

This commit is contained in:
Max Kellermann 2010-05-31 09:29:45 +02:00
parent 1729a0b437
commit be308c6657
1 changed files with 17 additions and 17 deletions

View File

@ -111,6 +111,19 @@ static const mp4ff_callback_t mpd_mp4ff_callback = {
.seek = mp4_seek, .seek = mp4_seek,
}; };
static mp4ff_t *
mp4ff_input_stream_open(struct mp4ff_input_stream *mis,
struct decoder *decoder,
struct input_stream *input_stream)
{
mis->callback = mpd_mp4ff_callback;
mis->callback.user_data = mis;
mis->decoder = decoder;
mis->input_stream = input_stream;
return mp4ff_open_read(&mis->callback);
}
static faacDecHandle static faacDecHandle
mp4_faad_new(mp4ff_t *mp4fh, int *track_r, struct audio_format *audio_format) mp4_faad_new(mp4ff_t *mp4fh, int *track_r, struct audio_format *audio_format)
{ {
@ -157,11 +170,7 @@ mp4_faad_new(mp4ff_t *mp4fh, int *track_r, struct audio_format *audio_format)
static void static void
mp4_decode(struct decoder *mpd_decoder, struct input_stream *input_stream) mp4_decode(struct decoder *mpd_decoder, struct input_stream *input_stream)
{ {
struct mp4ff_input_stream mis = { struct mp4ff_input_stream mis;
.callback = mpd_mp4ff_callback,
.decoder = mpd_decoder,
.input_stream = input_stream,
};
mp4ff_t *mp4fh; mp4ff_t *mp4fh;
int32_t track; int32_t track;
float file_time, total_time; float file_time, total_time;
@ -187,9 +196,7 @@ mp4_decode(struct decoder *mpd_decoder, struct input_stream *input_stream)
double seek_where = 0; double seek_where = 0;
enum decoder_command cmd = DECODE_COMMAND_NONE; enum decoder_command cmd = DECODE_COMMAND_NONE;
mis.callback.user_data = &mis; mp4fh = mp4ff_input_stream_open(&mis, mpd_decoder, input_stream);
mp4fh = mp4ff_open_read(&mis.callback);
if (!mp4fh) { if (!mp4fh) {
g_warning("Input does not appear to be a mp4 stream.\n"); g_warning("Input does not appear to be a mp4 stream.\n");
return; return;
@ -361,20 +368,13 @@ static struct tag *
mp4_stream_tag(struct input_stream *is) mp4_stream_tag(struct input_stream *is)
{ {
struct tag *ret = NULL; struct tag *ret = NULL;
struct mp4ff_input_stream mis = { struct mp4ff_input_stream mis;
.callback = mpd_mp4ff_callback,
.decoder = NULL,
.input_stream = is,
};
mp4ff_t *mp4fh;
int32_t track; int32_t track;
int32_t file_time; int32_t file_time;
int32_t scale; int32_t scale;
int i; int i;
mis.callback.user_data = &mis; mp4ff_t *mp4fh = mp4ff_input_stream_open(&mis, NULL, is);
mp4fh = mp4ff_open_read(&mis.callback);
if (mp4fh == NULL) if (mp4fh == NULL)
return NULL; return NULL;