Commit Graph

42 Commits

Author SHA1 Message Date
fred 9e7d4370cf Modified QqWidget textlayer behaviour.
- in QqWidget::QqWidget, connected the texto's textChanged
signal to the modTextLayer slot.

-in QqWidget::modTextLayer, added a call to resseZoom
 function so that the text is displayed correctly.

- in theorautils, still work needs to be done for the skeleton
2011-07-12 14:53:12 +02:00
fred c8fe933d8d Enhance FPS class to control the drift.
- In QqWidget::changeFps, sets fps to origin fps when slider back to the
middle.

- In FPS class, added a coefficient (_ratio) to control the drift
by adjusting the time (_period) to wait for.
2011-04-30 14:25:45 +02:00
fred 7e17a3f84d Some cleaning in the V4L2CamLayer, and Res classes
- In Res::, removed the chgRes method.
In V4L2CamLayer::open, replaced some std::cerr by error() function.
2011-04-26 16:05:07 +02:00
fred 9be6947d00 Added the ability to change the V4L2 devices resolution
- Created a QqComboRes class.

- In Layer class, added the types VIDEOLAYER and V4L2LAYER.

- In v4l2_layer.h and .cpp, created a Res class containing the
available resolutions.

- In QqWidget conctructor, determines if the layer is a v4l2 layer,
added a combobox with the different resolutions if it is.

- In a Qfreej menu, added the full screen function.
2011-04-23 01:45:46 +02:00
fred 97640b1d45 tried to tune the FPS (frame rate)
- in FPS::calc, rate renamed _period and now in the class declaration.
commented out the stats stuff ... does not seem to be used.
In FPS::delay, added an other nanosleep function for the last 100 us
+ a viariable for fine tuning. Seems to work not to bad on my machine,
but needs to be tested on others.

- In VideoLayer, deleted some printed information.
2011-04-09 23:38:00 +02:00
fred 79dab6f905 There was a bug in qfreej frame rate init 2011-04-09 11:45:24 +02:00
fred 06cb4c2adc Merge branch 'master' into sound 2011-04-06 18:31:50 +02:00
fred 1135374cf9 try to manage videos which frame rate is not an integer.
- In QqWidget::QqWidget, modified the FPS to be changed in percentage.
changed actualFps and normalFps to be taken as a float.

- In FPS:: , modified to use float instead of int.

- In oggmux_add_audio, limit the ratio to +- 10% resampling, which
is a lot ..... just in case of big drift.
2011-04-06 16:45:54 +02:00
Jaromil 5fab722dc3 Merge branch 'master' into sound 2011-03-28 18:52:34 +02:00
fred 2e9dc3b2f8 Don't allow speed changes on a V4L2 layer
- in QqWidget, after opening the layer, if actualFps equal zero,
do not allow FPS changes management.
2011-03-16 20:22:10 +01:00
fred a2da5035e2 Have a visual landmark when changing the layer playing speed
- In QqWidget, the QSlider background colour is grey if speed is normal
and red if different from original.
2011-03-16 13:56:17 +01:00
fred d3b598728b Now can control layer speed with a slider instead of a two speed button
- In QqWidget, replaced an int by a QSlider.
2011-03-15 23:41:29 +01:00
fred c95033b7d1 Now can close a Text Layer.
- In TextLayer destructor, commented out close() method that was generated
a SEGFAULT.

- In QqWidget destructor now stop and delete the layer attached.

Text Layer can be closed and text disappears.
2011-03-15 19:45:32 +01:00
fred 5a0b8560b3 Changes the method to calculate the frame rate when opening a video layer
- In VideoLayer::open, try to first use the r_frame_rate instead of the
time_base to calculate the frame rate. Frame rate was wrong (x10) on some
mp4 files (empirical).

- In QqWidget, no more need to test if fps is wrong .... I hope :)
In destructor, commented out ctx->rem_layer(qLayer); to avoid SEGFAULT
on close.
2011-03-14 15:17:48 +01:00
fred 1d4fdf3057 no more SEGFAULT on exit found .... lets see
- In QqFilterParam constructor setted WA_QuitOnClose to false
so that the filter window closes if the main window closes.

- Same for QqWidget

- Same for QEncoder

Erased some wrong delete :)
2011-03-11 15:12:41 +01:00
Jaromil 7be65f6fdd Merge branch 'sound' 2011-03-08 10:26:05 +01:00
fred 4800f14b92 Now quit much nicer
- in QqWidget, initialyse *m_qGeneLayer to NULL. Deleted some lines
commented out code.

Added a QLogger class for the future logs ... I hope

- in Qfreej, now connects Exit from the menu to the close() method
inherited by QWidget. Commented out setAttribute(Qt::WA_DeleteOnClose);
to avoid SEGFAULT.
2011-03-08 01:44:51 +01:00
Jaromil 89ece0bccb fix include path 2011-03-07 02:33:13 +01:00
fred e31ddff988 Now can dump in a file with control on audio from the graphic interface
- in QqWidget now creates as many Jack Output ports as there is in
the VideoLayer when QJackClient is launched and none already exists.

- QEncoder no longer herits from OggTheoraEncoder. It can move
in the future. Now deletes on close. Better communication with
QJackClient.

- in QJackClient, now can add Jack Outputs. Now creates the
AudioCollector needed for encoding. Better communication with
QEncoder.

- in JackClient::Process, controls if an encoder running before
filling the encoders ring buffers.

- in JSyncThread::_run, commented out me->_running = true, because
this variable can be accessed from the outside of the thread and
cause problems if stopping a JSyncThread just after created it.
Caused qfreej to hang up when opening creating QEncoder.

- in oggmux_close added some verifications on close to avoid SEGFAULT

- in VideoEncoder destructor, also added verifications.
2011-03-05 01:31:22 +01:00
fred 51be74acb6 Now can dump audio and video by the main menu application
In the new AudioCollector constructor, now passes the JackClient in
parameter to be stored.
In JackClient::Process now test if an encoder is connected
before filling the encoder ring buffer.
In OggTheoraEncoder::init now tels Jack there is an encoder.*
Now dumps, but with a big delay between audio and video.
2011-03-03 14:18:00 +01:00
fred b1943ae661 QEncoder class created.
Added an AudioCollector constructor that only creates buffers.
Added a filedump_close() method in VideoEncoder class.
In Qfreej setted m_QJack as private.
The results doesn't dump yet ;)
2011-02-28 21:09:38 +01:00
fred 0630d9d12f writes in the audio ring buffer encoder only if there is an encoder
In QqWidget, creates the Jack audio output ports if jack is
connected.
In JackClient::, added a variable to know if there is need to put
audio in the encoder ring buffer.
In ViewPort::add_audio, now returns true if succeeded.
2011-02-27 18:28:59 +01:00
fred b8a698bf18 Created a qJackClient class to create Jack input ports
commented out the Sound call.
Created the qJackClient class, only creates an jack input
port for the moment.
Added a Jack Connect menu
In AudioCollector constuctor, avoided AudioCallback creation
and SetInputBuf.
2011-02-25 00:03:10 +01:00
fred 2c1fd0c9f0 Putted back a Layer instead of a VideoLayer in QqWidget
m_ringbufferchannels is now public to be able to use it in the
audio mixing process. Will be replaced putted back in private later.
2011-02-19 23:57:58 +01:00
fred 6126f899ab Little modif in qt to test sound and streaming + various modif in freej
in qfreej : adding automatic call to ::openSoundDevice() when opening a
video.
Layer replaced by VideoLayer.
Added streaming config in ::Sound()
Changed from 10 to 1ms.

TODO file created (instead of the comments in the main)

in freej :
JackClient::Process() -> now writing jack outputs in a ring buffer.
commented out the RunCallback call.
OggTheoraEncoder:: -> a 30 sec recording to a file
from the JackClient ring buffer in wav PCM format added.

In theorautils.cpp -> work in progress :)
2011-01-25 18:32:31 +01:00
fred 481417ba37 Generator layer implemented
You can now create a generator layer from the menu.
Changed the way Filter plugins list is filled.
2010-11-13 16:08:53 +01:00
fred f3e7889579 Add possibility to reset layer zoom
print layer size onto the fake layer.
2010-11-12 16:08:57 +01:00
fred c6f1ebd360 no more textlayer opened at start
textlayer opening is now in the menu.
same for stream action
Added a play/pause button for layers
2010-11-12 01:18:30 +01:00
fred c43653ef43 Dispatch classes in several files
Added GPL text
2010-11-11 18:54:01 +01:00
fred 695ff6deb5 layer rotation update
layers now can be rotate by dragging left and right with middle mouse
button pressed on the layer.
2010-11-11 18:06:56 +01:00
fred f82176a52f some work on Layer rotation
need to rotate fakewindow too.
2010-11-10 00:03:29 +01:00
fred 2e9f178fb3 Played with filter params
add a QDial to rotate a Layer but not yet implemented.
2010-11-09 18:24:26 +01:00
fred 34e60f8661 code was cleaned and also the ViewPort
nearly all widgets have parents now.
Added the ViewPort clear method, to clean the screen after
every moves, resize, and other things.
2010-11-09 01:03:04 +01:00
fred f84ae0c3c8 code desing changed
Putted some code from qfreej.cpp to QqWidget.cpp,
also color frei0r filters management change.
2010-11-08 21:03:56 +01:00
fred 6fb8dfa426 try to fix the crash when quit .... but not yet 2010-11-08 15:06:51 +01:00
fred cb8b7c41f0 the textlayer tab move crash fixed
added also a clean button for the layers
2010-11-08 00:12:08 +01:00
fred 526121c560 adds /usr/local/lib/frei0r-1 for filters 2010-11-07 15:14:07 +01:00
fred 2bd4c44b85 ViewPort size stay the same in all tabs
in each layer tab, the fakes screen (viewport) sizes are the same.
2010-11-07 01:20:02 +01:00
fred db3b0f1dc0 name layer added to the filter params window 2010-11-06 16:08:13 +01:00
fred af0c97dd6d ViewPort size and position and size layers changes possible.
You can now change the size and position on each layer
by dragging it on a fake window. Left button to move,
Right to re-size.
2010-11-06 02:16:22 +01:00
fred 77e6ecaf32 Changed Main class to build gui by hand
Main class Qfreej inherits QWidget instead of QMainWindow.
In each Layer tab, we create a fake window to be able to move
and re-size layers soon ;)
2010-11-04 23:34:58 +01:00
fred 8a92b56d49 Add Qt interface 2010-11-02 14:25:30 +01:00