Main Page
Related Pages
Modules
Data Structures
Files
Examples
File List
Globals
libavformat
mpjpeg.c
Go to the documentation of this file.
1
/*
2
* Multipart JPEG format
3
* Copyright (c) 2000, 2001, 2002, 2003 Fabrice Bellard
4
*
5
* This file is part of Libav.
6
*
7
* Libav is free software; you can redistribute it and/or
8
* modify it under the terms of the GNU Lesser General Public
9
* License as published by the Free Software Foundation; either
10
* version 2.1 of the License, or (at your option) any later version.
11
*
12
* Libav is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* Lesser General Public License for more details.
16
*
17
* You should have received a copy of the GNU Lesser General Public
18
* License along with Libav; if not, write to the Free Software
19
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
*/
21
#include "
avformat.h
"
22
23
/* Multipart JPEG */
24
25
#define BOUNDARY_TAG "avserver"
26
27
static
int
mpjpeg_write_header
(
AVFormatContext
*s)
28
{
29
uint8_t buf1[256];
30
31
snprintf(buf1,
sizeof
(buf1),
"--%s\n"
,
BOUNDARY_TAG
);
32
avio_write
(s->
pb
, buf1, strlen(buf1));
33
avio_flush
(s->
pb
);
34
return
0;
35
}
36
37
static
int
mpjpeg_write_packet
(
AVFormatContext
*s,
AVPacket
*pkt)
38
{
39
uint8_t buf1[256];
40
41
snprintf(buf1,
sizeof
(buf1),
"Content-type: image/jpeg\n\n"
);
42
avio_write
(s->
pb
, buf1, strlen(buf1));
43
avio_write
(s->
pb
, pkt->
data
, pkt->
size
);
44
45
snprintf(buf1,
sizeof
(buf1),
"\n--%s\n"
,
BOUNDARY_TAG
);
46
avio_write
(s->
pb
, buf1, strlen(buf1));
47
avio_flush
(s->
pb
);
48
return
0;
49
}
50
51
static
int
mpjpeg_write_trailer
(
AVFormatContext
*s)
52
{
53
return
0;
54
}
55
56
AVOutputFormat
ff_mpjpeg_muxer
= {
57
.
name
=
"mpjpeg"
,
58
.long_name =
NULL_IF_CONFIG_SMALL
(
"MIME multipart JPEG format"
),
59
.mime_type =
"multipart/x-mixed-replace;boundary="
BOUNDARY_TAG
,
60
.extensions =
"mjpg"
,
61
.audio_codec =
CODEC_ID_NONE
,
62
.video_codec =
CODEC_ID_MJPEG
,
63
.write_header =
mpjpeg_write_header
,
64
.write_packet =
mpjpeg_write_packet
,
65
.write_trailer =
mpjpeg_write_trailer
,
66
};