|  | @@ -54,28 +54,13 @@ static const char *type_string(int type) | 
														
													
														
															
																|  |  | return "<UNKNOWN>"; |  |  | return "<UNKNOWN>"; | 
														
													
														
															
																|  |  | } |  |  | } | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | int main(int argc, char *argv[]) |  |  |  | 
														
													
														
															
																|  |  |  |  |  | static int list_op(const char *input_dir) | 
														
													
														
															
																|  |  | { |  |  | { | 
														
													
														
															
																|  |  | const char *input_dir = NULL; |  |  |  | 
														
													
														
															
																|  |  | AVIODirEntry *entry = NULL; |  |  | AVIODirEntry *entry = NULL; | 
														
													
														
															
																|  |  | AVIODirContext *ctx = NULL; |  |  | AVIODirContext *ctx = NULL; | 
														
													
														
															
																|  |  | int cnt, ret; |  |  | int cnt, ret; | 
														
													
														
															
																|  |  | char filemode[4], uid_and_gid[20]; |  |  | char filemode[4], uid_and_gid[20]; | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | av_log_set_level(AV_LOG_DEBUG); |  |  |  | 
														
													
														
															
																|  |  | 
 |  |  |  | 
														
													
														
															
																|  |  | if (argc != 2) { |  |  |  | 
														
													
														
															
																|  |  | fprintf(stderr, "usage: %s input_dir\n" |  |  |  | 
														
													
														
															
																|  |  | "API example program to show how to list files in directory " |  |  |  | 
														
													
														
															
																|  |  | "accessed through AVIOContext.\n", argv[0]); |  |  |  | 
														
													
														
															
																|  |  | return 1; |  |  |  | 
														
													
														
															
																|  |  | } |  |  |  | 
														
													
														
															
																|  |  | input_dir = argv[1]; |  |  |  | 
														
													
														
															
																|  |  | 
 |  |  |  | 
														
													
														
															
																|  |  | /* register codecs and formats and other lavf/lavc components*/ |  |  |  | 
														
													
														
															
																|  |  | av_register_all(); |  |  |  | 
														
													
														
															
																|  |  | avformat_network_init(); |  |  |  | 
														
													
														
															
																|  |  | 
 |  |  |  | 
														
													
														
															
																|  |  | if ((ret = avio_open_dir(&ctx, input_dir, NULL)) < 0) { |  |  | if ((ret = avio_open_dir(&ctx, input_dir, NULL)) < 0) { | 
														
													
														
															
																|  |  | av_log(NULL, AV_LOG_ERROR, "Cannot open directory: %s.\n", av_err2str(ret)); |  |  | av_log(NULL, AV_LOG_ERROR, "Cannot open directory: %s.\n", av_err2str(ret)); | 
														
													
														
															
																|  |  | goto fail; |  |  | goto fail; | 
														
													
												
													
														
															
																|  | @@ -114,6 +99,81 @@ int main(int argc, char *argv[]) | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | fail: |  |  | fail: | 
														
													
														
															
																|  |  | avio_close_dir(&ctx); |  |  | avio_close_dir(&ctx); | 
														
													
														
															
																|  |  |  |  |  | return ret; | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | static int del_op(const char *url) | 
														
													
														
															
																|  |  |  |  |  | { | 
														
													
														
															
																|  |  |  |  |  | int ret = avpriv_io_delete(url); | 
														
													
														
															
																|  |  |  |  |  | if (ret < 0) | 
														
													
														
															
																|  |  |  |  |  | av_log(NULL, AV_LOG_ERROR, "Cannot delete '%s': %s.\n", url, av_err2str(ret)); | 
														
													
														
															
																|  |  |  |  |  | return ret; | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | static int move_op(const char *src, const char *dst) | 
														
													
														
															
																|  |  |  |  |  | { | 
														
													
														
															
																|  |  |  |  |  | int ret = avpriv_io_move(src, dst); | 
														
													
														
															
																|  |  |  |  |  | if (ret < 0) | 
														
													
														
															
																|  |  |  |  |  | av_log(NULL, AV_LOG_ERROR, "Cannot move '%s' into '%s': %s.\n", src, dst, av_err2str(ret)); | 
														
													
														
															
																|  |  |  |  |  | return ret; | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | static void usage(const char *program_name) | 
														
													
														
															
																|  |  |  |  |  | { | 
														
													
														
															
																|  |  |  |  |  | fprintf(stderr, "usage: %s OPERATION entry1 [entry2]\n" | 
														
													
														
															
																|  |  |  |  |  | "API example program to show how to manipulate resources " | 
														
													
														
															
																|  |  |  |  |  | "accessed through AVIOContext.\n" | 
														
													
														
															
																|  |  |  |  |  | "OPERATIONS:\n" | 
														
													
														
															
																|  |  |  |  |  | "list      list content of the directory\n" | 
														
													
														
															
																|  |  |  |  |  | "move      rename content in directory\n" | 
														
													
														
															
																|  |  |  |  |  | "del       delete content in directory\n", | 
														
													
														
															
																|  |  |  |  |  | program_name); | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | int main(int argc, char *argv[]) | 
														
													
														
															
																|  |  |  |  |  | { | 
														
													
														
															
																|  |  |  |  |  | const char *op = NULL; | 
														
													
														
															
																|  |  |  |  |  | int ret; | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | av_log_set_level(AV_LOG_DEBUG); | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | if (argc < 2) { | 
														
													
														
															
																|  |  |  |  |  | usage(argv[0]); | 
														
													
														
															
																|  |  |  |  |  | return 1; | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | /* register codecs and formats and other lavf/lavc components*/ | 
														
													
														
															
																|  |  |  |  |  | av_register_all(); | 
														
													
														
															
																|  |  |  |  |  | avformat_network_init(); | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  |  |  |  | op = argv[1]; | 
														
													
														
															
																|  |  |  |  |  | if (strcmp(op, "list") == 0) { | 
														
													
														
															
																|  |  |  |  |  | if (argc < 3) { | 
														
													
														
															
																|  |  |  |  |  | av_log(NULL, AV_LOG_INFO, "Missing argument for list operation.\n"); | 
														
													
														
															
																|  |  |  |  |  | ret = AVERROR(EINVAL); | 
														
													
														
															
																|  |  |  |  |  | } else { | 
														
													
														
															
																|  |  |  |  |  | ret = list_op(argv[2]); | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  | } else if (strcmp(op, "del") == 0) { | 
														
													
														
															
																|  |  |  |  |  | if (argc < 3) { | 
														
													
														
															
																|  |  |  |  |  | av_log(NULL, AV_LOG_INFO, "Missing argument for del operation.\n"); | 
														
													
														
															
																|  |  |  |  |  | ret = AVERROR(EINVAL); | 
														
													
														
															
																|  |  |  |  |  | } else { | 
														
													
														
															
																|  |  |  |  |  | ret = del_op(argv[2]); | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  | } else if (strcmp(op, "move") == 0) { | 
														
													
														
															
																|  |  |  |  |  | if (argc < 4) { | 
														
													
														
															
																|  |  |  |  |  | av_log(NULL, AV_LOG_INFO, "Missing argument for move operation.\n"); | 
														
													
														
															
																|  |  |  |  |  | ret = AVERROR(EINVAL); | 
														
													
														
															
																|  |  |  |  |  | } else { | 
														
													
														
															
																|  |  |  |  |  | ret = move_op(argv[2], argv[3]); | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  | } else { | 
														
													
														
															
																|  |  |  |  |  | av_log(NULL, AV_LOG_INFO, "Invalid operation %s\n", op); | 
														
													
														
															
																|  |  |  |  |  | ret = AVERROR(EINVAL); | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  | 
 | 
														
													
														
															
																|  |  | avformat_network_deinit(); |  |  | avformat_network_deinit(); | 
														
													
														
															
																|  |  | 
 |  |  | 
 | 
														
													
														
															
																|  |  | return ret < 0 ? 1 : 0; |  |  | return ret < 0 ? 1 : 0; | 
														
													
												
													
														
															
																|  | 
 |