void CMpeg3VideoByteStream::play (uint64_t start) { player_debug_message("mpeg3 play "U64, start); m_play_start_time = start; set_timebase(start); }
void CMp4ByteStream::play (uint64_t start) { m_play_start_time = start; MP4Timestamp mp4_ts; MP4SampleId mp4_sampleId; m_parent->lock_file_mutex(); mp4_ts = MP4ConvertToTrackTimestamp(m_parent->get_file(), m_track, start, MP4_MSECS_TIME_SCALE); mp4_sampleId = MP4GetSampleIdFromTime(m_parent->get_file(), m_track, mp4_ts, TRUE); uint64_t ts; MP4Timestamp sampleTime; sampleTime = MP4GetSampleTime(m_parent->get_file(), m_track, mp4_sampleId); ts = MP4ConvertFromTrackTimestamp(m_parent->get_file(), m_track, sampleTime, MP4_MSECS_TIME_SCALE); m_parent->unlock_file_mutex(); #ifdef DEBUG_MP4_FRAME mp4f_message(LOG_DEBUG, "%s searching timestamp "U64" gives "U64, m_name, start, mp4_ts); mp4f_message(LOG_DEBUG, "%s values are sample time "U64" ts "U64, m_name, sampleTime, ts); #endif set_timebase(mp4_sampleId); }
void CMp4ByteStream::reset (void) { set_timebase(1); }
void CMpeg3VideoByteStream::reset (void) { set_timebase(0); }
void CMpeg3AudioByteStream::play (uint64_t start) { m_play_start_time = start; set_timebase(start); }
void CMpeg3AudioByteStream::reset (void) { set_timebase(0); }
int main (void) { char ch; printf ( "PS2000 driver example program\n" ); printf ( "Version 1.0\n\n" ); printf ( "\n\nOpening the device...\n"); //open unit and show splash screen unitOpened.handle = ps2000_open_unit (); printf ( "Handle: %d\n", unitOpened.handle ); if ( unitOpened.handle < 1 ) { printf ( "Unable to open device\n" ); get_info (); while( !kbhit() ); exit ( 99 ); } else { printf ( "Device opened successfully\n\n" ); get_info (); timebase = 0; ch = ' '; while ( ch != 'X' ) { printf ( "\n" ); printf ( "B - immediate block V - Set voltages\n" ); printf ( "T - triggered block I - Set timebase\n" ); printf ( "Y - advanced triggered block A - ADC counts/mV\n" ); printf ( "E - ETS block\n" ); printf ( "S - Streaming\n"); printf ( "F - Fast streaming\n"); printf ( "D - Fast streaming triggered\n"); printf ( "G - Signal generator\n"); printf ( "H - Arbitrary signal generator\n"); printf ( "X - exit\n" ); printf ( "Operation:" ); ch = toupper ( getch () ); printf ( "\n\n" ); switch ( ch ) { case 'B': collect_block_immediate (); break; case 'T': collect_block_triggered (); break; case 'Y': if (unitOpened.hasAdvancedTriggering) { collect_block_advanced_triggered (); } else { printf ("Not supported by this model\n\n"); } break; case 'S': collect_streaming (); break; case 'F': if (unitOpened.hasFastStreaming) { collect_fast_streaming (); } else { printf ("Not supported by this model\n\n"); } break; case 'D': if (unitOpened.hasFastStreaming && unitOpened.hasAdvancedTriggering) { collect_fast_streaming_triggered (); } else { printf ("Not supported by this model\n\n"); } break; case 'E': if (unitOpened.hasEts) { collect_block_ets (); } else { printf ("Not supported by this model\n\n"); } break; case 'G': if (unitOpened.hasSignalGenerator) { set_sig_gen (); } break; case 'H': if (unitOpened.hasSignalGenerator) { set_sig_gen_arb (); } break; case 'V': set_voltages (); break; case 'I': set_timebase (); break; case 'A': scale_to_mv = !scale_to_mv; if ( scale_to_mv ) { printf ( "Readings will be scaled in mV\n" ); } else { printf ( "Readings will be scaled in ADC counts\n" ); } break; case 'X': /* Handled by outer loop */ break; default: printf ( "Invalid operation\n" ); break; } } ps2000_close_unit ( unitOpened.handle ); } return 1; }