FFmpeg
|
Implements IMP CPL processing. More...
#include "imf.h"
#include "libavformat/mxf.h"
#include "libavutil/bprint.h"
#include "libavutil/error.h"
#include <libxml/parser.h>
Go to the source code of this file.
Functions | |
xmlNodePtr | ff_imf_xml_get_child_element_by_name (xmlNodePtr parent, const char *name_utf8) |
Returns the first child element with the specified local name. More... | |
int | ff_imf_xml_read_uuid (xmlNodePtr element, uint8_t uuid[16]) |
Reads a UUID from an XML element. More... | |
int | ff_imf_xml_read_rational (xmlNodePtr element, AVRational *rational) |
Reads an AVRational from an XML element. More... | |
int | ff_imf_xml_read_uint32 (xmlNodePtr element, uint32_t *number) |
Reads an unsigned 32-bit integer from an XML element. More... | |
static void | imf_base_virtual_track_init (FFIMFBaseVirtualTrack *track) |
static void | imf_marker_virtual_track_init (FFIMFMarkerVirtualTrack *track) |
static void | imf_trackfile_virtual_track_init (FFIMFTrackFileVirtualTrack *track) |
static void | imf_base_resource_init (FFIMFBaseResource *rsrc) |
static void | imf_marker_resource_init (FFIMFMarkerResource *rsrc) |
static void | imf_marker_init (FFIMFMarker *marker) |
static void | imf_trackfile_resource_init (FFIMFTrackFileResource *rsrc) |
static int | fill_content_title (xmlNodePtr cpl_element, FFIMFCPL *cpl) |
static int | fill_edit_rate (xmlNodePtr cpl_element, FFIMFCPL *cpl) |
static int | fill_id (xmlNodePtr cpl_element, FFIMFCPL *cpl) |
static int | fill_marker (xmlNodePtr marker_elem, FFIMFMarker *marker) |
static int | fill_base_resource (xmlNodePtr resource_elem, FFIMFBaseResource *resource, FFIMFCPL *cpl) |
static int | fill_trackfile_resource (xmlNodePtr tf_resource_elem, FFIMFTrackFileResource *tf_resource, FFIMFCPL *cpl) |
static int | fill_marker_resource (xmlNodePtr marker_resource_elem, FFIMFMarkerResource *marker_resource, FFIMFCPL *cpl) |
static int | push_marker_sequence (xmlNodePtr marker_sequence_elem, FFIMFCPL *cpl) |
static int | has_stereo_resources (xmlNodePtr element) |
static int | push_main_audio_sequence (xmlNodePtr audio_sequence_elem, FFIMFCPL *cpl) |
static int | push_main_image_2d_sequence (xmlNodePtr image_sequence_elem, FFIMFCPL *cpl) |
static int | fill_virtual_tracks (xmlNodePtr cpl_element, FFIMFCPL *cpl) |
int | ff_imf_parse_cpl_from_xml_dom (xmlDocPtr doc, FFIMFCPL **cpl) |
Parse an IMF CompositionPlaylist element into the FFIMFCPL data structure. More... | |
static void | imf_marker_free (FFIMFMarker *marker) |
static void | imf_marker_resource_free (FFIMFMarkerResource *rsrc) |
static void | imf_marker_virtual_track_free (FFIMFMarkerVirtualTrack *vt) |
static void | imf_trackfile_virtual_track_free (FFIMFTrackFileVirtualTrack *vt) |
static void | imf_cpl_init (FFIMFCPL *cpl) |
FFIMFCPL * | ff_imf_cpl_alloc (void) |
Allocates and initializes an FFIMFCPL data structure. More... | |
void | ff_imf_cpl_free (FFIMFCPL *cpl) |
Deletes an FFIMFCPL data structure previously instantiated with ff_imf_cpl_alloc(). More... | |
int | ff_imf_parse_cpl (AVIOContext *in, FFIMFCPL **cpl) |
Parse an IMF Composition Playlist document into the FFIMFCPL data structure. More... | |
Implements IMP CPL processing.
Definition in file imf_cpl.c.
xmlNodePtr ff_imf_xml_get_child_element_by_name | ( | xmlNodePtr | parent, |
const char * | name_utf8 | ||
) |
Returns the first child element with the specified local name.
Definition at line 59 of file imf_cpl.c.
Referenced by fill_base_resource(), fill_content_title(), fill_edit_rate(), fill_id(), fill_marker(), fill_trackfile_resource(), fill_virtual_tracks(), parse_imf_asset_map_from_xml_dom(), push_main_audio_sequence(), push_main_image_2d_sequence(), and push_marker_sequence().
int ff_imf_xml_read_uuid | ( | xmlNodePtr | element, |
uint8_t | uuid[16] | ||
) |
Reads a UUID from an XML element.
Definition at line 73 of file imf_cpl.c.
Referenced by fill_id(), fill_trackfile_resource(), parse_imf_asset_map_from_xml_dom(), push_main_audio_sequence(), push_main_image_2d_sequence(), and push_marker_sequence().
int ff_imf_xml_read_rational | ( | xmlNodePtr | element, |
AVRational * | rational | ||
) |
Reads an AVRational from an XML element.
Definition at line 107 of file imf_cpl.c.
Referenced by fill_base_resource(), and fill_edit_rate().
int ff_imf_xml_read_uint32 | ( | xmlNodePtr | element, |
uint32_t * | number | ||
) |
Reads an unsigned 32-bit integer from an XML element.
Definition at line 122 of file imf_cpl.c.
Referenced by fill_base_resource(), and fill_marker().
|
static |
Definition at line 137 of file imf_cpl.c.
Referenced by imf_marker_virtual_track_init(), and imf_trackfile_virtual_track_init().
|
static |
Definition at line 142 of file imf_cpl.c.
Referenced by push_marker_sequence().
|
static |
Definition at line 149 of file imf_cpl.c.
Referenced by push_main_audio_sequence(), and push_main_image_2d_sequence().
|
static |
Definition at line 157 of file imf_cpl.c.
Referenced by imf_marker_resource_init(), and imf_trackfile_resource_init().
|
static |
Definition at line 165 of file imf_cpl.c.
Referenced by push_marker_sequence().
|
static |
Definition at line 172 of file imf_cpl.c.
Referenced by fill_marker_resource().
|
static |
Definition at line 179 of file imf_cpl.c.
Referenced by push_main_audio_sequence(), and push_main_image_2d_sequence().
Definition at line 185 of file imf_cpl.c.
Referenced by ff_imf_parse_cpl_from_xml_dom().
Definition at line 200 of file imf_cpl.c.
Referenced by ff_imf_parse_cpl_from_xml_dom().
Definition at line 212 of file imf_cpl.c.
Referenced by ff_imf_parse_cpl_from_xml_dom().
|
static |
Definition at line 224 of file imf_cpl.c.
Referenced by fill_marker_resource().
|
static |
Definition at line 258 of file imf_cpl.c.
Referenced by fill_marker_resource(), and fill_trackfile_resource().
|
static |
Definition at line 307 of file imf_cpl.c.
Referenced by push_main_audio_sequence(), and push_main_image_2d_sequence().
|
static |
Definition at line 331 of file imf_cpl.c.
Referenced by push_marker_sequence().
Definition at line 370 of file imf_cpl.c.
Referenced by fill_virtual_tracks().
|
static |
Definition at line 441 of file imf_cpl.c.
Referenced by push_main_image_2d_sequence().
Definition at line 457 of file imf_cpl.c.
Referenced by fill_virtual_tracks().
Definition at line 544 of file imf_cpl.c.
Referenced by fill_virtual_tracks().
Definition at line 627 of file imf_cpl.c.
Referenced by ff_imf_parse_cpl_from_xml_dom().
Parse an IMF CompositionPlaylist element into the FFIMFCPL data structure.
[in] | doc | An XML document from which the CPL is read. |
[out] | cpl | Pointer to a memory area (allocated by the client), where the function writes a pointer to the newly constructed FFIMFCPL structure (or NULL if the CPL could not be parsed). The client is responsible for freeing the FFIMFCPL structure using ff_imf_cpl_free(). |
Definition at line 679 of file imf_cpl.c.
Referenced by ff_imf_parse_cpl(), test_bad_cpl_parsing(), and test_cpl_parsing().
|
static |
Definition at line 714 of file imf_cpl.c.
Referenced by imf_marker_resource_free().
|
static |
Definition at line 722 of file imf_cpl.c.
Referenced by imf_marker_virtual_track_free().
|
static |
Definition at line 731 of file imf_cpl.c.
Referenced by ff_imf_cpl_free().
|
static |
Definition at line 740 of file imf_cpl.c.
Referenced by ff_imf_cpl_free().
|
static |
Definition at line 747 of file imf_cpl.c.
Referenced by ff_imf_cpl_alloc().
FFIMFCPL* ff_imf_cpl_alloc | ( | void | ) |
Allocates and initializes an FFIMFCPL data structure.
Definition at line 758 of file imf_cpl.c.
Referenced by ff_imf_parse_cpl_from_xml_dom().
void ff_imf_cpl_free | ( | FFIMFCPL * | cpl | ) |
Deletes an FFIMFCPL data structure previously instantiated with ff_imf_cpl_alloc().
[in] | cpl | The FFIMFCPL structure to delete. |
Definition at line 769 of file imf_cpl.c.
Referenced by ff_imf_parse_cpl_from_xml_dom(), imf_close(), and test_cpl_parsing().
int ff_imf_parse_cpl | ( | AVIOContext * | in, |
FFIMFCPL ** | cpl | ||
) |
Parse an IMF Composition Playlist document into the FFIMFCPL data structure.
[in] | in | The context from which the CPL is read. |
[out] | cpl | Pointer to a memory area (allocated by the client), where the function writes a pointer to the newly constructed FFIMFCPL structure (or NULL if the CPL could not be parsed). The client is responsible for freeing the FFIMFCPL structure using ff_imf_cpl_free(). |
Definition at line 795 of file imf_cpl.c.
Referenced by imf_read_header().