Phonon

avwriter.h
1/* This file is part of the KDE project
2 Copyright (C) 2006 Matthias Kretz <kretz@kde.org>
3
4 This library is free software; you can redistribute it and/or
5 modify it under the terms of the GNU Lesser General Public
6 License as published by the Free Software Foundation; either
7 version 2.1 of the License, or (at your option) version 3, or any
8 later version accepted by the membership of KDE e.V. (or its
9 successor approved by the membership of KDE e.V.), Nokia Corporation
10 (or its successors, if any) and the KDE Free Qt Foundation, which shall
11 act as a proxy defined in Section 6 of version 3 of the license.
12
13 This library is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 Lesser General Public License for more details.
17
18 You should have received a copy of the GNU Lesser General Public
19 License along with this library. If not, see <http://www.gnu.org/licenses/>.
20
21*/
22
23#ifndef PHONON_AVWRITER_H
24#define PHONON_AVWRITER_H
25
26#include "export.h"
27#include "../phonondefs.h"
28#include "../abstractaudiooutput.h"
29#include "../abstractvideooutput.h"
30
31namespace Phonon
32{
33namespace Experimental
34{
35
36class AvWriterPrivate;
37
38//TODO:
39// Container formats can support multiple audio, video and subtitle streams, a
40// control track (menus) and chapters. Anything else?
41// How should those features be mapped to this API? Multiple audio and video
42// streams should be covered already. Are the subtitle streams implicit
43// depending on the source material?
44// Chapters: call a method when to add a chapter? How does that map to a
45// specific frame/sample? Chapter support is probably overkill for Phonon.
46class PHONONEXPERIMENTAL_EXPORT AvWriter : public QObject
47{
48 Q_OBJECT
49 K_DECLARE_PRIVATE(AvWriter)
50 Q_PROPERTY(ContainerFormat containerFormat READ containerFormat WRITE setContainerFormat)
51 Q_PROPERTY(KUrl url READ url WRITE setUrl)
52 public:
53 /**
54 * Standard QObject constructor.
55 *
56 * \param parent QObject parent
57 */
58 AvWriter(QObject *parent);
59
60 KUrl url() const;
61 setUrl(const KUrl &url);
62
63 /**
64 * Creates a new AudioWriter object to be used for sending the audio
65 * data to this file
66 *
67 * \param streamName A name identifying the stream. Often this name is
68 * used for the language identifier.
69 *
70 * \return Returns the new AudioWriter object or 0 if the container
71 * format does not support multiple audio streams.
72 */
73 AudioWriter *addAudioStream(const QString &streamName);
74 VideoWriter *addVideoStream(const QString &streamName);
75
76 ContainerFormat containerFormat() const;
77
78 public Q_SLOTS:
79 void setContainerFormat(ContainerFormat format);
80};
81
82} // namespace Experimental
83} // namespace Phonon
84
85#endif // PHONON_AVWRITER_H
86// vim: sw=4 ts=4 tw=80
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:20:24 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.