Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-2-2
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc-2-2
Commits
c6c38ccd
Commit
c6c38ccd
authored
Jan 13, 2007
by
Damien Fouilleul
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
demux/live555.cpp: added support for avc1 in X-QT over RTSP
parent
151b33e8
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
27 additions
and
4 deletions
+27
-4
modules/demux/live555.cpp
modules/demux/live555.cpp
+27
-4
No files found.
modules/demux/live555.cpp
View file @
c6c38ccd
...
...
@@ -29,6 +29,7 @@
#include <stdlib.h>
/* malloc(), free() */
#include <string.h>
#include <vlc_codecs.h>
#include <vlc_demux.h>
#include <vlc_interface.h>
#include <vlc_network.h>
...
...
@@ -1341,10 +1342,32 @@ static void StreamRead( void *p_private, unsigned int i_size,
tk
->
fmt
.
video
.
i_width
=
(
sdAtom
[
28
]
<<
8
)
|
sdAtom
[
29
];
tk
->
fmt
.
video
.
i_height
=
(
sdAtom
[
30
]
<<
8
)
|
sdAtom
[
31
];
if
(
tk
->
fmt
.
i_codec
==
VLC_FOURCC
(
'a'
,
'v'
,
'c'
,
'1'
)
)
{
uint8_t
*
pos
=
(
uint8_t
*
)
qtRTPSource
->
qtState
.
sdAtom
+
86
;
uint8_t
*
endpos
=
(
uint8_t
*
)
qtRTPSource
->
qtState
.
sdAtom
+
qtRTPSource
->
qtState
.
sdAtomSize
;
while
(
pos
+
8
<
endpos
)
{
unsigned
atomLength
=
pos
[
0
]
<<
24
|
pos
[
1
]
<<
16
|
pos
[
2
]
<<
8
|
pos
[
3
];
if
(
atomLength
==
0
||
atomLength
>
endpos
-
pos
)
break
;
if
(
memcmp
(
pos
+
4
,
"avcC"
,
4
)
==
0
&&
atomLength
>
8
&&
atomLength
<=
INT_MAX
-
sizeof
(
BITMAPINFOHEADER
))
{
tk
->
fmt
.
i_extra
=
atomLength
-
8
;
tk
->
fmt
.
p_extra
=
malloc
(
tk
->
fmt
.
i_extra
);
memcpy
(
tk
->
fmt
.
p_extra
,
pos
+
8
,
atomLength
-
8
);
break
;
}
pos
+=
atomLength
;
}
}
else
{
tk
->
fmt
.
i_extra
=
qtState
.
sdAtomSize
-
16
;
tk
->
fmt
.
p_extra
=
malloc
(
tk
->
fmt
.
i_extra
);
memcpy
(
tk
->
fmt
.
p_extra
,
&
sdAtom
[
12
],
tk
->
fmt
.
i_extra
);
}
}
else
{
if
(
qtState
.
sdAtomSize
<
4
)
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment