SE3910 Realtime Systems Week 7 Class 1 GStreamer

  • Slides: 17
Download presentation
SE-3910 Real-time Systems • Week 7, Class 1 – GStreamer – QT SE-3910 -

SE-3910 Real-time Systems • Week 7, Class 1 – GStreamer – QT SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling, Some from Dr. Hornick, etc. 1

 • Gstreamer – a pipeline-based multimedia framework written in the C programming langauge

• Gstreamer – a pipeline-based multimedia framework written in the C programming langauge with a type based on the Gobject(? ) concept • Build audio-visual apps easily from existing algorithms SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 2

 • What are your dream A/V apps? • How would you structure your

• What are your dream A/V apps? • How would you structure your app? – What are the key classes? How do they relate? What are the processes? How do you get data from one to another? SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 3

gstreamer SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling

gstreamer SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 4

gstreamer pipeline Element SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material:

gstreamer pipeline Element SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling Pad 5

GUI Toolkits • Java – AWT – Swing • C/C++ – Qt – FLTK

GUI Toolkits • Java – AWT – Swing • C/C++ – Qt – FLTK – GTK – Motif – MFC SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 6

What makes a good toolkit? SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick

What makes a good toolkit? SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 7

Qt Features • Fully object-oriented • Consistent interfaces • Rich set of widgets (controls)

Qt Features • Fully object-oriented • Consistent interfaces • Rich set of widgets (controls) • Have native look and feel • Drag and drop • Customizable appearance Utility classes Open. GL support Network support Database support Plugin support Unicode/Internationaliz ation support • GUI builder • • • SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 8

Qt Widgets • Java Swing vs. Qt Timer JButton http: //ocw. mit. edu/courses/civil-andenvironmental-engineering/1 -124

Qt Widgets • Java Swing vs. Qt Timer JButton http: //ocw. mit. edu/courses/civil-andenvironmental-engineering/1 -124 j. SE-3910 - Dr. Josiah Yoder foundations-of-software-engineering-fall. Slide style: Dr. Hornick 2000/recitations/recitation_9/ Much Material: Dr. Schilling 9

Example QT Widgets SE 3910 Real Time Systems

Example QT Widgets SE 3910 Real Time Systems

QT Built in Dialog Boxes • • File dialog Font dialog Color dialog Printer

QT Built in Dialog Boxes • • File dialog Font dialog Color dialog Printer dialog SE 3910 Real Time Systems

Layouts • Java – Flow. Layout – Grid. Layout – Border. Layout • Qt

Layouts • Java – Flow. Layout – Grid. Layout – Border. Layout • Qt – Flow Layout – Grid Layout – Horizontal – Vertical – Border Layout SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 12

Events/Signals • Java • Qt – Event – Signal • E. g. Action. Event

Events/Signals • Java • Qt – Event – Signal • E. g. Action. Event – Event Listener – Slot • E. g. Action. Listener – How do you initiate an event in Java? – emit SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling • Pre-processor directive • Auto writes the signal-generating code for you 13

Signals/Slots in QT These code examples… • signals: • void clicked(); • connect(button, SIGNAL(clicked()),

Signals/Slots in QT These code examples… • signals: • void clicked(); • connect(button, SIGNAL(clicked()), q. App, SLOT(quit())); • emit progress. Notification(1000 * seconds); Are translated by moc to the “magic” code to make these event occur SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 14

Qt command-line tools… • moc – Program to convert. moc files to. cpp files

Qt command-line tools… • moc – Program to convert. moc files to. cpp files • qmake - Program that automatically creates a makefile to run moc and gcc at the correct time SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 15

Demo – Connecting to Beaglebone • [TODO] – Perhaps another time! – I may

Demo – Connecting to Beaglebone • [TODO] – Perhaps another time! – I may eventually put instructions for setting up a DHCP server on your laptop using “connection sharing” on website under “Objectives” – Ask me if you don’t find it when you need it – You know my number. SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 16

Demo – Watchdog One prompt for i in `seq 0 1000`; do echo $(($i*10));

Demo – Watchdog One prompt for i in `seq 0 1000`; do echo $(($i*10)); sleep 10; done; Another cat > /dev/watchdog SE-3910 - Dr. Josiah Yoder Slide style: Dr. Hornick Much Material: Dr. Schilling 17