kb_machblue_tv_stream.c
上传用户:fy98168
上传日期:2015-06-26
资源大小:13771k
文件大小:9k
源码类别:

DVD

开发平台:

C/C++

  1. //*****************************************************************************
  2. //File Name: kb_machblue_tv_stream.c
  3. //
  4. //Description: stream function
  5. //
  6. // used by Machblue DVB Player to control the streams running in a service context.
  7. //
  8. //Author: steven
  9. //
  10. //Date:  2007.01.20
  11. //
  12. //Version:  v1.0
  13. //*****************************************************************************
  14. #include "machblue_defines.h"
  15. #include "machblue_porting_core.h"
  16. #include "machblue_tv_defines.h"
  17. #include "machblue_tv_customer.h"
  18. #include "machblue_tv_porting.h"
  19. #include "kb_machblue_client_data.h"
  20. #include "kb_machblue_client_define.h"
  21. /**
  22.  * This function releases a stream controller object. 
  23.  * stream_controller < stream controller object to release >
  24.  
  25.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  26.  */
  27. mb_error_t mb_tv_stc_release(mb_tv_stream_controller_t stream_controller)
  28. {
  29. return MB_SUCCESS;
  30. }
  31. /**
  32.  * This function retrieves the number of streams of a stream 
  33.  * controller object. 
  34.  * stream_controller < stream_controller managing the streams >
  35.  * stream_count         < pointer to int to store stream count >
  36.  
  37.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  38.  */
  39. mb_error_t mb_tv_stc_stream_count_get(mb_tv_stream_controller_t stream_controller,int *stream_count)
  40. {
  41. return MB_SUCCESS;
  42. }
  43. /**
  44.  * This function retrieves streams' descriptions from a stream 
  45.  * controller object.
  46.  * This function is ASYNCHRONOUS. The system should send an 
  47.  * MB_TV_NR_STREAMS_INFO_GET notification once the request is completed.
  48.  * @see MB_TV_NR_STREAMS_INFO_GET
  49.  * stream_controller < stream controller to query >
  50.  * start_stream_pos < position of the first stream info to get (0 based) >
  51.  * stream_count < pointer to number of stream info to retrieve. 
  52.                                       This pointer should be updated with number of stream info actually retrieved >                                     
  53.  * stream_info_list     < pointer to stream info list to update with streams >
  54.  
  55.  * @return MB_SUCCESS on success MB_FAILURE 
  56.  * otherwise.
  57.  */
  58. mb_error_t mb_tv_stc_streams_info_get(mb_tv_stream_controller_t stream_controller,int start_stream_pos,
  59.          int *stream_count,mb_tv_stream_info_t *stream_info_list)
  60. {
  61. return MB_SUCCESS;
  62. }
  63. /**
  64.  * This function retrieves the state of a given stream type.
  65.  * stream_controller < stream controller to query >
  66.  * stream_type < stream type >
  67.  * state               < pointer to state enum to update >
  68.  
  69.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  70.  */
  71. mb_error_t mb_tv_stc_stream_state_get(mb_tv_stream_controller_t stream_controller,
  72.      mb_tv_stream_type_t stream_type,mb_tv_stream_state_t *state)
  73. {
  74. return MB_SUCCESS;
  75. }
  76. /**
  77.  * This function enables a given stream type.
  78.  * This function is ASYNCHRONOUS. The system should send an 
  79.  * MB_TV_NR_STREAM_ENABLED or an MB_TV_NR_STREAM_ERROR 
  80.  * notification once the request is completed.
  81.  * @see MB_TV_NR_STREAM_ENABLED
  82.  * @see MB_TV_NR_STREAM_ERROR
  83.  * stream_controller < stream controller to use >
  84.  * stream_type < type of stream to enable >
  85.  * stream_tag          < tag of stream to enable > 
  86.  
  87.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  88.  */
  89. mb_error_t mb_tv_stc_stream_enable(mb_tv_stream_controller_t stream_controller,
  90.      mb_tv_stream_type_t stream_type,mb_char_t *stream_tag)
  91. {
  92. return MB_SUCCESS;
  93. }
  94. /**
  95.  * This function disables a given stream type.
  96.  * This function is ASYNCHRONOUS. The system should send an 
  97.  * MB_TV_NR_STREAM_DISABLED or an MB_TV_NR_STREAM_ERROR notification 
  98.  * once the request is completed.
  99.  * @see MB_TV_NR_STREAM_DISABLED
  100.  * @see MB_TV_NR_STREAM_ERROR
  101.  * stream_controller < stream controller to use >
  102.  * stream_type         < type of stream to disable >
  103.  
  104.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  105.  */
  106. mb_error_t mb_tv_stc_stream_disable(mb_tv_stream_controller_t stream_controller,mb_tv_stream_type_t stream_type)
  107. {
  108. return MB_SUCCESS;
  109. }
  110. /**
  111.  * This function sends a trick play command to a stream controller.
  112.  * This function is ASYNCHRONOUS. The system should send an 
  113.  * MB_TV_NR_TRICK_PLAY notification once the request is completed.
  114.  * @see MB_TV_NR_TRICK_PLAY
  115.  * stream_controller < stream controller to use >
  116.  * command < trick play command to execute >
  117.  * param               < trick play command parameter > 
  118.  
  119.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  120.  */
  121. mb_error_t mb_tv_stc_trick_play(mb_tv_stream_controller_t stream_controller,
  122.      mb_tv_trick_play_cmd_t command,long param)
  123. {
  124. return MB_SUCCESS;
  125. }
  126. /**
  127.  * This function retrieves the current trick play state of a stream controller.
  128.  * stream_controller < stream controller to use >
  129.  * pb_speed            < pointer to the playback speed integer to update hundredths of normal speed >  
  130.  
  131.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  132.  */
  133. mb_error_t mb_tv_stc_playback_speed_get(mb_tv_stream_controller_t stream_controller,int *pb_speed)
  134. {
  135. return MB_SUCCESS;
  136. }
  137. /**
  138.  * This function returns the current playback position in the 
  139.  * currently running video stream.
  140.  * stream_controller < stream controller to query >
  141.  * pb_buffer_start < pointer to start of the playback buffer to update in nano-seconds.
  142.                                       For a VOD or Recording playback the playback buffer 
  143.                                             start time should be set to 0.
  144.                                       For a live stream on a PVR system, this correspond to the start
  145.                                             time of the review buffer in nano-seconds since 01/01/1970 UTC.
  146.                                       For a live stream on a non PVR system, this corresponds to the 
  147.                                            current time in nano-seconds since 01/01/1970 UTC. >
  148.  * pb_buffer_end < pointer to end of the playback buffer to update in nano-seconds.
  149.                                       For a VOD or Recording playback the playback buffer end time
  150.                                            should be set to the VOD playback or recording duration in nano-seconds.
  151.                                       For a live stream on a PVR system, this correspond to the end time
  152.                                            time of the review buffer ("live" position) in nano-seconds since 01/01/1970 UTC.
  153.                                       For a live stream on a non PVR system, this corresponds to the 
  154.                                            current time in nano-seconds since 01/01/1970. >
  155.  * pb_current_pos  < pointer to the current playback position in the playback buffer to update in nano-seconds.
  156.                                       For a VOD or Recording playback this corresponds to the distance 
  157.                                            in nano-seconds between the playback head and the playback buffer start.
  158.                                       For a live stream on a PVR system this corresponds to the recorded 
  159.                                            timestamp in nano-seconds since 01/01/1970 UTC at the current location of the playback head.
  160.                                       For a live stream on a non PVR system, the current time in 
  161.                                            nano-seconds since 01/01/1970 should be returned. >
  162.  
  163.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  164.  */
  165. mb_error_t mb_tv_stc_playback_position_get(mb_tv_stream_controller_t stream_controller,
  166. mb_system_time_t *pb_buffer_start,mb_system_time_t *pb_buffer_end,mb_system_time_t *pb_current_pos)
  167. {
  168. return MB_SUCCESS;
  169. }
  170. /**
  171.  * This function sets a video playback position notification request. 
  172.  * The system should send an MB_TV_NR_PLAYBACK_POSITION_NOTIFY 
  173.  * notification to the player as soon as the requested video
  174.  * playback position value is reached.
  175.  * @see MB_TV_NR_PLAYBACK_POSITION_NOTIFY
  176.  * stream_controller < stream controller to use >
  177.  * pb_pos_value        < video playback position value to watch for in nano-seconds.
  178.                                       For a VOD or Recording playback this corresponds to the distance 
  179.                                            in nano-seconds between the trigger and the playback buffer start.
  180.                                       For a live stream on a PVR system this corresponds to the recorded 
  181.                                            timestamp in nano-seconds since 01/01/1970 UTC at the location of the trigger.
  182.                                       For a live stream on a non PVR system, this corresponds to the time 
  183.                                            in nano-seconds since 01/01/1970 of the trigger. >
  184.  
  185.  * @return MB_SUCCESS on success, MB_FAILURE otherwise.
  186.  */
  187. mb_error_t mb_tv_stc_playback_position_notify(mb_tv_stream_controller_t stream_controller,mb_system_time_t *pb_pos_value)
  188. {
  189. return MB_SUCCESS;
  190. }