summaryrefslogtreecommitdiffstats
path: root/demux/demux_mkv.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-06-21 18:06:14 +0200
committerwm4 <wm4@nowhere>2015-06-21 18:06:14 +0200
commitbe882175d85d8b1ea253dce11494a53264d04148 (patch)
tree9503dcaf5a1f0f858cdaca94f754b0908cba5a33 /demux/demux_mkv.c
parentc66be698cd8136933b80c4e0ef1698158c10316c (diff)
downloadmpv-be882175d85d8b1ea253dce11494a53264d04148.tar.bz2
mpv-be882175d85d8b1ea253dce11494a53264d04148.tar.xz
demux: merge extradata fields
MPlayer traditionally had completely separate sh_ structs for audio/video/subs, without a good way to share fields. This meant that fields shared across all these headers had to be duplicated. This commit deduplicates essentially the last remaining duplicated fields.
Diffstat (limited to 'demux/demux_mkv.c')
-rw-r--r--demux/demux_mkv.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index 74ea002162..4068b23807 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -1310,8 +1310,8 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track)
return 1;
}
- sh_v->extradata = talloc_memdup(sh_v, extradata, extradata_size);
- sh_v->extradata_len = extradata_size;
+ sh->extradata = talloc_memdup(sh_v, extradata, extradata_size);
+ sh->extradata_size = extradata_size;
if (!sh->codec) {
MP_WARN(demuxer, "Unknown/unsupported CodecID (%s) or missing/bad "
"CodecPrivate data (track %u).\n",
@@ -1574,8 +1574,8 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track)
if (sh_a->samplerate == 8000 && strcmp(codec, "ac3") == 0)
track->default_duration = 0;
- sh_a->codecdata = extradata;
- sh_a->codecdata_len = extradata_len;
+ sh->extradata = extradata;
+ sh->extradata_size = extradata_len;
return 0;
@@ -1629,9 +1629,8 @@ static int demux_mkv_open_sub(demuxer_t *demuxer, mkv_track_t *track)
track->private_data = buffer.start;
track->private_size = buffer.len;
}
- sh_s->extradata = talloc_size(sh, track->private_size);
- memcpy(sh_s->extradata, track->private_data, track->private_size);
- sh_s->extradata_len = track->private_size;
+ sh->extradata = track->private_data;
+ sh->extradata_size = track->private_size;
if (track->language && (strcmp(track->language, "und") != 0))
sh->lang = talloc_strdup(sh, track->language);
sh->title = talloc_strdup(sh, track->name);