matroskadec: use a temporary fourcc variable
This commit is contained in:
parent
f440f74205
commit
5fec3a2539
@ -1281,6 +1281,7 @@ static int matroska_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
|||||||
uint8_t *extradata = NULL;
|
uint8_t *extradata = NULL;
|
||||||
int extradata_size = 0;
|
int extradata_size = 0;
|
||||||
int extradata_offset = 0;
|
int extradata_offset = 0;
|
||||||
|
uint32_t fourcc = 0;
|
||||||
AVIOContext b;
|
AVIOContext b;
|
||||||
|
|
||||||
/* Apply some sanity checks. */
|
/* Apply some sanity checks. */
|
||||||
@ -1302,6 +1303,7 @@ static int matroska_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
|||||||
track->video.display_width = track->video.pixel_width;
|
track->video.display_width = track->video.pixel_width;
|
||||||
if (!track->video.display_height)
|
if (!track->video.display_height)
|
||||||
track->video.display_height = track->video.pixel_height;
|
track->video.display_height = track->video.pixel_height;
|
||||||
|
fourcc = track->video.fourcc;
|
||||||
} else if (track->type == MATROSKA_TRACK_TYPE_AUDIO) {
|
} else if (track->type == MATROSKA_TRACK_TYPE_AUDIO) {
|
||||||
if (!track->audio.out_samplerate)
|
if (!track->audio.out_samplerate)
|
||||||
track->audio.out_samplerate = track->audio.samplerate;
|
track->audio.out_samplerate = track->audio.samplerate;
|
||||||
@ -1361,8 +1363,8 @@ static int matroska_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
|||||||
&& track->codec_priv.size >= 40
|
&& track->codec_priv.size >= 40
|
||||||
&& track->codec_priv.data != NULL) {
|
&& track->codec_priv.data != NULL) {
|
||||||
track->ms_compat = 1;
|
track->ms_compat = 1;
|
||||||
track->video.fourcc = AV_RL32(track->codec_priv.data + 16);
|
fourcc = AV_RL32(track->codec_priv.data + 16);
|
||||||
codec_id = ff_codec_get_id(ff_codec_bmp_tags, track->video.fourcc);
|
codec_id = ff_codec_get_id(ff_codec_bmp_tags, fourcc);
|
||||||
extradata_offset = 40;
|
extradata_offset = 40;
|
||||||
} else if (!strcmp(track->codec_id, "A_MS/ACM")
|
} else if (!strcmp(track->codec_id, "A_MS/ACM")
|
||||||
&& track->codec_priv.size >= 14
|
&& track->codec_priv.size >= 14
|
||||||
@ -1378,8 +1380,8 @@ static int matroska_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
|||||||
} else if (!strcmp(track->codec_id, "V_QUICKTIME")
|
} else if (!strcmp(track->codec_id, "V_QUICKTIME")
|
||||||
&& (track->codec_priv.size >= 86)
|
&& (track->codec_priv.size >= 86)
|
||||||
&& (track->codec_priv.data != NULL)) {
|
&& (track->codec_priv.data != NULL)) {
|
||||||
track->video.fourcc = AV_RL32(track->codec_priv.data);
|
fourcc = AV_RL32(track->codec_priv.data);
|
||||||
codec_id=ff_codec_get_id(codec_movvideo_tags, track->video.fourcc);
|
codec_id = ff_codec_get_id(codec_movvideo_tags, fourcc);
|
||||||
} else if (codec_id == CODEC_ID_PCM_S16BE) {
|
} else if (codec_id == CODEC_ID_PCM_S16BE) {
|
||||||
switch (track->audio.bitdepth) {
|
switch (track->audio.bitdepth) {
|
||||||
case 8: codec_id = CODEC_ID_PCM_U8; break;
|
case 8: codec_id = CODEC_ID_PCM_U8; break;
|
||||||
@ -1500,7 +1502,7 @@ static int matroska_read_header(AVFormatContext *s, AVFormatParameters *ap)
|
|||||||
MatroskaTrackPlane *planes = track->operation.combine_planes.elem;
|
MatroskaTrackPlane *planes = track->operation.combine_planes.elem;
|
||||||
|
|
||||||
st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
|
st->codec->codec_type = AVMEDIA_TYPE_VIDEO;
|
||||||
st->codec->codec_tag = track->video.fourcc;
|
st->codec->codec_tag = fourcc;
|
||||||
st->codec->width = track->video.pixel_width;
|
st->codec->width = track->video.pixel_width;
|
||||||
st->codec->height = track->video.pixel_height;
|
st->codec->height = track->video.pixel_height;
|
||||||
av_reduce(&st->sample_aspect_ratio.num,
|
av_reduce(&st->sample_aspect_ratio.num,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user