aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoder
diff options
context:
space:
mode:
Diffstat (limited to 'src/decoder')
-rw-r--r--src/decoder/mp4ff_decoder_plugin.c34
1 files changed, 17 insertions, 17 deletions
diff --git a/src/decoder/mp4ff_decoder_plugin.c b/src/decoder/mp4ff_decoder_plugin.c
index 4f4e563b9..97184674e 100644
--- a/src/decoder/mp4ff_decoder_plugin.c
+++ b/src/decoder/mp4ff_decoder_plugin.c
@@ -111,6 +111,19 @@ static const mp4ff_callback_t mpd_mp4ff_callback = {
.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
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
mp4_decode(struct decoder *mpd_decoder, struct input_stream *input_stream)
{
- struct mp4ff_input_stream mis = {
- .callback = mpd_mp4ff_callback,
- .decoder = mpd_decoder,
- .input_stream = input_stream,
- };
+ struct mp4ff_input_stream mis;
mp4ff_t *mp4fh;
int32_t track;
float file_time, total_time;
@@ -187,9 +196,7 @@ mp4_decode(struct decoder *mpd_decoder, struct input_stream *input_stream)
double seek_where = 0;
enum decoder_command cmd = DECODE_COMMAND_NONE;
- mis.callback.user_data = &mis;
-
- mp4fh = mp4ff_open_read(&mis.callback);
+ mp4fh = mp4ff_input_stream_open(&mis, mpd_decoder, input_stream);
if (!mp4fh) {
g_warning("Input does not appear to be a mp4 stream.\n");
return;
@@ -361,20 +368,13 @@ static struct tag *
mp4_stream_tag(struct input_stream *is)
{
struct tag *ret = NULL;
- struct mp4ff_input_stream mis = {
- .callback = mpd_mp4ff_callback,
- .decoder = NULL,
- .input_stream = is,
- };
- mp4ff_t *mp4fh;
+ struct mp4ff_input_stream mis;
int32_t track;
int32_t file_time;
int32_t scale;
int i;
- mis.callback.user_data = &mis;
-
- mp4fh = mp4ff_open_read(&mis.callback);
+ mp4ff_t *mp4fh = mp4ff_input_stream_open(&mis, NULL, is);
if (mp4fh == NULL)
return NULL;