mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-08 20:07:46 +09:00
dvb: AV SYNC register func instead of func pointer.
PD#167562: dvb av sync: register func instead of func pointer. Change-Id: Ia28f30d99e9ffb27236ec5d4d0da94451a013e6d Signed-off-by: manhao liang <manhao.liang@amlogic.com>
This commit is contained in:
@@ -155,31 +155,23 @@ static bool dobly_avsync_test;
|
||||
static int slowsync_enable;
|
||||
|
||||
pfun_tsdemux_pcrscr_valid tsdemux_pcrscr_valid_cb;
|
||||
EXPORT_SYMBOL(tsdemux_pcrscr_valid_cb);
|
||||
|
||||
pfun_tsdemux_pcrscr_get tsdemux_pcrscr_get_cb;
|
||||
EXPORT_SYMBOL(tsdemux_pcrscr_get_cb);
|
||||
|
||||
pfun_tsdemux_first_pcrscr_get tsdemux_first_pcrscr_get_cb;
|
||||
EXPORT_SYMBOL(tsdemux_first_pcrscr_get_cb);
|
||||
|
||||
pfun_tsdemux_pcraudio_valid tsdemux_pcraudio_valid_cb;
|
||||
EXPORT_SYMBOL(tsdemux_pcraudio_valid_cb);
|
||||
|
||||
pfun_tsdemux_pcrvideo_valid tsdemux_pcrvideo_valid_cb;
|
||||
EXPORT_SYMBOL(tsdemux_pcrvideo_valid_cb);
|
||||
|
||||
pfun_get_buf_by_type get_buf_by_type_cb;
|
||||
EXPORT_SYMBOL(get_buf_by_type_cb);
|
||||
|
||||
pfun_stbuf_level stbuf_level_cb;
|
||||
EXPORT_SYMBOL(stbuf_level_cb);
|
||||
|
||||
pfun_stbuf_space stbuf_space_cb;
|
||||
EXPORT_SYMBOL(stbuf_space_cb);
|
||||
|
||||
pfun_stbuf_size stbuf_size_cb;
|
||||
EXPORT_SYMBOL(stbuf_size_cb);
|
||||
|
||||
|
||||
/*
|
||||
*used to set player start sync mode, 0-none; 1-smoothsync; 2-droppcm;
|
||||
@@ -241,6 +233,58 @@ static int debug_apts;
|
||||
#define PTS_CACHED_HI_NORMAL_TIME (135000)
|
||||
#define PTS_CACHED_NORMAL_HI_TIME (180000)
|
||||
|
||||
int register_tsync_callbackfunc(enum tysnc_func_type_e ntype, void *pfunc)
|
||||
{
|
||||
if (ntype >= TSYNC_FUNC_TYPE_MAX) {
|
||||
pr_info("register_tync_func ntype is err.\n");
|
||||
return -1;
|
||||
}
|
||||
switch (ntype) {
|
||||
case TSYNC_PCRSCR_VALID:
|
||||
tsdemux_pcrscr_valid_cb =
|
||||
(pfun_tsdemux_pcrscr_valid)pfunc;
|
||||
break;
|
||||
case TSYNC_PCRSCR_GET:
|
||||
tsdemux_pcrscr_get_cb =
|
||||
(pfun_tsdemux_pcrscr_get)pfunc;
|
||||
break;
|
||||
case TSYNC_FIRST_PCRSCR_GET:
|
||||
tsdemux_first_pcrscr_get_cb =
|
||||
(pfun_tsdemux_first_pcrscr_get)pfunc;
|
||||
break;
|
||||
case TSYNC_PCRAUDIO_VALID:
|
||||
tsdemux_pcraudio_valid_cb =
|
||||
(pfun_tsdemux_pcraudio_valid)pfunc;
|
||||
break;
|
||||
case TSYNC_PCRVIDEO_VALID:
|
||||
tsdemux_pcrvideo_valid_cb =
|
||||
(pfun_tsdemux_pcrvideo_valid)pfunc;
|
||||
break;
|
||||
case TSYNC_BUF_BY_BYTE:
|
||||
get_buf_by_type_cb =
|
||||
(pfun_get_buf_by_type)pfunc;
|
||||
break;
|
||||
case TSYNC_STBUF_LEVEL:
|
||||
stbuf_level_cb =
|
||||
(pfun_stbuf_level)pfunc;
|
||||
break;
|
||||
case TSYNC_STBUF_SPACE:
|
||||
stbuf_space_cb =
|
||||
(pfun_stbuf_space)pfunc;
|
||||
break;
|
||||
case TSYNC_STBUF_SIZE:
|
||||
stbuf_size_cb =
|
||||
(pfun_stbuf_size)pfunc;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(register_tsync_callbackfunc);
|
||||
|
||||
|
||||
|
||||
static void tsync_pcr_recover_with_audio(void)
|
||||
{
|
||||
#if 0 /* MESON_CPU_TYPE < MESON_CPU_TYPE_MESON6 */
|
||||
|
||||
@@ -44,6 +44,19 @@ enum tsync_mode_e {
|
||||
TSYNC_MODE_PCRMASTER,
|
||||
};
|
||||
|
||||
enum tysnc_func_type_e {
|
||||
TSYNC_PCRSCR_VALID,
|
||||
TSYNC_PCRSCR_GET,
|
||||
TSYNC_FIRST_PCRSCR_GET,
|
||||
TSYNC_PCRAUDIO_VALID,
|
||||
TSYNC_PCRVIDEO_VALID,
|
||||
TSYNC_BUF_BY_BYTE,
|
||||
TSYNC_STBUF_LEVEL,
|
||||
TSYNC_STBUF_SPACE,
|
||||
TSYNC_STBUF_SIZE,
|
||||
TSYNC_FUNC_TYPE_MAX,
|
||||
};
|
||||
|
||||
extern bool disable_slow_sync;
|
||||
|
||||
typedef u8 (*pfun_tsdemux_pcrscr_valid)(void);
|
||||
@@ -73,6 +86,9 @@ extern pfun_stbuf_space stbuf_space_cb;
|
||||
typedef u32 (*pfun_stbuf_size)(struct stream_buf_s *buf);
|
||||
extern pfun_stbuf_size stbuf_size_cb;
|
||||
|
||||
extern int register_tsync_callbackfunc(
|
||||
enum tysnc_func_type_e ntype, void *pfunc);
|
||||
|
||||
#ifdef MODIFY_TIMESTAMP_INC_WITH_PLL
|
||||
extern void set_timestamp_inc_factor(u32 factor);
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user