| 
																	
																	
																		
																	
																	
																 | 
																@@ -2012,32 +2012,15 @@ fail: | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																static int add_metadata_from_side_data(AVCodecContext *avctx, AVFrame *frame) | 
																 | 
																 | 
																static int add_metadata_from_side_data(AVCodecContext *avctx, AVFrame *frame) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																    int size, ret = 0; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    int size; | 
															
														
														
													
														
															
																 | 
																 | 
																    const uint8_t *side_metadata; | 
																 | 
																 | 
																    const uint8_t *side_metadata; | 
															
														
														
													
														
															
																 | 
																 | 
																    const uint8_t *end; | 
																 | 
																 | 
																    const uint8_t *end; | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    AVDictionary **frame_md = avpriv_frame_get_metadatap(frame); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																    side_metadata = av_packet_get_side_data(avctx->internal->pkt, | 
																 | 
																 | 
																    side_metadata = av_packet_get_side_data(avctx->internal->pkt, | 
															
														
														
													
														
															
																 | 
																 | 
																                                            AV_PKT_DATA_STRINGS_METADATA, &size); | 
																 | 
																 | 
																                                            AV_PKT_DATA_STRINGS_METADATA, &size); | 
															
														
														
													
														
															
																 | 
																 | 
																    if (!side_metadata) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        goto end; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    end = side_metadata + size; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    if (size && end[-1]) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        return AVERROR_INVALIDDATA; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    while (side_metadata < end) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        const uint8_t *key = side_metadata; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        const uint8_t *val = side_metadata + strlen(key) + 1; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        int ret; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        if (val >= end) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            return AVERROR_INVALIDDATA; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        ret = av_dict_set(avpriv_frame_get_metadatap(frame), key, val, 0); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        if (ret < 0) | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																            break; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																        side_metadata = val + strlen(val) + 1; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    } | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																end: | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    return ret; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    return av_packet_unpack_dictionary(side_metadata, size, frame_md); | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture, | 
																 | 
																 | 
																int attribute_align_arg avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture, | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																	
																 | 
																
  |