amstream_profile.c 806 B

1234567891011121314151617181920212223242526272829303132333435
  1. #include <linux/kernel.h>
  2. #include <linux/fs.h>
  3. #include <linux/device.h>
  4. #include <linux/interrupt.h>
  5. #include <linux/amports/amstream.h>
  6. static const struct codec_profile_t *vcodec_profile[SUPPORT_VDEC_NUM] = {0};
  7. static int vcodec_profile_idx = 0;
  8. ssize_t vcodec_profile_read(char *buf)
  9. {
  10. char *pbuf = buf;
  11. int i = 0;
  12. for(i = 0; i < vcodec_profile_idx; i ++)
  13. {
  14. pbuf += sprintf(pbuf, "%s:%s;\n", vcodec_profile[i]->name, vcodec_profile[i]->profile);
  15. }
  16. return pbuf - buf;
  17. }
  18. int vcodec_profile_register(const struct codec_profile_t *vdec_profile)
  19. {
  20. if(vcodec_profile_idx < SUPPORT_VDEC_NUM)
  21. {
  22. vcodec_profile[vcodec_profile_idx] = vdec_profile;
  23. vcodec_profile_idx ++;
  24. printk("regist %s codec profile\n", vdec_profile->name);
  25. }
  26. return 0;
  27. }