Loading drivers/media/platform/msm/dvb/video/mpq_dvb_video.c +1127 −252 File changed.Preview size limit exceeded, changes collapsed. Show changes drivers/media/platform/msm/dvb/video/mpq_dvb_video_internal.h +49 −7 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ #define MPQ_DBG_INFO "mpq_video:%d " #define MPQ_VID_DEC_NAME "mpq_vidc_dec" #define TRICKMODE_SUPPORT extern int mpq_debug; enum { MPQ_ERR = 0x001, Loading @@ -28,7 +30,7 @@ enum { #define dprintk(dbg_mask, fmt, arg...) \ do { \ if (mpq_debug & dbg_mask) { \ pr_debug(MPQ_DBG_INFO fmt, dbg_mask, ## arg); \ printk(MPQ_DBG_INFO fmt, dbg_mask, ## arg); \ } \ } while (0) Loading @@ -51,13 +53,15 @@ enum { #define MPQ_DVB_OUTPUT_BUF_SETUP_BIT 0x00000020 #define MPQ_DVB_INPUT_STREAMON_BIT 0x00000040 #define MPQ_DVB_OUTPUT_STREAMON_BIT 0x00000080 #define MPQ_DVB_FLUSH_DONE_BIT 0x00000100 #define MPQ_DVB_FLUSH_IN_PROGRESS_BIT 0x00000200 #define MPQ_DVB_EVENT_FLUSH_DONE_BIT 0x00000100 #define MPQ_DVB_INPUT_FLUSH_IN_PROGRESS_BIT 0x00000200 #define MPQ_DVB_OUTPUT_FLUSH_IN_PROGRESS_BIT 0x00000400 #define DEFAULT_INPUT_BUF_SIZE (1024*1024) #define DEFAULT_INPUT_BUF_NUM 16 #define MPQ_VID_DEC_NAME "mpq_vidc_dec" #define EXTRADATA_HANDLING #define EXTRADATA_IDX(__num_planes) (__num_planes - 1) enum { Loading @@ -71,6 +75,11 @@ enum { INPUT_MODE_RING }; enum { MPQ_INPUT_BUFFER_FREE, MPQ_INPUT_BUFFER_IN_USE }; enum { MPQ_MSG_OUTPUT_BUFFER_DONE, MPQ_MSG_VIDC_EVENT Loading Loading @@ -99,7 +108,16 @@ struct mpq_msg_q_msg { struct list_head list; u32 msg_type; }; #ifdef EXTRADATA_HANDLING struct mpq_pkt_msg { struct list_head list; int ion_fd; u32 offset; u32 len; u64 pts; }; struct mpq_extradata { int index; u32 uaddr; Loading @@ -108,9 +126,10 @@ struct mpq_extradata { int ion_fd; int fd_offset; }; #endif struct buffer_info { int index; int state; enum v4l2_buf_type buf_type; u32 size; u32 offset; Loading @@ -120,10 +139,11 @@ struct buffer_info { u32 dev_addr; u32 kernel_vaddr; u32 buf_offset; u64 pts; struct msm_smem *handle; #ifdef EXTRADATA_HANDLING struct mpq_extradata extradata; #endif }; struct mpq_ring_buffer { Loading Loading @@ -162,13 +182,35 @@ struct v4l2_instance { u32 input_buf_count; u32 num_output_buffers; u32 output_buf_count; u32 flag; u32 state; u32 vidc_etb; u32 vidc_ebd; u32 vidc_ftb; u32 vidc_fbd; struct mutex flush_lock; struct msm_smem *extradata_handle; u32 extradata_types; u32 extradata_size; struct extradata_buffer extradata; int playback_mode; }; struct mpq_dmx_source { struct mpq_streambuffer *stream_buffer; wait_queue_head_t dmx_wait; int device_id; #ifdef DMX_NO_COPY struct video_data_buffer dmx_video_buf; struct list_head pkt_queue; struct semaphore pkt_sem; wait_queue_head_t pkt_wait; #endif }; struct mpq_dvb_video_instance { Loading drivers/media/platform/msm/vidc/msm_vidc.c +2 −0 Original line number Diff line number Diff line Loading @@ -1051,6 +1051,8 @@ void *msm_vidc_smem_get_client(void *instance) return inst->mem_client; } EXPORT_SYMBOL(msm_vidc_smem_get_client); static void *vidc_get_userptr(void *alloc_ctx, unsigned long vaddr, unsigned long size, int write) { Loading include/uapi/linux/dvb/video.h +39 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,25 @@ #include <time.h> #endif #define V4L2_MPEG_VIDC_EXTRADATA_MB_QUANTIZATION_BIT 0x00000001 #define V4L2_MPEG_VIDC_EXTRADATA_INTERLACE_VIDEO_BIT 0x00000002 #define V4L2_MPEG_VIDC_EXTRADATA_VC1_FRAMEDISP_BIT 0x00000004 #define V4L2_MPEG_VIDC_EXTRADATA_VC1_SEQDISP_BIT 0x00000008 #define V4L2_MPEG_VIDC_EXTRADATA_TIMESTAMP_BIT 0x00000010 #define V4L2_MPEG_VIDC_EXTRADATA_S3D_FRAME_PACKING_BIT 0x00000020 #define V4L2_MPEG_VIDC_EXTRADATA_FRAME_RATE_BIT 0x00000040 #define V4L2_MPEG_VIDC_EXTRADATA_PANSCAN_WINDOW_BIT 0x00000080 #define V4L2_MPEG_VIDC_EXTRADATA_RECOVERY_POINT_SEI_BIT 0x00000100 #define V4L2_MPEG_VIDC_EXTRADATA_CLOSED_CAPTION_UD_BIT 0x00000200 #define V4L2_MPEG_VIDC_EXTRADATA_AFD_UD_BIT 0x00000400 #define V4L2_MPEG_VIDC_EXTRADATA_MULTISLICE_INFO_BIT 0x00000800 #define V4L2_MPEG_VIDC_EXTRADATA_NUM_CONCEALED_MB_BIT 0x00001000 #define V4L2_MPEG_VIDC_EXTRADATA_METADATA_FILLER_BIT 0x00002000 #define V4L2_MPEG_VIDC_INDEX_EXTRADATA_INPUT_CROP_BIT 0x00004000 #define V4L2_MPEG_VIDC_INDEX_EXTRADATA_DIGITAL_ZOOM_BIT 0x00008000 #define V4L2_MPEG_VIDC_INDEX_EXTRADATA_ASPECT_RATIO_BIT 0x00010000 #define V4L2_MPEG_VIDC_EXTRADATA_MPEG2_SEQDISP_BIT 0x00020000 typedef enum { VIDEO_FORMAT_4_3, /* Select 4:3 format */ VIDEO_FORMAT_16_9, /* Select 16:9 format. */ Loading Loading @@ -68,6 +87,12 @@ enum video_out_format_t { VIDEO_YUV_FORMAT_TILE_4x2 }; enum video_playback_mode_t { VIDEO_PLAYBACK_NORMAL = 0, VIDEO_PLAYBACK_TRICKMODE_COARSE = 1, VIDEO_PLAYBACK_TRICKMODE_SMOOTH = 2 }; typedef struct { int w; int h; Loading Loading @@ -112,6 +137,9 @@ typedef enum { #define VIDEO_CMD_CLEAR_INPUT_BUFFER (18) #define VIDEO_CMD_CLEAR_OUTPUT_BUFFER (19) #define VIDEO_CMD_SET_BUFFER_COUNT (20) #define VIDEO_CMD_SET_EXTRADATA_TYPES (21) #define VIDEO_CMD_SET_EXTRADATA_BUFFER (22) #define VIDEO_CMD_SET_PLAYBACK_MODE (23) /* Flags for VIDEO_CMD_FREEZE */ #define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0) Loading Loading @@ -147,6 +175,7 @@ struct video_buffer_req { unsigned int num_output_buffers; /* Number of Output Buffers */ struct video_buffer_prop input_buf_prop; /* Input Buffer Properties */ struct video_buffer_prop output_buf_prop; /* Output Buffer Prop */ size_t extradata_size; }; enum scan_format { Loading @@ -168,6 +197,13 @@ struct video_data_buffer { enum scan_format interlaced_format; }; struct extradata_buffer { void __user *bufferaddr; size_t buffer_len; int ion_fd; size_t offset; }; struct video_h264_mv { size_t size; int count; Loading Loading @@ -213,6 +249,9 @@ struct video_command { struct video_data_buffer buffer; /* Buffer Details */ struct video_mv_buff_size mv_buffer_req; struct video_h264_mv mv_buffer_prop; unsigned int extradata_type; struct extradata_buffer extradata_buffer; enum video_playback_mode_t video_mode; }; struct { Loading Loading
drivers/media/platform/msm/dvb/video/mpq_dvb_video.c +1127 −252 File changed.Preview size limit exceeded, changes collapsed. Show changes
drivers/media/platform/msm/dvb/video/mpq_dvb_video_internal.h +49 −7 Original line number Diff line number Diff line Loading @@ -17,6 +17,8 @@ #define MPQ_DBG_INFO "mpq_video:%d " #define MPQ_VID_DEC_NAME "mpq_vidc_dec" #define TRICKMODE_SUPPORT extern int mpq_debug; enum { MPQ_ERR = 0x001, Loading @@ -28,7 +30,7 @@ enum { #define dprintk(dbg_mask, fmt, arg...) \ do { \ if (mpq_debug & dbg_mask) { \ pr_debug(MPQ_DBG_INFO fmt, dbg_mask, ## arg); \ printk(MPQ_DBG_INFO fmt, dbg_mask, ## arg); \ } \ } while (0) Loading @@ -51,13 +53,15 @@ enum { #define MPQ_DVB_OUTPUT_BUF_SETUP_BIT 0x00000020 #define MPQ_DVB_INPUT_STREAMON_BIT 0x00000040 #define MPQ_DVB_OUTPUT_STREAMON_BIT 0x00000080 #define MPQ_DVB_FLUSH_DONE_BIT 0x00000100 #define MPQ_DVB_FLUSH_IN_PROGRESS_BIT 0x00000200 #define MPQ_DVB_EVENT_FLUSH_DONE_BIT 0x00000100 #define MPQ_DVB_INPUT_FLUSH_IN_PROGRESS_BIT 0x00000200 #define MPQ_DVB_OUTPUT_FLUSH_IN_PROGRESS_BIT 0x00000400 #define DEFAULT_INPUT_BUF_SIZE (1024*1024) #define DEFAULT_INPUT_BUF_NUM 16 #define MPQ_VID_DEC_NAME "mpq_vidc_dec" #define EXTRADATA_HANDLING #define EXTRADATA_IDX(__num_planes) (__num_planes - 1) enum { Loading @@ -71,6 +75,11 @@ enum { INPUT_MODE_RING }; enum { MPQ_INPUT_BUFFER_FREE, MPQ_INPUT_BUFFER_IN_USE }; enum { MPQ_MSG_OUTPUT_BUFFER_DONE, MPQ_MSG_VIDC_EVENT Loading Loading @@ -99,7 +108,16 @@ struct mpq_msg_q_msg { struct list_head list; u32 msg_type; }; #ifdef EXTRADATA_HANDLING struct mpq_pkt_msg { struct list_head list; int ion_fd; u32 offset; u32 len; u64 pts; }; struct mpq_extradata { int index; u32 uaddr; Loading @@ -108,9 +126,10 @@ struct mpq_extradata { int ion_fd; int fd_offset; }; #endif struct buffer_info { int index; int state; enum v4l2_buf_type buf_type; u32 size; u32 offset; Loading @@ -120,10 +139,11 @@ struct buffer_info { u32 dev_addr; u32 kernel_vaddr; u32 buf_offset; u64 pts; struct msm_smem *handle; #ifdef EXTRADATA_HANDLING struct mpq_extradata extradata; #endif }; struct mpq_ring_buffer { Loading Loading @@ -162,13 +182,35 @@ struct v4l2_instance { u32 input_buf_count; u32 num_output_buffers; u32 output_buf_count; u32 flag; u32 state; u32 vidc_etb; u32 vidc_ebd; u32 vidc_ftb; u32 vidc_fbd; struct mutex flush_lock; struct msm_smem *extradata_handle; u32 extradata_types; u32 extradata_size; struct extradata_buffer extradata; int playback_mode; }; struct mpq_dmx_source { struct mpq_streambuffer *stream_buffer; wait_queue_head_t dmx_wait; int device_id; #ifdef DMX_NO_COPY struct video_data_buffer dmx_video_buf; struct list_head pkt_queue; struct semaphore pkt_sem; wait_queue_head_t pkt_wait; #endif }; struct mpq_dvb_video_instance { Loading
drivers/media/platform/msm/vidc/msm_vidc.c +2 −0 Original line number Diff line number Diff line Loading @@ -1051,6 +1051,8 @@ void *msm_vidc_smem_get_client(void *instance) return inst->mem_client; } EXPORT_SYMBOL(msm_vidc_smem_get_client); static void *vidc_get_userptr(void *alloc_ctx, unsigned long vaddr, unsigned long size, int write) { Loading
include/uapi/linux/dvb/video.h +39 −0 Original line number Diff line number Diff line Loading @@ -30,6 +30,25 @@ #include <time.h> #endif #define V4L2_MPEG_VIDC_EXTRADATA_MB_QUANTIZATION_BIT 0x00000001 #define V4L2_MPEG_VIDC_EXTRADATA_INTERLACE_VIDEO_BIT 0x00000002 #define V4L2_MPEG_VIDC_EXTRADATA_VC1_FRAMEDISP_BIT 0x00000004 #define V4L2_MPEG_VIDC_EXTRADATA_VC1_SEQDISP_BIT 0x00000008 #define V4L2_MPEG_VIDC_EXTRADATA_TIMESTAMP_BIT 0x00000010 #define V4L2_MPEG_VIDC_EXTRADATA_S3D_FRAME_PACKING_BIT 0x00000020 #define V4L2_MPEG_VIDC_EXTRADATA_FRAME_RATE_BIT 0x00000040 #define V4L2_MPEG_VIDC_EXTRADATA_PANSCAN_WINDOW_BIT 0x00000080 #define V4L2_MPEG_VIDC_EXTRADATA_RECOVERY_POINT_SEI_BIT 0x00000100 #define V4L2_MPEG_VIDC_EXTRADATA_CLOSED_CAPTION_UD_BIT 0x00000200 #define V4L2_MPEG_VIDC_EXTRADATA_AFD_UD_BIT 0x00000400 #define V4L2_MPEG_VIDC_EXTRADATA_MULTISLICE_INFO_BIT 0x00000800 #define V4L2_MPEG_VIDC_EXTRADATA_NUM_CONCEALED_MB_BIT 0x00001000 #define V4L2_MPEG_VIDC_EXTRADATA_METADATA_FILLER_BIT 0x00002000 #define V4L2_MPEG_VIDC_INDEX_EXTRADATA_INPUT_CROP_BIT 0x00004000 #define V4L2_MPEG_VIDC_INDEX_EXTRADATA_DIGITAL_ZOOM_BIT 0x00008000 #define V4L2_MPEG_VIDC_INDEX_EXTRADATA_ASPECT_RATIO_BIT 0x00010000 #define V4L2_MPEG_VIDC_EXTRADATA_MPEG2_SEQDISP_BIT 0x00020000 typedef enum { VIDEO_FORMAT_4_3, /* Select 4:3 format */ VIDEO_FORMAT_16_9, /* Select 16:9 format. */ Loading Loading @@ -68,6 +87,12 @@ enum video_out_format_t { VIDEO_YUV_FORMAT_TILE_4x2 }; enum video_playback_mode_t { VIDEO_PLAYBACK_NORMAL = 0, VIDEO_PLAYBACK_TRICKMODE_COARSE = 1, VIDEO_PLAYBACK_TRICKMODE_SMOOTH = 2 }; typedef struct { int w; int h; Loading Loading @@ -112,6 +137,9 @@ typedef enum { #define VIDEO_CMD_CLEAR_INPUT_BUFFER (18) #define VIDEO_CMD_CLEAR_OUTPUT_BUFFER (19) #define VIDEO_CMD_SET_BUFFER_COUNT (20) #define VIDEO_CMD_SET_EXTRADATA_TYPES (21) #define VIDEO_CMD_SET_EXTRADATA_BUFFER (22) #define VIDEO_CMD_SET_PLAYBACK_MODE (23) /* Flags for VIDEO_CMD_FREEZE */ #define VIDEO_CMD_FREEZE_TO_BLACK (1 << 0) Loading Loading @@ -147,6 +175,7 @@ struct video_buffer_req { unsigned int num_output_buffers; /* Number of Output Buffers */ struct video_buffer_prop input_buf_prop; /* Input Buffer Properties */ struct video_buffer_prop output_buf_prop; /* Output Buffer Prop */ size_t extradata_size; }; enum scan_format { Loading @@ -168,6 +197,13 @@ struct video_data_buffer { enum scan_format interlaced_format; }; struct extradata_buffer { void __user *bufferaddr; size_t buffer_len; int ion_fd; size_t offset; }; struct video_h264_mv { size_t size; int count; Loading Loading @@ -213,6 +249,9 @@ struct video_command { struct video_data_buffer buffer; /* Buffer Details */ struct video_mv_buff_size mv_buffer_req; struct video_h264_mv mv_buffer_prop; unsigned int extradata_type; struct extradata_buffer extradata_buffer; enum video_playback_mode_t video_mode; }; struct { Loading