From f3ad699526c00cd2d83e85d5d716ae0bf0565e98 Mon Sep 17 00:00:00 2001
From: Seven Du <dujinfang@gmail.com>
Date: Mon, 4 Aug 2014 15:23:12 +0800
Subject: [PATCH] FS-7500: update yuv codec

---
 src/mod/codecs/mod_yuv/mod_yuv.c | 19 ++++++-------------
 1 file changed, 6 insertions(+), 13 deletions(-)

diff --git a/src/mod/codecs/mod_yuv/mod_yuv.c b/src/mod/codecs/mod_yuv/mod_yuv.c
index db8d9718e6..6748e61f12 100644
--- a/src/mod/codecs/mod_yuv/mod_yuv.c
+++ b/src/mod/codecs/mod_yuv/mod_yuv.c
@@ -51,10 +51,8 @@ static switch_status_t switch_yuv_init(switch_codec_t *codec, switch_codec_flag_
 }
 
 static switch_status_t switch_yuv_encode(switch_codec_t *codec,
-										  switch_codec_t *other_codec,
-										  void *decoded_data,
-										  uint32_t decoded_data_len,
-										  uint32_t decoded_rate, void *encoded_data, uint32_t *encoded_data_len, uint32_t *encoded_rate,
+										  switch_image_t *img,
+										  void *encoded_data, uint32_t *encoded_data_len,
 										  unsigned int *flag)
 {
 	/* yuv encode is unclear, so return 0 for now */
@@ -64,18 +62,13 @@ static switch_status_t switch_yuv_encode(switch_codec_t *codec,
 }
 
 static switch_status_t switch_yuv_decode(switch_codec_t *codec,
-										  switch_codec_t *other_codec,
-										  void *encoded_data,
-										  uint32_t encoded_data_len,
-										  uint32_t encoded_rate, void *decoded_data, uint32_t *decoded_data_len, uint32_t *decoded_rate,
+										  switch_frame_t *frame,
+										  switch_image_t **img,
 										  unsigned int *flag)
 {
-	if (*decoded_data_len < encoded_data_len) return SWITCH_STATUS_FALSE;
+	switch_assert(frame);
 
-	codec->dec_picture.width = codec->enc_picture.width;
-	codec->dec_picture.height = codec->enc_picture.height;
-	memcpy(decoded_data, encoded_data, encoded_data_len);
-	*decoded_data_len = encoded_data_len;
+	*img = (switch_image_t *)frame->user_data;
 	return SWITCH_STATUS_SUCCESS;
 }