summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_mkv.c
diff options
context:
space:
mode:
authoreugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-01-12 01:12:39 +0000
committereugeni <eugeni@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-01-12 01:12:39 +0000
commit55b1facb6c67a30bf26563138ab5101713a04cb6 (patch)
treefb1dc65c82613f87bf97b3c921c6b58120696b9a /libmpdemux/demux_mkv.c
parentc0e1f353e08ec31da7e133d6773ea66e6dea0a22 (diff)
downloadmpv-55b1facb6c67a30bf26563138ab5101713a04cb6.tar.bz2
mpv-55b1facb6c67a30bf26563138ab5101713a04cb6.tar.xz
Instead of keeping attachments in mkv demuxer, use demuxer_add_attachment().
These attachments are passed to libass after demuxer is opened. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25686 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_mkv.c')
-rw-r--r--libmpdemux/demux_mkv.c45
1 files changed, 1 insertions, 44 deletions
diff --git a/libmpdemux/demux_mkv.c b/libmpdemux/demux_mkv.c
index 222257c585..5e802711c0 100644
--- a/libmpdemux/demux_mkv.c
+++ b/libmpdemux/demux_mkv.c
@@ -143,15 +143,6 @@ typedef struct mkv_index
uint64_t timecode, filepos;
} mkv_index_t;
-typedef struct mkv_attachment
-{
- char* name;
- char* mime;
- uint64_t uid;
- void* data;
- unsigned int data_size;
-} mkv_attachment_t;
-
typedef struct mkv_demuxer
{
off_t segment_start;
@@ -186,9 +177,6 @@ typedef struct mkv_demuxer
int last_aid;
int audio_tracks[MAX_A_STREAMS];
-
- mkv_attachment_t *attachments;
- int num_attachments;
} mkv_demuxer_t;
#define REALHEADER_SIZE 16
@@ -1457,7 +1445,6 @@ demux_mkv_read_attachments (demuxer_t *demuxer)
int i;
char* name = NULL;
char* mime = NULL;
- uint64_t uid = 0;
char* data = NULL;
int data_size = 0;
@@ -1466,9 +1453,6 @@ demux_mkv_read_attachments (demuxer_t *demuxer)
mp_msg (MSGT_DEMUX, MSGL_V, "[mkv] | + an attachment...\n");
- grow_array(&mkv_d->attachments, mkv_d->num_attachments,
- sizeof(*mkv_d->attachments));
-
while (len > 0)
{
uint64_t l;
@@ -1492,10 +1476,6 @@ demux_mkv_read_attachments (demuxer_t *demuxer)
mime);
break;
- case MATROSKA_ID_FILEUID:
- uid = ebml_read_uint (s, &l);
- break;
-
case MATROSKA_ID_FILEDATA:
{
int x;
@@ -1521,22 +1501,10 @@ demux_mkv_read_attachments (demuxer_t *demuxer)
len -= l + il;
}
- mkv_d->attachments[mkv_d->num_attachments].name = name;
- mkv_d->attachments[mkv_d->num_attachments].mime = mime;
- mkv_d->attachments[mkv_d->num_attachments].uid = uid;
- mkv_d->attachments[mkv_d->num_attachments].data = data;
- mkv_d->attachments[mkv_d->num_attachments].data_size = data_size;
- mkv_d->num_attachments ++;
+ demuxer_add_attachment(demuxer, name, mime, data, data_size);
mp_msg(MSGT_DEMUX, MSGL_V,
"[mkv] Attachment: %s, %s, %u bytes\n",
name, mime, data_size);
-#ifdef USE_ASS
- if (ass_library &&
- extract_embedded_fonts && name && data && data_size &&
- mime && (strcmp(mime, "application/x-truetype-font") == 0 ||
- strcmp(mime, "application/x-font") == 0))
- ass_add_font(ass_library, name, data, data_size);
-#endif
break;
}
@@ -2596,17 +2564,6 @@ demux_close_mkv (demuxer_t *demuxer)
free (mkv_d->parsed_cues);
if (mkv_d->parsed_seekhead)
free (mkv_d->parsed_seekhead);
- if (mkv_d->attachments) {
- for (i = 0; i < mkv_d->num_attachments; ++i) {
- if (mkv_d->attachments[i].name)
- free (mkv_d->attachments[i].name);
- if (mkv_d->attachments[i].mime)
- free (mkv_d->attachments[i].mime);
- if (mkv_d->attachments[i].data)
- free (mkv_d->attachments[i].data);
- }
- free (mkv_d->attachments);
- }
free (mkv_d);
}
}