diff options
author | wm4 <wm4@nowhere> | 2015-06-26 23:16:25 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2015-06-26 23:16:25 +0200 |
commit | d9b19390ad75bcf5f2b0d5ce5d1f034bd9b6ae15 (patch) | |
tree | 070e1a28e732a330eda9eaf4869c0421c3b8253c /demux | |
parent | 8a6028330975cb12ea12e833dd4d56187b6b8cc4 (diff) | |
download | mpv-d9b19390ad75bcf5f2b0d5ce5d1f034bd9b6ae15.tar.bz2 mpv-d9b19390ad75bcf5f2b0d5ce5d1f034bd9b6ae15.tar.xz |
demux_mkv: use arrays for codec lookup tables
No need to define extra types.
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux_mkv.c | 29 |
1 files changed, 11 insertions, 18 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c index 0f355ddb66..d8e93ef473 100644 --- a/demux/demux_mkv.c +++ b/demux/demux_mkv.c @@ -1204,12 +1204,7 @@ static void display_create_tracks(demuxer_t *demuxer) } } -typedef struct { - char *id; - const char *codec; -} videocodec_info_t; - -static const videocodec_info_t vinfo[] = { +static const char *const mkv_video_tags[][2] = { {"V_MJPEG", "mjpeg"}, {"V_MPEG1", "mpeg1video"}, {"V_MPEG2", "mpeg2video"}, @@ -1297,11 +1292,12 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track) extradata_size = track->private_size; } } else { - const videocodec_info_t *vi = vinfo; - while (vi->id && strcmp(vi->id, track->codec_id)) - vi++; - if (vi->codec) - sh->codec = vi->codec; + for (int i = 0; mkv_video_tags[i][0]; i++) { + if (!strcmp(mkv_video_tags[i][0], track->codec_id)) { + sh->codec = mkv_video_tags[i][1]; + break; + } + } if (track->private_data && track->private_size > 0) { extradata = track->private_data; extradata_size = track->private_size; @@ -1342,10 +1338,7 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track) return 0; } -static const struct mkv_audio_tag { - const char *id; - const char *codec; -} mkv_audio_tags[] = { +static const char *const mkv_audio_tags[][2] = { { "A_MPEG/L2", "mp3" }, { "A_MPEG/L3", "mp3" }, { "A_AC3", "ac3" }, @@ -1384,9 +1377,9 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track) sh_a->bits_per_coded_sample = track->a_bps ? track->a_bps : 16; sh_a->samplerate = (uint32_t) track->a_osfreq; - for (int i = 0; mkv_audio_tags[i].id; i++) { - if (!strcmp(track->codec_id, mkv_audio_tags[i].id)) { - sh->codec = mkv_audio_tags[i].codec; + for (int i = 0; mkv_audio_tags[i][0]; i++) { + if (!strcmp(mkv_audio_tags[i][0], track->codec_id)) { + sh->codec = mkv_audio_tags[i][1]; break; } } |