diff options
author | wm4 <wm4@nowhere> | 2015-06-21 18:06:14 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-06-21 18:06:14 +0200 |
commit | be882175d85d8b1ea253dce11494a53264d04148 (patch) | |
tree | 9503dcaf5a1f0f858cdaca94f754b0908cba5a33 /demux/demux_mkv.c | |
parent | c66be698cd8136933b80c4e0ef1698158c10316c (diff) | |
download | mpv-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.c | 13 |
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); |