fork download
  1. void SaveFrame(AVFrame *pFrame, int width, int height, int iFrame)
  2. {
  3. FILE *pFile;
  4. char szFilename[32];
  5. int y;
  6. GLuint texture;
  7. uint8_t * pic_data = new uint8_t[height * width * 3];
  8. uint8_t * t_data = new uint8_t[width * 3];
  9. glEnable(GL_TEXTURE_2D);
  10. glGenTextures(1, &texture); // Create The Texture
  11. glBindTexture(GL_TEXTURE_2D, texture);
  12.  
  13. for( y = 0; y < height; y++ )
  14. {
  15. memcpy(t_data, pFrame->data[0] + y * pFrame->linesize[0], width * 3);
  16. for (int i=0; i < width * 3; i += 3)
  17. {
  18. float avg = t_data[i] + t_data[i+1] + t_data[i+2];
  19. avg /= 3;
  20. t_data[i] = avg;
  21. t_data[i+1] = avg;
  22. t_data[i+2] = avg;
  23. }
  24. memcpy(pic_data + y * width * 3, t_data, width * 3);
  25. }
  26. glTexImage2D(GL_TEXTURE_2D, 0, 3, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, pic_data);
  27. delete t_data;
  28. delete pic_data;
  29. glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR);
  30. glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);
  31. m_Textures.push_back(texture);
  32. }
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty