summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--demux/demux_mkv.c119
1 files changed, 58 insertions, 61 deletions
diff --git a/demux/demux_mkv.c b/demux/demux_mkv.c
index c54b2d43ba..5eaa7bbb07 100644
--- a/demux/demux_mkv.c
+++ b/demux/demux_mkv.c
@@ -404,7 +404,7 @@ static int demux_mkv_read_info(demuxer_t *demuxer)
stream_t *s = demuxer->stream;
int res = 0;
- MP_VERBOSE(demuxer, "|+ segment information...\n");
+ MP_DBG(demuxer, "|+ segment information...\n");
mkv_d->tc_scale = 1000000;
mkv_d->duration = 0;
@@ -414,12 +414,12 @@ static int demux_mkv_read_info(demuxer_t *demuxer)
if (ebml_read_element(s, &parse_ctx, &info, &ebml_info_desc) < 0)
return -1;
if (info.muxing_app)
- MP_VERBOSE(demuxer, "| + muxing app: %s\n", info.muxing_app);
+ MP_DBG(demuxer, "| + muxing app: %s\n", info.muxing_app);
if (info.writing_app)
- MP_VERBOSE(demuxer, "| + writing app: %s\n", info.writing_app);
+ MP_DBG(demuxer, "| + writing app: %s\n", info.writing_app);
if (info.n_timecode_scale) {
mkv_d->tc_scale = info.timecode_scale;
- MP_VERBOSE(demuxer, "| + timecode scale: %"PRId64"\n", mkv_d->tc_scale);
+ MP_DBG(demuxer, "| + timecode scale: %"PRId64"\n", mkv_d->tc_scale);
if (mkv_d->tc_scale < 1 || mkv_d->tc_scale > INT_MAX) {
res = -1;
goto out;
@@ -427,7 +427,7 @@ static int demux_mkv_read_info(demuxer_t *demuxer)
}
if (info.n_duration) {
mkv_d->duration = info.duration * mkv_d->tc_scale / 1e9;
- MP_VERBOSE(demuxer, "| + duration: %.3fs\n",
+ MP_DBG(demuxer, "| + duration: %.3fs\n",
mkv_d->duration);
demuxer->duration = mkv_d->duration;
}
@@ -441,11 +441,11 @@ static int demux_mkv_read_info(demuxer_t *demuxer)
} else {
memcpy(demuxer->matroska_data.uid.segment, info.segment_uid.start,
len);
- MP_VERBOSE(demuxer, "| + segment uid");
+ MP_DBG(demuxer, "| + segment uid");
for (size_t i = 0; i < len; i++)
- MP_VERBOSE(demuxer, " %02x",
+ MP_DBG(demuxer, " %02x",
demuxer->matroska_data.uid.segment[i]);
- MP_VERBOSE(demuxer, "\n");
+ MP_DBG(demuxer, "\n");
}
}
if (demuxer->params && demuxer->params->matroska_wanted_uids) {
@@ -539,23 +539,23 @@ static void parse_trackaudio(struct demuxer *demuxer, struct mkv_track *track,
{
if (audio->n_sampling_frequency) {
track->a_sfreq = audio->sampling_frequency;
- MP_VERBOSE(demuxer, "| + Sampling frequency: %f\n", track->a_sfreq);
+ MP_DBG(demuxer, "| + Sampling frequency: %f\n", track->a_sfreq);
} else {
track->a_sfreq = 8000;
}
if (audio->n_output_sampling_frequency) {
track->a_osfreq = audio->output_sampling_frequency;
- MP_VERBOSE(demuxer, "| + Output sampling frequency: %f\n", track->a_osfreq);
+ MP_DBG(demuxer, "| + Output sampling frequency: %f\n", track->a_osfreq);
} else {
track->a_osfreq = track->a_sfreq;
}
if (audio->n_bit_depth) {
track->a_bps = audio->bit_depth;
- MP_VERBOSE(demuxer, "| + Bit depth: %"PRIu32"\n", track->a_bps);
+ MP_DBG(demuxer, "| + Bit depth: %"PRIu32"\n", track->a_bps);
}
if (audio->n_channels) {
track->a_channels = audio->channels;
- MP_VERBOSE(demuxer, "| + Channels: %"PRIu32"\n", track->a_channels);
+ MP_DBG(demuxer, "| + Channels: %"PRIu32"\n", track->a_channels);
} else {
track->a_channels = 1;
}
@@ -569,27 +569,27 @@ static void parse_trackcolour(struct demuxer *demuxer, struct mkv_track *track,
// so we can just re-use our avcol_ conversion functions.
if (colour->n_matrix_coefficients) {
track->color.space = avcol_spc_to_mp_csp(colour->matrix_coefficients);
- MP_VERBOSE(demuxer, "| + Matrix: %s\n",
+ MP_DBG(demuxer, "| + Matrix: %s\n",
m_opt_choice_str(mp_csp_names, track->color.space));
}
if (colour->n_primaries) {
track->color.primaries = avcol_pri_to_mp_csp_prim(colour->primaries);
- MP_VERBOSE(demuxer, "| + Primaries: %s\n",
+ MP_DBG(demuxer, "| + Primaries: %s\n",
m_opt_choice_str(mp_csp_prim_names, track->color.primaries));
}
if (colour->n_transfer_characteristics) {
track->color.gamma = avcol_trc_to_mp_csp_trc(colour->transfer_characteristics);
- MP_VERBOSE(demuxer, "| + Gamma: %s\n",
+ MP_DBG(demuxer, "| + Gamma: %s\n",
m_opt_choice_str(mp_csp_trc_names, track->color.gamma));
}
if (colour->n_range) {
track->color.levels = avcol_range_to_mp_csp_levels(colour->range);
- MP_VERBOSE(demuxer, "| + Levels: %s\n",
+ MP_DBG(demuxer, "| + Levels: %s\n",
m_opt_choice_str(mp_csp_levels_names, track->color.levels));
}
if (colour->n_max_cll) {
track->color.sig_peak = colour->max_cll / MP_REF_WHITE;
- MP_VERBOSE(demuxer, "| + MaxCLL: %"PRIu64"\n", colour->max_cll);
+ MP_DBG(demuxer, "| + MaxCLL: %"PRIu64"\n", colour->max_cll);
}
// if MaxCLL is unavailable, try falling back to the mastering metadata
if (!track->color.sig_peak && colour->n_mastering_metadata) {
@@ -597,7 +597,7 @@ static void parse_trackcolour(struct demuxer *demuxer, struct mkv_track *track,
if (mastering->n_luminance_max) {
track->color.sig_peak = mastering->luminance_max / MP_REF_WHITE;
- MP_VERBOSE(demuxer, "| + HDR peak: %f\n", track->color.sig_peak);
+ MP_DBG(demuxer, "| + HDR peak: %f\n", track->color.sig_peak);
}
}
}
@@ -606,39 +606,36 @@ static void parse_trackvideo(struct demuxer *demuxer, struct mkv_track *track,
struct ebml_video *video)
{
if (video->n_frame_rate) {
- MP_VERBOSE(demuxer, "| + Frame rate: %f (ignored)\n", video->frame_rate);
+ MP_DBG(demuxer, "| + Frame rate: %f (ignored)\n", video->frame_rate);
}
if (video->n_display_width) {
track->v_dwidth = video->display_width;
track->v_dwidth_set = true;
- MP_VERBOSE(demuxer, "| + Display width: %"PRIu32"\n",
- track->v_dwidth);
+ MP_DBG(demuxer, "| + Display width: %"PRIu32"\n", track->v_dwidth);
}
if (video->n_display_height) {
track->v_dheight = video->display_height;
track->v_dheight_set = true;
- MP_VERBOSE(demuxer, "| + Display height: %"PRIu32"\n",
- track->v_dheight);
+ MP_DBG(demuxer, "| + Display height: %"PRIu32"\n", track->v_dheight);
}
if (video->n_pixel_width) {
track->v_width = video->pixel_width;
- MP_VERBOSE(demuxer, "| + Pixel width: %"PRIu32"\n", track->v_width);
+ MP_DBG(demuxer, "| + Pixel width: %"PRIu32"\n", track->v_width);
}
if (video->n_pixel_height) {
track->v_height = video->pixel_height;
- MP_VERBOSE(demuxer, "| + Pixel height: %"PRIu32"\n", track->v_height);
+ MP_DBG(demuxer, "| + Pixel height: %"PRIu32"\n", track->v_height);
}
if (video->n_colour_space && video->colour_space.len == 4) {
uint8_t *d = (uint8_t *)&video->colour_space.start[0];
track->colorspace = d[0] | (d[1] << 8) | (d[2] << 16) | (d[3] << 24);
- MP_VERBOSE(demuxer, "| + Colorspace: %#"PRIx32"\n",
- track->colorspace);
+ MP_DBG(demuxer, "| + Colorspace: %#"PRIx32"\n", track->colorspace);
}
if (video->n_stereo_mode) {
const char *name = MP_STEREO3D_NAME(video->stereo_mode);
if (name) {
track->stereo_mode = video->stereo_mode;
- MP_VERBOSE(demuxer, "| + StereoMode: %s\n", name);
+ MP_DBG(demuxer, "| + StereoMode: %s\n", name);
} else {
MP_WARN(demuxer, "Unknown StereoMode: %"PRIu64"\n",
video->stereo_mode);
@@ -668,7 +665,7 @@ static void parse_trackentry(struct demuxer *demuxer,
track->tnum = entry->track_number;
if (track->tnum) {
- MP_VERBOSE(demuxer, "| + Track number: %d\n", track->tnum);
+ MP_DBG(demuxer, "| + Track number: %d\n", track->tnum);
} else {
MP_ERR(demuxer, "Missing track number!\n");
}
@@ -676,39 +673,39 @@ static void parse_trackentry(struct demuxer *demuxer,
if (entry->name) {
track->name = talloc_strdup(track, entry->name);
- MP_VERBOSE(demuxer, "| + Name: %s\n", track->name);
+ MP_DBG(demuxer, "| + Name: %s\n", track->name);
}
track->type = entry->track_type;
- MP_VERBOSE(demuxer, "| + Track type: ");
+ MP_DBG(demuxer, "| + Track type: ");
switch (track->type) {
case MATROSKA_TRACK_AUDIO:
- MP_VERBOSE(demuxer, "Audio\n");
+ MP_DBG(demuxer, "Audio\n");
break;
case MATROSKA_TRACK_VIDEO:
- MP_VERBOSE(demuxer, "Video\n");
+ MP_DBG(demuxer, "Video\n");
break;
case MATROSKA_TRACK_SUBTITLE:
- MP_VERBOSE(demuxer, "Subtitle\n");
+ MP_DBG(demuxer, "Subtitle\n");
break;
default:
- MP_VERBOSE(demuxer, "unknown\n");
+ MP_DBG(demuxer, "unknown\n");
break;
}
if (entry->n_audio) {
- MP_VERBOSE(demuxer, "| + Audio track\n");
+ MP_DBG(demuxer, "| + Audio track\n");
parse_trackaudio(demuxer, track, &entry->audio);
}
if (entry->n_video) {
- MP_VERBOSE(demuxer, "| + Video track\n");
+ MP_DBG(demuxer, "| + Video track\n");
parse_trackvideo(demuxer, track, &entry->video);
}
if (entry->codec_id) {
track->codec_id = talloc_strdup(track, entry->codec_id);
- MP_VERBOSE(demuxer, "| + Codec ID: %s\n", track->codec_id);
+ MP_DBG(demuxer, "| + Codec ID: %s\n", track->codec_id);
} else {
MP_ERR(demuxer, "Missing codec ID!\n");
track->codec_id = "";
@@ -719,36 +716,36 @@ static void parse_trackentry(struct demuxer *demuxer,
track->private_data = talloc_size(track, len + AV_LZO_INPUT_PADDING);
memcpy(track->private_data, entry->codec_private.start, len);
track->private_size = len;
- MP_VERBOSE(demuxer, "| + CodecPrivate, length %u\n", track->private_size);
+ MP_DBG(demuxer, "| + CodecPrivate, length %u\n", track->private_size);
}
if (entry->language) {
track->language = talloc_strdup(track, entry->language);
- MP_VERBOSE(demuxer, "| + Language: %s\n", track->language);
+ MP_DBG(demuxer, "| + Language: %s\n", track->language);
} else {
track->language = talloc_strdup(track, "eng");
}
if (entry->n_flag_default) {
track->default_track = entry->flag_default;
- MP_VERBOSE(demuxer, "| + Default flag: %d\n", track->default_track);
+ MP_DBG(demuxer, "| + Default flag: %d\n", track->default_track);
} else {
track->default_track = 1;
}
if (entry->n_flag_forced) {
track->forced_track = entry->flag_forced;
- MP_VERBOSE(demuxer, "| + Forced flag: %d\n", track->forced_track);
+ MP_DBG(demuxer, "| + Forced flag: %d\n", track->forced_track);
}
if (entry->n_default_duration) {
track->default_duration = entry->default_duration / 1e9;
if (entry->default_duration == 0) {
- MP_VERBOSE(demuxer, "| + Default duration: 0");
+ MP_DBG(demuxer, "| + Default duration: 0");
} else {
track->v_frate = 1e9 / entry->default_duration;
- MP_VERBOSE(demuxer, "| + Default duration: %.3fms ( = %.3f fps)\n",
- entry->default_duration / 1000000.0, track->v_frate);
+ MP_DBG(demuxer, "| + Default duration: %.3fms ( = %.3f fps)\n",
+ entry->default_duration / 1000000.0, track->v_frate);
}
}
@@ -766,7 +763,7 @@ static int demux_mkv_read_tracks(demuxer_t *demuxer)
mkv_demuxer_t *mkv_d = (mkv_demuxer_t *) demuxer->priv;
stream_t *s = demuxer->stream;
- MP_VERBOSE(demuxer, "|+ segment tracks...\n");
+ MP_DBG(demuxer, "|+ segment tracks...\n");
struct ebml_tracks tracks = {0};
struct ebml_parse_ctx parse_ctx = {demuxer->log};
@@ -776,7 +773,7 @@ static int demux_mkv_read_tracks(demuxer_t *demuxer)
mkv_d->tracks = talloc_zero_array(mkv_d, struct mkv_track*,
tracks.n_track_entry);
for (int i = 0; i < tracks.n_track_entry; i++) {
- MP_VERBOSE(demuxer, "| + a track...\n");
+ MP_DBG(demuxer, "| + a track...\n");
parse_trackentry(demuxer, &tracks.track_entry[i]);
}
talloc_free(parse_ctx.talloc_ctx);
@@ -895,7 +892,7 @@ static int demux_mkv_read_chapters(struct demuxer *demuxer)
if (wanted_edition_uid)
wanted_edition = -1;
- MP_VERBOSE(demuxer, "Parsing chapters...\n");
+ MP_DBG(demuxer, "Parsing chapters...\n");
struct ebml_chapters file_chapters = {0};
struct ebml_parse_ctx parse_ctx = {demuxer->log};
if (ebml_read_element(s, &parse_ctx, &file_chapters,
@@ -1001,15 +998,15 @@ static int demux_mkv_read_chapters(struct demuxer *demuxer)
chapter.uid.edition = ca->chapter_segment_edition_uid;
else
chapter.uid.edition = 0;
- MP_VERBOSE(demuxer, "Chapter segment uid ");
+ MP_DBG(demuxer, "Chapter segment uid ");
for (int n = 0; n < len; n++)
- MP_VERBOSE(demuxer, "%02x ",
+ MP_DBG(demuxer, "%02x ",
chapter.uid.segment[n]);
- MP_VERBOSE(demuxer, "\n");
+ MP_DBG(demuxer, "\n");
}
}
- MP_VERBOSE(demuxer, "Chapter %u from %02d:%02d:%02d.%03d "
+ MP_DBG(demuxer, "Chapter %u from %02d:%02d:%02d.%03d "
"to %02d:%02d:%02d.%03d, %s\n", i,
(int) (chapter.start / 60 / 60 / 1000000000),
(int) ((chapter.start / 60 / 1000000000) % 60),
@@ -1116,7 +1113,7 @@ static int demux_mkv_read_attachments(demuxer_t *demuxer)
{
stream_t *s = demuxer->stream;
- MP_VERBOSE(demuxer, "Parsing attachments...\n");
+ MP_DBG(demuxer, "Parsing attachments...\n");
struct ebml_attachments attachments = {0};
struct ebml_parse_ctx parse_ctx = {demuxer->log};
@@ -1135,8 +1132,8 @@ static int demux_mkv_read_attachments(demuxer_t *demuxer)
char *mime = attachment->file_mime_type;
demuxer_add_attachment(demuxer, name, mime, attachment->file_data.start,
attachment->file_data.len);
- MP_VERBOSE(demuxer, "Attachment: %s, %s, %zu bytes\n",
- name, mime, attachment->file_data.len);
+ MP_DBG(demuxer, "Attachment: %s, %s, %zu bytes\n",
+ name, mime, attachment->file_data.len);
}
talloc_free(parse_ctx.talloc_ctx);
@@ -1191,7 +1188,7 @@ static int demux_mkv_read_seekhead(demuxer_t *demuxer)
struct ebml_seek_head seekhead = {0};
struct ebml_parse_ctx parse_ctx = {demuxer->log};
- MP_VERBOSE(demuxer, "Parsing seek head...\n");
+ MP_DBG(demuxer, "Parsing seek head...\n");
if (ebml_read_element(s, &parse_ctx, &seekhead, &ebml_seek_head_desc) < 0) {
res = -1;
goto out;
@@ -1594,7 +1591,7 @@ static int demux_mkv_open_audio(demuxer_t *demuxer, mkv_track_t *track)
// The private_data contains a WAVEFORMATEX struct
if (track->private_size < 18)
goto error;
- MP_VERBOSE(demuxer, "track with MS compat audio.\n");
+ MP_DBG(demuxer, "track with MS compat audio.\n");
unsigned char *h = track->private_data;
sh_a->codec_tag = AV_RL16(h + 0); // wFormatTag
if (track->a_channels == 0)
@@ -1962,13 +1959,13 @@ static int read_mkv_segment_header(demuxer_t *demuxer, int64_t *segment_end)
MP_VERBOSE(demuxer, "segment not found\n");
return 0;
}
- MP_VERBOSE(demuxer, "+ a segment...\n");
+ MP_DBG(demuxer, "+ a segment...\n");
uint64_t len = ebml_read_length(s);
*segment_end = (len == EBML_UINT_INVALID) ? 0 : stream_tell(s) + len;
if (num_skip <= 0)
return 1;
num_skip--;
- MP_VERBOSE(demuxer, " (skipping)\n");
+ MP_DBG(demuxer, " (skipping)\n");
if (*segment_end <= 0)
break;
if (*segment_end >= stream_get_size(s))
@@ -2011,7 +2008,7 @@ static int demux_mkv_open(demuxer_t *demuxer, enum demux_check check)
if (!read_ebml_header(demuxer))
return -1;
- MP_VERBOSE(demuxer, "Found the head...\n");
+ MP_DBG(demuxer, "Found the head...\n");
if (!read_mkv_segment_header(demuxer, &end_pos))
return -1;
@@ -2038,7 +2035,7 @@ static int demux_mkv_open(demuxer_t *demuxer, enum demux_check check)
break;
}
if (id == MATROSKA_ID_CLUSTER) {
- MP_VERBOSE(demuxer, "|+ found cluster\n");
+ MP_DBG(demuxer, "|+ found cluster\n");
mkv_d->cluster_start = start_pos;
break;
}