| 
																	
																	
																		
																	
																	
																 | 
																@@ -250,9 +250,8 @@ static int pcm_decode_frame(AVCodecContext *avctx, | 
															
														
														
													
														
															
																 | 
																 | 
																    const uint8_t *src = avpkt->data; | 
																 | 
																 | 
																    const uint8_t *src = avpkt->data; | 
															
														
														
													
														
															
																 | 
																 | 
																    int buf_size = avpkt->size; | 
																 | 
																 | 
																    int buf_size = avpkt->size; | 
															
														
														
													
														
															
																 | 
																 | 
																    PCMDecode *s = avctx->priv_data; | 
																 | 
																 | 
																    PCMDecode *s = avctx->priv_data; | 
															
														
														
													
														
															
																 | 
																 | 
																    int sample_size, c, n, i; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    int sample_size, c, n; | 
															
														
														
													
														
															
																 | 
																 | 
																    uint8_t *samples; | 
																 | 
																 | 
																    uint8_t *samples; | 
															
														
														
													
														
															
																 | 
																 | 
																    const uint8_t *src8, *src2[MAX_CHANNELS]; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																    int32_t *dst_int32_t; | 
																 | 
																 | 
																    int32_t *dst_int32_t; | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																    samples = data; | 
																 | 
																 | 
																    samples = data; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -320,6 +319,8 @@ static int pcm_decode_frame(AVCodecContext *avctx, | 
															
														
														
													
														
															
																 | 
																 | 
																        } | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																        break; | 
																 | 
																 | 
																        break; | 
															
														
														
													
														
															
																 | 
																 | 
																    case CODEC_ID_PCM_S16LE_PLANAR: | 
																 | 
																 | 
																    case CODEC_ID_PCM_S16LE_PLANAR: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        const uint8_t *src2[MAX_CHANNELS]; | 
															
														
														
													
														
															
																 | 
																 | 
																        n /= avctx->channels; | 
																 | 
																 | 
																        n /= avctx->channels; | 
															
														
														
													
														
															
																 | 
																 | 
																        for(c=0;c<avctx->channels;c++) | 
																 | 
																 | 
																        for(c=0;c<avctx->channels;c++) | 
															
														
														
													
														
															
																 | 
																 | 
																            src2[c] = &src[c*n*2]; | 
																 | 
																 | 
																            src2[c] = &src[c*n*2]; | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																	
																 | 
																@@ -329,6 +330,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, | 
															
														
														
													
														
															
																 | 
																 | 
																                samples += 2; | 
																 | 
																 | 
																                samples += 2; | 
															
														
														
													
														
															
																 | 
																 | 
																            } | 
																 | 
																 | 
																            } | 
															
														
														
													
														
															
																 | 
																 | 
																        break; | 
																 | 
																 | 
																        break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																    case CODEC_ID_PCM_U16LE: | 
																 | 
																 | 
																    case CODEC_ID_PCM_U16LE: | 
															
														
														
													
														
															
																 | 
																 | 
																        DECODE(16, le16, src, samples, n, 0, 0x8000) | 
																 | 
																 | 
																        DECODE(16, le16, src, samples, n, 0, 0x8000) | 
															
														
														
													
														
															
																 | 
																 | 
																        break; | 
																 | 
																 | 
																        break; | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -391,6 +393,8 @@ static int pcm_decode_frame(AVCodecContext *avctx, | 
															
														
														
													
														
															
																 | 
																 | 
																        } | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																        break; | 
																 | 
																 | 
																        break; | 
															
														
														
													
														
															
																 | 
																 | 
																    case CODEC_ID_PCM_DVD: | 
																 | 
																 | 
																    case CODEC_ID_PCM_DVD: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        const uint8_t *src8; | 
															
														
														
													
														
															
																 | 
																 | 
																        dst_int32_t = data; | 
																 | 
																 | 
																        dst_int32_t = data; | 
															
														
														
													
														
															
																 | 
																 | 
																        n /= avctx->channels; | 
																 | 
																 | 
																        n /= avctx->channels; | 
															
														
														
													
														
															
																 | 
																 | 
																        switch (avctx->bits_per_coded_sample) { | 
																 | 
																 | 
																        switch (avctx->bits_per_coded_sample) { | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																		
																	
																	
																 | 
																@@ -419,7 +423,11 @@ static int pcm_decode_frame(AVCodecContext *avctx, | 
															
														
														
													
														
															
																 | 
																 | 
																        } | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																        samples = (uint8_t *) dst_int32_t; | 
																 | 
																 | 
																        samples = (uint8_t *) dst_int32_t; | 
															
														
														
													
														
															
																 | 
																 | 
																        break; | 
																 | 
																 | 
																        break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																    case CODEC_ID_PCM_LXF: | 
																 | 
																 | 
																    case CODEC_ID_PCM_LXF: | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        int i; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        const uint8_t *src8; | 
															
														
														
													
														
															
																 | 
																 | 
																        dst_int32_t = data; | 
																 | 
																 | 
																        dst_int32_t = data; | 
															
														
														
													
														
															
																 | 
																 | 
																        n /= avctx->channels; | 
																 | 
																 | 
																        n /= avctx->channels; | 
															
														
														
													
														
															
																 | 
																 | 
																        //unpack and de-planerize | 
																 | 
																 | 
																        //unpack and de-planerize | 
															
														
														
													
												
													
														
															
																| 
																	
																	
																	
																		
																	
																 | 
																@@ -438,6 +446,7 @@ static int pcm_decode_frame(AVCodecContext *avctx, | 
															
														
														
													
														
															
																 | 
																 | 
																        } | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																        samples = (uint8_t *) dst_int32_t; | 
																 | 
																 | 
																        samples = (uint8_t *) dst_int32_t; | 
															
														
														
													
														
															
																 | 
																 | 
																        break; | 
																 | 
																 | 
																        break; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																    default: | 
																 | 
																 | 
																    default: | 
															
														
														
													
														
															
																 | 
																 | 
																        return -1; | 
																 | 
																 | 
																        return -1; | 
															
														
														
													
														
															
																 | 
																 | 
																    } | 
																 | 
																 | 
																    } | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																	
																 | 
																
  |