Merge commit '0372e73f917e72c40b09270f771046fc142be4a7'
* commit '0372e73f917e72c40b09270f771046fc142be4a7': intrax8: Check and propagate errors from ff_intrax8_common_init Merged-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
This commit is contained in:
		
						commit
						f64b53f2bf
					
				| @ -46,7 +46,7 @@ static VLC j_ac_vlc[2][2][8];  // [quant < 13], [intra / inter], [select] | ||||
| static VLC j_dc_vlc[2][8];     // [quant], [select]
 | ||||
| static VLC j_orient_vlc[2][4]; // [quant], [select]
 | ||||
| 
 | ||||
| static av_cold void x8_vlc_init(void) | ||||
| static av_cold int x8_vlc_init(void) | ||||
| { | ||||
|     int i; | ||||
|     int offset = 0; | ||||
| @ -115,9 +115,13 @@ static av_cold void x8_vlc_init(void) | ||||
|         init_or_vlc(j_orient_vlc[1][i], x8_orient_lowquant_table[i][0]); | ||||
| #undef init_or_vlc | ||||
| 
 | ||||
|     if (offset != sizeof(table)/sizeof(VLC_TYPE)/2) | ||||
|     if (offset != sizeof(table) / sizeof(VLC_TYPE) / 2) { | ||||
|         av_log(NULL, AV_LOG_ERROR, "table size %zd does not match needed %i\n", | ||||
|                sizeof(table) / sizeof(VLC_TYPE) / 2, offset); | ||||
|         return AVERROR_INVALIDDATA; | ||||
|     } | ||||
| 
 | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| static void x8_reset_vlc_tables(IntraX8Context *w) | ||||
| @ -738,14 +742,18 @@ static void x8_init_block_index(MpegEncContext *s) | ||||
|     s->dest[2] += (s->mb_y & (~1)) * uvlinesize << 2; | ||||
| } | ||||
| 
 | ||||
| av_cold void ff_intrax8_common_init(IntraX8Context *w, MpegEncContext *const s) | ||||
| av_cold int ff_intrax8_common_init(IntraX8Context *w, MpegEncContext *const s) | ||||
| { | ||||
|     int ret = x8_vlc_init(); | ||||
|     if (ret < 0) | ||||
|         return ret; | ||||
| 
 | ||||
|     w->s = s; | ||||
|     x8_vlc_init(); | ||||
|     av_assert0(s->mb_width > 0); | ||||
| 
 | ||||
|     //two rows, 2 blocks per cannon mb
 | ||||
|     w->prediction_table = av_mallocz(s->mb_width * 2 * 2); | ||||
|     if (!w->prediction_table) | ||||
|         return AVERROR(ENOMEM); | ||||
| 
 | ||||
|     ff_wmv2dsp_init(&w->wdsp); | ||||
| 
 | ||||
| @ -760,6 +768,8 @@ av_cold void ff_intrax8_common_init(IntraX8Context *w, MpegEncContext *const s) | ||||
|                       ff_wmv1_scantable[3]); | ||||
| 
 | ||||
|     ff_intrax8dsp_init(&w->dsp); | ||||
| 
 | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| av_cold void ff_intrax8_common_end(IntraX8Context *w) | ||||
|  | ||||
| @ -64,8 +64,9 @@ typedef struct IntraX8Context { | ||||
|  * Requires valid MpegEncContext with valid s->mb_width before calling. | ||||
|  * @param w pointer to IntraX8Context | ||||
|  * @param s pointer to MpegEncContext of the parent codec | ||||
|  * @return 0 on success, a negative AVERROR value on error | ||||
|  */ | ||||
| void ff_intrax8_common_init(IntraX8Context *w, MpegEncContext *const s); | ||||
| int ff_intrax8_common_init(IntraX8Context *w, MpegEncContext *const s); | ||||
| 
 | ||||
| /**
 | ||||
|  * Destroy IntraX8 frame structure. | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user