mirror of
https://github.com/mpv-player/mpv
synced 2024-12-26 17:12:36 +00:00
demux_mkv: check if the video codec is an image
Add a simple helper to codec_tags to check if the codec name matches one of the images. If so, then we set still_image and image in the stream as true (slightly different semanatics).
This commit is contained in:
parent
be0a979a0b
commit
4709a94aec
@ -233,6 +233,17 @@ static const char *const type_to_codec[][2] = {
|
||||
{0}
|
||||
};
|
||||
|
||||
bool mp_codec_is_image(const char *codec)
|
||||
{
|
||||
if (codec) {
|
||||
for (int n = 0; type_to_codec[n][0]; n++) {
|
||||
if (strcasecmp(type_to_codec[n][1], codec) == 0)
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
const char *mp_map_type_to_image_codec(const char *type)
|
||||
{
|
||||
if (type) {
|
||||
|
@ -28,6 +28,7 @@ void mp_set_codec_from_tag(struct mp_codec_params *c);
|
||||
void mp_set_pcm_codec(struct mp_codec_params *c, bool sign, bool is_float,
|
||||
int bits, bool is_be);
|
||||
|
||||
bool mp_codec_is_image(const char *codec);
|
||||
const char *mp_map_type_to_image_codec(const char *type);
|
||||
const char *mp_map_mimetype_to_video_codec(const char *mimetype);
|
||||
|
||||
|
@ -1484,6 +1484,10 @@ static int demux_mkv_open_video(demuxer_t *demuxer, mkv_track_t *track)
|
||||
}
|
||||
|
||||
const char *codec = sh_v->codec ? sh_v->codec : "";
|
||||
if (mp_codec_is_image(codec)) {
|
||||
sh->still_image = true;
|
||||
sh->image = true;
|
||||
}
|
||||
if (!strcmp(codec, "mjpeg")) {
|
||||
sh_v->codec_tag = MKTAG('m', 'j', 'p', 'g');
|
||||
track->require_keyframes = true;
|
||||
|
Loading…
Reference in New Issue
Block a user