MediaBuffer.cpp
上传用户:tuheem
上传日期:2007-05-01
资源大小:21889k
文件大小:1k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. #include "MediaBuffer.h"
  2. #include <stdio.h>
  3. MediaBuffer::MediaBuffer()
  4. {
  5. this->data = NULL;
  6. this->size = 0;
  7. }
  8. MediaBuffer::~MediaBuffer()
  9. {
  10. }
  11. void *MediaBuffer::GetData()
  12. {
  13. return this->data;
  14. }
  15. unsigned int MediaBuffer::GetSize()
  16. {
  17. return this->size;
  18. }
  19. MP_RESULT MediaBuffer::Alloc(int size)
  20. {
  21.     unsigned int size_local;
  22. if(this->data)
  23. return MP_RESULT_ERROR;
  24. this->size = size;
  25. if(this->data != NULL) {
  26. free(this->data);
  27. }
  28. this->data = (void *) new char[size];
  29. if(this->data != NULL) {
  30. memset(this->GetData(), 0, this->GetSize());
  31. }
  32. else {
  33. return MP_RESULT_ERROR;
  34. }
  35. return MP_RESULT_OK;
  36. }
  37. MP_RESULT MediaBuffer::ReAlloc(int size)
  38. {
  39. if(!this->data)
  40. return MP_RESULT_ERROR;
  41. this->data = realloc(this->data, size);
  42. this->size = size;
  43. return MP_RESULT_OK;
  44. }
  45. MP_RESULT MediaBuffer::Free()
  46. {
  47. if(this->data)
  48. free(this->data);
  49. this->data = NULL;
  50. return MP_RESULT_OK;
  51. }