Merge commit '3a0576702825423abecb32627c530dbc4c0f73bc'

* commit '3a0576702825423abecb32627c530dbc4c0f73bc':
  h264: store current_sps_id inside the current sps

Conflicts:
	libavcodec/h264.c
	libavcodec/h264_ps.c

The current_sps_id is not removed as it used in security related code.

Merged-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
Michael Niedermayer 2014-02-14 13:58:02 +01:00
commit 99b12357f4
3 changed files with 5 additions and 2 deletions

View File

@ -3523,10 +3523,11 @@ static int decode_slice_header(H264Context *h, H264Context *h0)
return AVERROR_INVALIDDATA;
}
if (h->pps.sps_id != h->current_sps_id ||
if (h->pps.sps_id != h->sps.sps_id ||
h->pps.sps_id != h->current_sps_id ||
h0->sps_buffers[h->pps.sps_id]->new) {
h->sps = *h0->sps_buffers[h->pps.sps_id];
h->sps = *h0->sps_buffers[h->pps.sps_id];
if (h->mb_width != h->sps.mb_width ||
h->mb_height != h->sps.mb_height * (2 - h->sps.frame_mbs_only_flag) ||

View File

@ -163,6 +163,7 @@ typedef enum {
* Sequence parameter set
*/
typedef struct SPS {
unsigned int sps_id;
int profile_idc;
int level_idc;
int chroma_format_idc;

View File

@ -347,6 +347,7 @@ int ff_h264_decode_seq_parameter_set(H264Context *h)
if (!sps)
return AVERROR(ENOMEM);
sps->sps_id = sps_id;
sps->time_offset_length = 24;
sps->profile_idc = profile_idc;
sps->constraint_set_flags = constraint_set_flags;